如果有人能指出我做错的地方,我将不胜感激。参见以下步骤
我在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/*"
}
]
}
username
的{{1}}政策。AmazonS3FullAccess
块下添加了index.html
。现在,按照手册,我应该能够单击链接并访问页面。 但是由于某种原因,它引发了403访问被禁止的错误。
据我了解,只需添加static website hosting
即可打开公共访问权限。但是对我来说,我看不到“公共”标签。所以,不知道发生了什么。 (我的理解可能是错误的,因此这篇文章。)
如果您想知道哪本手册,请关注https://docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html how to host static web site。
无论如何,有人指出我在哪里做错了,我应该从存储桶的权限中选择哪些选项?我可能会漏掉一些行。
PS:我多次创建和删除相同的存储桶,只是每次都重新开始。
答案 0 :(得分:1)
存储桶策略的Principal
值错误。从您链接到的Example: Setting up a Static Website Using a Custom Domain复制:
要授予公共读取访问权限,请将以下存储桶策略附加到 example.com 存储桶,并用存储桶名称替换 example.com 。
{
"Version":"2012-10-17",
"Statement":[{
"Sid":"PublicReadGetObject",
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::example.com/*"]
}]
}
答案 1 :(得分:0)
要使存储桶公开(=每个人),您需要在存储桶策略中将*
设置为主体:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::abc.nl/*"
}
]
}
还请检查存储桶上是否没有阻止公共访问设置,因为这会阻止您将存储桶公开。