我们使用亚马逊网络服务有多个阶段(测试/暂存/预览/制作)我们的Java后端应用程序。 每个阶段都创建并使用一些SQS队列和SNS主题,它也应该能够删除。但是,每个阶段都不应该能够访问彼此的资源 如何创建aws凭据来表示?我认为我应该在每个阶段都有一个“用户”(带有访问密钥/密钥)。这些用户中的每一个都应具有对SQS / SNS的完全访问权限,但仅限于他们自己创建的资源。我怎么能这样做?
我考虑过根据阶段在queuename / topicname中使用名称前缀,然后为每个阶段创建一个策略,其条件是必须匹配(“like”)前缀:
然而,它似乎无法工作,我对Condition
和Key
感到好奇:有一个ArnLike条件和StringLike条件。如果我采用ArnLike,为什么我需要指定Key
?关键应该是Arn ......我可能不了解整个事情。
我认为必须有一种简单的方法来做我需要的事情,我相信我正朝着错误的方向发展?!
答案 0 :(得分:0)
IAM政策condition
仅适用于选定的resources as shown here集。
例如,您可以restrict user access S3 bucket prefix with their user name in there。由于SQS和SNS目前不属于它,因此您不能将IAM策略与"条件"启用原子限制。 您只能在SQS和SNS服务策略中启用具有精细级别限制的此类策略。