我有一个用于托管静态网站的S3存储桶。 This example显示的政策授予所有人对指定存储区中对象的访问权限(即公开网站):
{
"Version":"2012-10-17",
"Statement":[{
"Sid":"PublicReadGetObject",
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::example-bucket/*"]
}]
}
但是,我想让网站只能访问特定的亚马逊用户。因此,在this documentation之后,我在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 所有人尝试访问托管网站。
是否可以让用户级权限限制对托管存储区的访问?
答案 0 :(得分:2)
不可以,在S3中无法将用户级权限应用于静态网站存储桶。来自Permissions Required for Website Access:
将存储桶配置为网站时,必须使要提供的对象公开可读。