AWS S3 Bucket
Configure AWS S3 Bucket
Overview
The AWS S3 bucket is used to configure logos and global configuration files in the Citizen Complaints Resolution System.
Steps
Configure AWS S3 Bucket
The UI assets, like logos and global config files, are hosted in an S3 bucket.
Create a new S3 bucket
Add this Bucket Policy to make the contents public:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::works-dev-asset/*"
}
]
}
Add the below CORS configuration:
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"GET",
"PUT",
"POST",
"DELETE"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": [
"x-amz-server-side-encryption",
"x-amz-request-id",
"x-amz-id-2"
],
"MaxAgeSeconds": 3000
}
]
Link S3 Bucket in Your Environment Config
To access assets from the S3 bucket in your deployment environment:
Update
environment.yaml
file
configmaps:
egov-config:
data:
s3-assets-bucket: "(pg-egov-assets|egov-playground-assets|egov-uat-assets)"
Possible values:
pg-egov-assets
,egov-playground-assets
,egov-uat-assets
, etc.Restart the s3-proxy build after making these changes.


Other viable options in the CCRS context
Azure Blob Storage
Works similarly to S3.
Can be configured with public access or via signed URLs.
Would require updating the
s3-proxy
or using an Azure CDN endpoint in the environment configuration.
Google Cloud Storage (GCS)
Also supports static asset hosting.
Public bucket policy or signed URLs possible.
Integration changes needed in the configmaps.
Self-hosted HTTP/HTTPS static server
Assets placed in an Nginx/Apache/static-file server inside your infra.
No cloud dependency, but you need to manage uptime, scaling, and cache headers.
GitHub Pages or similar static site hosting
For purely static assets (logos, configs), you can use GitHub Pages, Netlify, or Vercel.
Would require adjusting the asset URLs in
environment.yaml
.
Kubernetes ConfigMaps or PVC (Persistent Volume Claim)
Small static files can be mounted directly from ConfigMaps.
Good for a few KBs of data, but not ideal for large or frequently updated assets.
Key consideration in CCRS
If you replace AWS S3:
You must ensure public accessibility or proper authentication.
Update
s3-assets-bucket
(or equivalent) inenvironment.yaml
to point to the new hosting location.If using
s3-proxy
, it may need to be replaced with a generic proxy or direct asset URL.
Last updated
Was this helpful?