Amazon web services AWS S3:无法公开访问
目标:使用AWSS3发布静态网页 问题:访问被拒绝和403个错误 我已经在这个问题上工作了好几个小时了。在观看了几篇教程(比如这里的一篇)之后,在AWSS3上部署静态网页似乎非常容易。然而,我在学习教程时不断遇到“拒绝访问”错误,在尝试访问我的页面时遇到403个错误 当查看应该是我的静态网页()时,我收到一个403错误(参见上图)。这是在添加以下bucket策略之后:Amazon web services AWS S3:无法公开访问,amazon-web-services,amazon-s3,access-denied,Amazon Web Services,Amazon S3,Access Denied,目标:使用AWSS3发布静态网页 问题:访问被拒绝和403个错误 我已经在这个问题上工作了好几个小时了。在观看了几篇教程(比如这里的一篇)之后,在AWSS3上部署静态网页似乎非常容易。然而,我在学习教程时不断遇到“拒绝访问”错误,在尝试访问我的页面时遇到403个错误 当查看应该是我的静态网页()时,我收到一个403错误(参见上图)。这是在添加以下bucket策略之后: { "Version": "2012-10-17", "Statement": [ {
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::watchyourinterest.live/*"
}
]
}
我还将权限中的所有公共访问设置都更改为False(只是为了确保不存在任何限制,尽管我确实计划在我完成此工作后将其更改为应该的设置)
我还确保将索引文档正确设置为我的index.html页面,并将错误文档正确设置为我的error.html文件
在查看教程时,这似乎会使我的页面变得很好。然而,正如我之前所说的,我不断得到403个错误。经过进一步思考,我试图为所有文件设置对所有人的公共访问权限,但每次我尝试单击“所有人”选择时,都会出现一个错误,显示“访问被拒绝”
同样,当我单独单击文件并以不同的方式对其执行操作时,也会发生同样的情况,如下所示:
在列出我所有存储桶的主页上,我还得到了我的存储桶的这种奇怪的“访问”状态,我希望它是公共的,而不是这样:
任何帮助都将不胜感激 我认为您可能缺少列表操作,请重试
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicListObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::watchyourinterest.live"
},
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": ["s3:Get*","s3:List*"]
"Resource": ["arn:aws:s3:::watchyourinterest.live/*","arn:aws:s3:::watchyourinterest.live"]
}
]
}
我想您可能缺少列表操作,请尝试
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicListObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::watchyourinterest.live"
},
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": ["s3:Get*","s3:List*"]
"Resource": ["arn:aws:s3:::watchyourinterest.live/*","arn:aws:s3:::watchyourinterest.live"]
}
]
}
问题的根本原因是存储桶级别的公共访问设置。根据屏幕截图,您的bucket只允许授权用户访问bucket中的任何内容 公共访问设置会阻止访问,即使您已通过bucket策略授予对bucket对象的访问权限 要解决此问题,请按以下方式更改公共访问设置:
现在,您应该能够使用给定的端点访问您的网站以进行静态网站托管。问题的根本原因是bucket级别的公共访问设置。根据屏幕截图,您的bucket只允许授权用户访问bucket中的任何内容 公共访问设置会阻止访问,即使您已通过bucket策略授予对bucket对象的访问权限 要解决此问题,请按以下方式更改公共访问设置:
现在,您应该能够使用给定的端点访问您的网站,以进行静态网站托管。类似于@Sangam Belrose解释的答案,但这也需要应用于整个AWS控制台帐户。当这些都改变了,我不再遇到我的问题。下图说明了这一点:
与@Sangam Belrose解释的答案类似,但这也需要应用于整个AWS控制台帐户。当这些都改变了,我不再遇到我的问题。下图说明了这一点:
谢谢您的帮助。我已经编辑了这篇文章,你可以看到,根据现在包含的截图,我以前已经有过这样的文章,很遗憾这不是问题所在。@PatrickLymanOld我已经检查了你的截图。不,不包括在内。在上一个屏幕截图上,我仍然可以看到bucket只有授权用户访问。通过s3控制台中的edit public access settings(编辑公共访问设置)可以更改访问权限,您只需选择bucket并将其编辑为false即可。谢谢。我已经编辑了这篇文章,你可以看到,根据现在包含的截图,我以前已经有过这样的文章,很遗憾这不是问题所在。@PatrickLymanOld我已经检查了你的截图。不,不包括在内。在上一个屏幕截图上,我仍然可以看到bucket只有授权用户访问。在s3控制台中,通过编辑公共访问设置可以更改访问权限,您只需选择bucket并将公共访问设置编辑为false。另外一个建议是将acl设置为On