我有一个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错误。
有没有可能通过用户级别的权限限制对托管的存储桶进行访问控制?