如何将S3存储桶限制为特定的IAM用户,以便仅通过API令牌访问它

时间:2017-08-01 09:23:57

标签: amazon-web-services amazon-s3

我们有一个类似于Dropbox的应用程序,我们在S3中存储用户的文件。用户这样做的唯一方法是通过应用程序(类似于dropbox)。

由于有效的隐私问题,我们希望限制该S3存储桶的访问权限,以便只能通过应用程序访问存储桶的内容 - 我们已为其创建了API令牌并使用该权限进行访问内容。

我们甚至不希望root帐户能够遍历该特定S3存储桶的内容。

但是,如果需要某些管理干预,我们希望能够授予特定用户帐户物理遍历S3存储桶的能力,并执行该时间点所需的任何操作。完成所述管理任务后,应撤销访问权限。

你们有没有遇到过这种情况?如何实现这样的事情?

感谢您的想法

1 个答案:

答案 0 :(得分:0)

与AWS账户关联的根凭据具有完全权限。即使他们没有,他们也有能力删除阻止权限。公司通常通过添加多重身份验证(MFA)设备并将其锁定在安全设备中来保护其根登录。

您可以轻松编写 Bucket Policy ,拒绝除特定IAM用户以外的所有访问权限,并且您的应用程序可以使用该IAM用户:

  • 下载内容,然后直接向客户提供,或
  • 创建预签名网址,授予对Amazon S3中私有对象的限时访问权限,然后将这些网址提供给客户端,以便他们可以从Amazon S3下载该对象

可以通过修改Bucket Policy来授予临时访问权限。当然,您应该限制普通用户修改存储桶策略的能力。

对于此超敏感信息,您可能创建单独的AWS账户。这样,只有少数几个人可以访问该帐户,这可以防止意外授予访问权限。例如,如果授予系统管理员访问帐户A中所有S3存储桶的权限,则他们将无法访问帐户B中的存储桶。