首页 > 解决方案 > AWS S3 静态存储桶托管-内部服务器错误

问题描述

我已经设置了一个 AWS S3 存储桶来使用我自己的 URL 托管一个静态网站。存储桶和里面的文件的所有权限都是公开的。我通过打开 index.html 页面的公共链接确认了这一点。当我输入我的 URL (ianpritchard.com) 时,我收到一个内部服务器错误。我将日志记录在存储桶上,并看到我的请求被拒绝访问。有谁知道为什么?我确实在我的托管区域中设置了 A 记录。

<Error> 
  <Code>AccessDenied</Code>
  <Message>Access Denied</Message>
  <RequestId>xxx</RequestId>
  <HostId> xxxx </HostId>
</Error> 

桶策略在这里 -

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::xxxx/"
        }
    ]
}

标签: amazon-web-serviceswebamazon-s3static

解决方案


您的政策看起来很奇怪,资源应该是xxx/*并且主体应该*

{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid":"publicRead",
      "Effect":"Allow",
      "Principal": "*",
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::xxxx/*"]
    }
  ]
}

在此处查看一些示例

不确定为什么/如何获得index.html,请发布 index.html 页面的公共链接:


推荐阅读