托管静态网站的S3 Bucket策略

6
我有一个S3存储桶,用于托管静态网站。 这个例子 展示了一个策略,允许所有人访问指定存储桶中的对象(即使网站公开)。
{
  "Version":"2012-10-17",
  "Statement":[{
     "Sid":"PublicReadGetObject",
     "Effect":"Allow",
     "Principal": "*",
     "Action":["s3:GetObject"],
     "Resource":["arn:aws:s3:::example-bucket/*"]
  }]
}

然而,我希望网站只能被特定的亚马逊用户访问。因此,参考这份文档,我在Principal中指定这些用户:
{
  "Version":"2012-10-17",
  "Statement":[{
     "Sid":"PublicReadGetObject",
     "Effect":"Allow",
     "Principal": {
        "AWS": "arn:aws:iam::Account-ID:user/Dave"
     },
     "Action":["s3:GetObject"],
     "Resource":["arn:aws:s3:::example-bucket/*"]
  }]
}

虽然这样可以正确地启用权限来控制谁可以通过S3控制台访问资源,但它会导致每个人都无法访问托管的网站而出现403错误。

有没有可能通过用户级别的权限限制对托管的存储桶进行访问控制?

1个回答

4
不,无法在S3的静态网站桶中应用用户级别的权限。根据网站访问所需的权限文档中所述:
配置存储桶为网站时,必须使要提供服务的对象公开可读。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接