cha*_*198 8 web-hosting amazon-s3 amazon-web-services
如果有人能指出我做错的地方,我将不胜感激。看下面的步骤
我在 route53 中有一个域名。
根据域名,我创建了一个存储桶名称(为了我的问题,让我们坚持使用存储桶和域名作为 abc.nl)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::1234567:user/usrname"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::abc.nl/*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
username 的AmazonS3FullAccessIAM政策。
index.html在static website hosting块下添加了。现在,根据手册,我应该能够单击链接并访问该页面。但出于某种原因,它向我抛出了 403 访问禁止错误。
根据我的理解,只需添加bucket policy您就可以打开公共访问。但对我来说,我没有看到“公共”标签。所以,不知道怎么回事。(我的理解可能是错误的,因此这篇文章。)
如果您想知道哪个手册,我正在关注https://docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html how to host static web site。
无论如何,有人指出我哪里做错了,我应该从存储桶的权限中选择哪些选项?我可能会错过一些台词。
PS:我已经多次创建和删除同一个桶,只是为了每次都重新开始。
mat*_*sev 11
Principal您的存储桶策略的值是错误的。复制自示例:使用已链接到的自定义域设置静态网站:
要授予公共读取访问权限,请将以下存储桶策略附加到example.com存储桶,用您的存储桶名称替换example.com。
{
"Version":"2012-10-17",
"Statement":[{
"Sid":"PublicReadGetObject",
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::example.com/*"]
}]
}
Run Code Online (Sandbox Code Playgroud)
小智 6
按照以下步骤操作即可 100% 正常工作。
重要提示:您的存储桶名称后面是一个带星号的斜杠 (/*)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::**YOUR-BUCKET-NAME**/*"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
注意: AWS 文档链接
要使存储桶公开(=所有人),您需要*在存储桶策略中设置为委托人:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::abc.nl/*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
还请检查您在存储桶上是否没有阻止公开访问设置,因为它会阻止您将存储桶设为公开。
| 归档时间: |
|
| 查看次数: |
5915 次 |
| 最近记录: |