【发布时间】:2018-06-08 11:47:00
【问题描述】:
我已经阅读了许多文档并观看了许多视频,但我仍然对 IAM 角色和存储桶策略感到非常困惑。这让我感到困惑:
1) 我创建了一个存储桶。那时我可以将其公开或保密。如果我将其公开,那么任何人或任何 Application 都可以“看到”存储桶中的对象。我认为可以将权限设置为添加/删除/获取/列出存储桶中的对象。如果是这种情况,那么为什么我需要为 S3 存储桶添加任何 IAM 角色,或者添加任何存储桶策略 (???)
2) 在我创建存储桶时,我是否可以仅向某些用户/应用程序/EC2 实例等授予对所有或部分存储桶的非常具体的权限?例如EC2-X 上的 App1 可以访问 Bucket B1 中的子文件夹 A。
3) 来到 IAM 角色,一个提供完全 S3 访问权限的 EC2 角色——这是什么意思?对 any 存储桶的完全访问权限?如何将在 EC2 上运行的应用程序限制为仅具有某些受限权限(参见上面的 #2)的特定存储桶? EC2 上的所有 应用程序是否可以完全访问所有 个存储桶?在创建存储桶时,是否可以设置权限以推翻 IAM 角色?
4) 最后,除了上述 IAM 角色之外,Bucket Policies 还能做什么?例如,“AllowS3FullAccess”是“存储桶策略”还是“IAM 策略”?为什么要区分策略类型 - 策略只是 - 它们在某些对象/资源上定义了一些权限/规则,正如我所见。
感谢您的澄清。 - AWS 新手
【问题讨论】:
-
希望对您有所帮助:aws.amazon.com/blogs/security/…
-
谢谢,为了获得动手体验,我创建了一个管理员用户,并以该用户身份登录。接下来我创建了一个桶。在权限下,我看到了 ACL、存储桶策略和 CORS 的按钮。我在这里看到的 UI 与我在各种 youtube 视频中看到的完全不同。当我选择 ACL 选项时,我被要求“:为您的 AWS 账户添加访问权限”或“添加对另一个 AWS 账户的访问权限”。我很抱歉根本没有得到这个!添加对“另一个”AWS 账户的访问权限是什么意思?我自己的 AWS 账户中的用户呢? (我创建了两个具有管理员权限的用户)。令人沮丧!
-
进一步阅读 UI 帮助,“ACL”按钮现在似乎是“为其他 AWS 账户提供基本读/写权限的旧策略选项”。我想现在除了使用存储桶策略之外,没有办法向同一帐户中的各个用户授予权限。
-
是的,您可以向单个用户授予 S3 权限,但您不需要使用存储桶策略来执行此操作。只需创建一个允许对特定存储桶执行相关操作的 IAM 策略,然后将该策略附加到 IAM 用户(或用户所在的组)。示例:aws.amazon.com/blogs/security/…
标签: amazon-web-services roles policies