【发布时间】:2020-01-20 12:05:05
【问题描述】:
我通过amplify publish 将一个简单的网络应用程序部署到S3。主机启用了Cloudfront(我在设置主机时选择了放大的PROD环境)并且我在eu-central-1区域工作。但每当我尝试访问Cloudfront URL 时,都会收到AccessDenied 错误。
我遵循https://medium.com/quasar-framework/creating-a-quasar-framework-application-with-aws-amplify-services-part-1-4-9a795f38e16d 的教程,唯一不同的是区域(教程使用us-east-1,而我使用eu-central-1)。
S3 和 Cloudfront 的配置是通过 amplify 完成的,所以理论上应该可以工作:
云端:
- 源域名或路径:
quasar-demo-hosting-bucket-dev.s3-eu-central-1.amazonaws.com(原本是没有eu-central-1的,但是我手动添加的,后来失效了)。 - 来源ID:
hostingS3Bucket - 来源类型:
S3 Origin
S3 存储桶政策:
{
"Version": "2012-10-17",
"Id": "MyPolicy",
"Statement": [
{
"Sid": "APIReadForGetBucketObjects",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity ********"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::quasar-demo-hosting-bucket-dev/*"
}
]
}
研究表明,Cloudfront 在其他地区访问 S3 存储桶时可能会出现暂时性问题。但我手动将区域添加到Cloudfront 的原点,我已经等了 24 小时。我仍然收到“拒绝访问”。
我怀疑这与 S3 存储桶不在默认 us-east-1 区域中有关,并且在这种情况下无法正确设置 Cloudfront。
我如何才能正确设置S3 存储桶和Cloudfront,以便我可以通过Cloudfront URL 访问我的网站?
【问题讨论】:
-
能否分享一下您的 S3 和 Cloudfront 分发配置。
-
我将信息添加到问题@RajPaliwal。一切都是通过
amplify自动配置的。我唯一更改的(在它不起作用之后)是将eu-central-1部分添加到 Cloudfront 中配置的 S3 路径。
标签: amazon-web-services amazon-s3 amazon-cloudfront aws-amplify