限制AWS S3存储桶访问权限,即使来自帐户所有者也是如此

时间:2019-11-14 01:40:29

标签: amazon-web-services amazon-s3 amazon-iam

我想仅对在其上运行代码的应用程序限制对AWS S3存储桶的访问。所有其他用户,即使是AWS账户所有者,也不应查看或访问存储桶。

通过亚马逊上提到的解决方案,帐户所有者可以访问所有服务。

一种解决方案是对存储桶中的数据进行加密,而应用程序代码中包含对数据进行解密的逻辑。但我正在寻找更好的解决方案,如果有的话。

任何解决方案表示赞赏!

1 个答案:

答案 0 :(得分:1)

root 登录名外,默认情况下,Amazon S3中的所有内容均为私有。除非通过IAM或存储桶策略授予权限,否则没有用户可以访问它。

因此,简单的答案是仅授予对应具有访问权限的特定实体的访问权限。如果组织希望授予“管理员”访问权限,并且该策略可能授予对所有Amazon S3存储桶的访问权限,则这将变得稍微复杂一些。可以通过应用覆盖了“允许”策略的拒绝策略来更正此问题。例如,管理员可能具有“允许访问所有S3存储桶”的权限,但是“拒绝”策略随后可能会删除他们对特定存储桶的访问权限。

在Amazon S3中保​​存超敏感信息的地方,通常的做法是将敏感数据放在不同 AWS账户的Amazon S3存储桶中。这样,即使是管理员和 root 登录名也无法访问存储桶。只有其他帐户的root登录才能获得访问权限。

另一种常见做法是使用多重身份验证(MFA)(例如physical device)保护根登录名,然后将该物理设备锁定在安全的位置。或者,将密码分为两半,每个人各占一半。这样可以防止使用root登录,但可以在紧急情况下使用它。

在应用程序中

加密信息很好,但是,如果应用程序能够对其进行解密,那么有权访问应用程序源代码的人也可以弄清楚如何对其进行解密。即使加密密钥保存在AWS Secrets Manager中,root登录名也可以访问这些秘密。

底线::使用已锁定的物理MFA保护root登录,然后根据需要使用IAM策略授予访问权限。

此外,请注意如何授予应用程序访问权限。如果是通过IAM角色完成的,则请确保其他人不能承担该角色并自己获得相同的访问权限。