【发布时间】:2018-04-19 15:22:00
【问题描述】:
我使用Policy Generator 为我的存储桶创建了一个简单的规则;规则应允许以下预期效果:
- root 访问权限
- 限制对给定 IAM 用户的访问
- 允许所有人只读访问
为此,我编写了以下规则,但没有按预期工作,特别是,我完全失去了对存储桶元素的访问权限,在所有情况下都“拒绝访问”,包括根:
编辑:使用@jarmod 回答我可以设置预期的功能,但是它会触发警告,关于存储桶是公开的,我没有看到没有策略的区别,存储桶仍然以只读方式公开访问。有什么区别?
【问题讨论】:
-
显式拒绝 > 显式允许 > 隐式拒绝。您的第 1 条和第 2 条语句应该被删除,并且您缺少允许“所有人只读访问”的语句。
-
@jarmod 所以 root 是隐式允许的?我正在阅读this guide,在示例中,他们为其他所有人设置了
deny *,并指定允许root 访问。 -
你不能有一个拒绝 * 和一个允许 x,因为拒绝 * 是明确的并且胜过每个允许。 Root 具有对所有内容的隐式访问权限,但您不应该对任何内容使用 root 凭证(请参阅 AWS 对 root 用户的最佳实践)。
-
您所指的指南中的拒绝示例(如果我阅读正确的示例)具有条件策略声明,拒绝除特定角色和 root 用户之外的所有访问。如果您特别想要覆盖 S3 存储桶的 IAM 级别权限(例如,您可以拒绝对实际拥有该存储桶权限的 IAM 用户的访问),您可以使用此选项。据我所知,这不是您想要做的,因此该政策不相关。
-
@jarmod 是的,先生!根据列表中的第二个点,我正在尝试限制对给定 IAM 用户的访问
标签: json amazon-web-services amazon-s3