我有一个S3存储桶,用于托管一个静态网站。此示例显示了一个策略,该策略允许每个访问指定bucket中的对象(即公开网站):
{
"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。
是否可以拥有限制访问托管存储桶的用户级权限
否,在S3中不可能将用户级别的权限应用于静态网站存储桶。从网站访问所需的权限:
当您将bucket配置为网站时,必须使您想要服务的对象公开可读。