【发布时间】:2020-02-07 00:03:14
【问题描述】:
我想让 IAM 用户访问所有外部存储桶——不在我们自己账户中的存储桶。
例如,可公开访问的存储桶或某人授予我们 AWS 账户访问权限的存储桶。如果我们账户中的 IAM 用户无权访问外部存储桶(通过 IAM 策略),他们将无法访问它。
但我无法授予他们对所有存储桶的访问权限,因为这将包括我们自己的存储桶 - 我们不希望某些用户访问这些存储桶,或者只授予具有特定权限的访问权限。
基本上我想要一个条件:
IF NOT <MY AWS ACCOUNT>
grant s3:*
ELSE
don't modify existing S3 permissions
我想要一个策略,我可以将其应用于允许访问所有外部存储桶的用户或角色。
【问题讨论】:
-
我认为这是不可能的,因为 Amazon S3 ARN 不引用帐号。此外,Actions, Resources, and Condition Keys for Amazon S3 - AWS Identity and Access Management 不会将帐户 ID 列为可用条件。
-
您需要这个的特定用例是什么?我可以理解希望向用户提供访问第 3 方存储桶的凭据(例如使用共享数据),但不想授予对同一帐户中存储桶的访问权限(出于安全/隐私原因)。但是,必须授予类似
s3:*的权限才能访问外部存储桶。在授予访问权限时,这些要求似乎是相互矛盾的。 -
我不在乎他们对其他方存储桶有什么访问权限,他们可以破坏这些。我不想让他们访问上传/删除/等我们的帐户存储桶。正在检查存储桶前缀是否与我的公司前缀不匹配(假设我所有的存储桶都使用相同的前缀),然后允许 s3:* 做这样的事情的唯一方法?
-
一个有趣的难题!我能立即想到的唯一方法是创建一个单独的 AWS 账户(没有存储桶)并允许他们在该账户中担任 IAM 角色。然后,他们可以被授予大量 S3 权限,而无需授予对敏感存储桶的访问权限。
-
您是在尝试同一个帐户还是跨帐户访问?
标签: amazon-web-services amazon-s3 amazon-iam