【发布时间】:2017-10-25 23:35:35
【问题描述】:
当通过我的存储桶权限 --> 访问控制 --> 公共访问时,我可以勾选“所有人”选项。
这是否意味着 每个人 都可以访问这个存储桶文件(给定 url)?
如何向通过我的用户池连接的每个人授予访问权限,无论是否是文件的所有者?
【问题讨论】:
标签: amazon-web-services amazon-s3
当通过我的存储桶权限 --> 访问控制 --> 公共访问时,我可以勾选“所有人”选项。
这是否意味着 每个人 都可以访问这个存储桶文件(给定 url)?
如何向通过我的用户池连接的每个人授予访问权限,无论是否是文件的所有者?
【问题讨论】:
标签: amazon-web-services amazon-s3
是的,如果您公开访问控制,那么全世界都应该可以访问它。您可以做的是设置存储桶策略来限制对您的存储桶的访问。在存储桶策略中,您可以指定要连接的用户。请在下面找到示例存储桶策略,
{
"Version": "2012-10-17",
"Id": "Policy12345",
"Statement": [
{
"Sid": "Stmt12345",
"Effect": "Allow",
"Principal": "*", //* means public . Specify your users here
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::BUCKETNAME/*"
}
]
}
在“主体”部分提及您要连接的用户(逗号分隔)。例如,如果您必须向 ARN 添加主体,那么,
"Principal" : {"AWS": ["arn:aws:iam::111122223333:root","arn:aws:iam::444455556666:root"]}
如果只有一个,
"Principal" : {"AWS" : "arn:aws:iam::111122223333:root"}
桶策略详情请看here
如果您想要对象级别权限而不是存储桶级别权限,请查看访问控制列表。更多详情请查看here
【讨论】: