我已经阅读了许多文档并观看了许多视频,但我仍然对 IAM 角色和存储桶策略感到非常困惑。这让我感到困惑:
1)我创建一个桶。那时我可以将其公开或保密。如果我将其公开,那么任何人或任何Application都可以“看到”存储桶中的对象。我认为可以将权限设置为添加/删除/获取/列出存储桶中的对象。如果是这种情况,那么为什么我需要为 S3 存储桶添加任何 IAM 角色,或者添加任何存储桶策略 (???)
2) 在我创建存储桶时,我可以只向某些用户/应用程序/EC2 实例等授予对全部或部分存储桶的非常特定的权限吗?例如,EC2-X 上的 App1 可以访问存储桶 B1 中的子文件夹 A。
3) 来到 IAM 角色,一个提供完全 S3 访问权限的 EC2 角色——这是什么意思?完全访问任何存储桶?如何将在 EC2 上运行的应用程序限制为仅具有某些受限权限(参见上面的 #2)的特定存储桶?EC2 上的所有应用程序是否都具有对所有存储桶的完全访问权限?在创建存储桶时,是否可以将权限设置为可以推翻 IAM 角色?
4) 最后,Bucket Policies 除了上述的 IAM Roles 还做了什么?例如,“AllowS3FullAccess”是“桶策略”还是“IAM 策略”?为什么要区分策略类型-策略只是-它们在某些对象/资源上定义了一些权限/规则,正如我所见。
感谢您的任何澄清。- AWS 新手