我正在开发一个可能要使用 AWS 托管的网站。这引出了一个关于存储在 S3 存储桶中的内容的访问权限的问题:
- 我为该网站设置了一个 EC2 服务器,并设置了一个 S3 存储桶来保存该网站的一些内容。
- Alice 和 Bob 在我的网站上创建帐户。
- Alice 和 Bob 都上传了最终进入存储桶的文件。
- Alice 应该能够看到她的文件但看不到 Bob 的文件,反之亦然。
- 该网站的匿名用户应该无法看到这两个文件。
使用 S3 可以实现这一点吗?我的印象是 AWS IAM 就是用来做这件事的;对吗?我正在慢慢摆脱 AWS 新手的身份,但还没有完全达到那个程度——谢谢!
答案1
是的,这是可能的。以下是设计模式您将要实现的。简短版本:您将为每个 Alice 和 Bob 创建一个 IAM 用户帐户。他们获得自己的 AWS 访问密钥,这些密钥将用于访问 S3 存储桶。然后,您将对相关存储桶应用 S3 策略。
大多数人感到困惑的是,“IAM 策略”和“S3 存储桶策略”是两个不同的东西,都需要进行设置。
答案2
访问权限应由应用程序决定。S3 的设计初衷是供应用程序访问,而不是通过权限等方式直接存储文件。
答案3
创建单独的用户和单独的 IAM 策略,并为每个用户附加 1 个策略。
我已经在这个问题中提供了这个政策: AWS/S3 - 创建一个用户(通过控制台)来授予 1 个存储桶的读/写存储桶权限?