Creating a bucket policy to deploy a static website from S3 using the AWS SDKs
You can use the AWS SDKs to deploy a static website from Amazon S3 to Amplify Hosting. If you deploy your website using an SDK, you must create your own bucket policy that grants Amplify Hosting permission to retrieve the objects in your S3 bucket.
To learn more about creating bucket policies, see Bucket policies for Amazon S3 in the Amazon Simple Storage Service User Guide.
The following example bucket policy grants Amplify Hosting permissions to list buckets and retrieve bucket objects for the specified AWS account, Amplify application id, and branch.
To use this example:
Replace
amzn-s3-demo-website-bucket/prefix
with the name of your website's bucket and prefix.Replace
111122223333
with your AWS account id.Replace
region-id
with the AWS Region that your Amplify application is located in, such asus-east-1
.Replace
app_id
with you Amplify application id. This information is available in the Amplify console.Replace
branch_name
with your branch name.
Note
In your bucket policy, the aws:SourceArn
must be a URL-encoded (percent-encoding)
branch ARN.
{ "Version": "2008-10-17", "Statement": [ { "Sid": "AllowAmplifyToListPrefix_appid_branch_prefix_", "Effect": "Allow", "Principal": { "Service": "amplify.amazonaws.com" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::
amzn-s3-demo-website-bucket/prefix
/*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333
", "aws:SourceArn": "arn%3Aaws%3Aamplify%3Aregion-id
%3A111122223333
%3Aapps%2Fapp_id
%2Fbranches%2Fbranch_name
", "s3:prefix": "" } } }, { "Sid": "AllowAmplifyToReadPrefix__appid_branch_prefix_", "Effect": "Allow", "Principal": { "Service": "amplify.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-website-bucket/prefix
/*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333
", "aws:SourceArn": "arn%3Aaws%3Aamplify%3Aregion-id
%3A111122223333
%3Aapps%2Fapp_id
%2Fbranches%2Fbranch_name
" } } }, { "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::amzn-s3-demo-website-bucket
/*", "Condition": { "Bool": { "aws:SecureTransport": "false" } } } ] }