car*_*iem 7 amazon-s3 amazon-web-services amazon-cloudfront amazon-iam
我的目的是让我的静态网站文件(在 React 中,如果这是一个因素)只能通过我的域而不是直接通过 S3 URL 访问。它似乎在我自己的计算机上运行(尽管这可能是存储桶公开时的 CloudFront 缓存),但其他客户端仅接收 XML 格式的 S3 消息。请求没有任何路径的域会给出响应。请求任何路径(例如/index.html,我的存储桶中的文件)都会给出代码 NoSuchKey 的响应。
我究竟做错了什么?这是当前的配置。
编辑:我的存储桶策略(我需要添加另一个操作吗?)
{
"Version": "2008-10-17",
"Id": "PolicyForCloudFrontPrivateContent",
"Statement": [
{
"Sid": "1",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity EZOBXXXXXXXXX"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::subdomain.mydomain.com/*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
两个改变让这个工作顺利进行。 感谢迈克尔的帮助。
sync(CLI)中运行命令时,我引用了同一源访问身份的规范用户 ID 。在 package.json 脚本中:~~"deploy": "aws s3 sync build/ s3://subdomain.mydomain.com --delete --grants read=id=S3CANONICALIDOFORIGINACCESSIDENTITY"/index.html,然后当我的应用程序似乎没有更新时感到困惑。我认为这是因为,虽然index.html总是为用户提供服务,但从未明确要求。我的路线看起来像/或/dashboard,它们没有被无效。现在,我通过使/*.编辑:已经过去几年了,但我认为#1 没有必要。从那时起,我已经设置了多个发行版,仅使用存储桶策略定义权限。
| 归档时间: |
|
| 查看次数: |
1545 次 |
| 最近记录: |