访问 CloudFront Amazon S3 静态网站中的页面时拒绝访问
Access Denied when accessing a page in a CloudFront Amazon S3 static website
我已经将一个 Angular 静态网站部署到 Amazon S3 并为其使用了 Cloudfront。当我访问默认页面 myurl.com/
时,一切正常,我可以浏览页面。但是,如果我直接转到某个页面 myurl.com/posts
,例如,我会 拒绝访问 与云端。如果我使用 amazon s3 网站端点执行此操作,我会收到 404 响应。
S3
云端
documentation 指出 CloudFront 将因多种原因返回 403。其中一项决议是 The requested objects must exist in the bucket.
.
当您尝试访问一个不存在的对象时,CloudFront 可能会将其变成您收到的 403。
您应该尝试访问仅存在的密钥,并配置您的 s3 端点以在页面不存在时使用 error document。
在我的例子中,我设置了一个默认的根对象并且一切正常,在等待大约 10 分钟后设置更改同步。
http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html
使用 CloudFront 控制台指定默认根对象:
登录 AWS 管理控制台并在 https://console.aws.amazon.com/cloudfront/ 打开 Amazon CloudFront 控制台。
在顶部窗格的分发列表中,select 要更新的分发。
在“分发详细信息”窗格中的“常规”选项卡上,单击“编辑”。
在“编辑分布”对话框的“默认根对象”字段中,输入默认根对象的文件名。
仅输入对象名称,例如 index.html。不要在对象名称前添加/。
要保存更改,请单击“是,编辑”。
我已经将一个 Angular 静态网站部署到 Amazon S3 并为其使用了 Cloudfront。当我访问默认页面 myurl.com/
时,一切正常,我可以浏览页面。但是,如果我直接转到某个页面 myurl.com/posts
,例如,我会 拒绝访问 与云端。如果我使用 amazon s3 网站端点执行此操作,我会收到 404 响应。
S3
云端
documentation 指出 CloudFront 将因多种原因返回 403。其中一项决议是 The requested objects must exist in the bucket.
.
当您尝试访问一个不存在的对象时,CloudFront 可能会将其变成您收到的 403。
您应该尝试访问仅存在的密钥,并配置您的 s3 端点以在页面不存在时使用 error document。
在我的例子中,我设置了一个默认的根对象并且一切正常,在等待大约 10 分钟后设置更改同步。 http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html
使用 CloudFront 控制台指定默认根对象:
登录 AWS 管理控制台并在 https://console.aws.amazon.com/cloudfront/ 打开 Amazon CloudFront 控制台。
在顶部窗格的分发列表中,select 要更新的分发。
在“分发详细信息”窗格中的“常规”选项卡上,单击“编辑”。
在“编辑分布”对话框的“默认根对象”字段中,输入默认根对象的文件名。
仅输入对象名称,例如 index.html。不要在对象名称前添加/。
要保存更改,请单击“是,编辑”。