AWS IAM策略,仅允许对具有特定标签的资源执行角色删除操作

我正在创建一个Crossaccount角色,以在多个AWS账户之间分配。目标是允许我的一个lambda承担此Crossaccount角色,并在目标帐户中创建CFN堆栈。

为了允许删除堆栈,我需要向该角色分配诸如 ec2:TerminateInstances 之类的操作。但是我不想允许对所有资源“ *”进行操作。如何只允许对具有特定标签的资源执行此操作?

我尝试了以下政策条件,但它不起作用。尝试删除堆栈时,我在 ec2:TerminateInstances 操作中遇到了未经授权的错误。

- Effect: "Allow"
  action:
    - "ec2:TerminateInstances"
  Resource: "*"
  Condition:
    StringEquals:
      aws:RequestTag/Usage: TestOnlyTag

我在正确的轨道上吗?

请注意,在创建堆栈之前,需要将此角色部署到目标帐户中。因此,无法在此处指定Instance-Id。

wuxiaolong0815 回答:AWS IAM策略,仅允许对具有特定标签的资源执行角色删除操作

事实证明,我应该使用 ResourceTag 而不是 RequestTag 。根据AWS文档https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html

,以下是两者之间的区别
  

资源–根据标签控制对AWS服务资源的访问   在那些资源上。为此,请使用ResourceTag / key-name条件   确定是否允许基于资源访问资源的键   附加到资源的标签。

     

请求–控制可以在请求中传递哪些标签。去做这个,   使用aws:RequestTag / key-name条件键指定什么标签   可以在请求中传递键值对以标记或取消标记AWS   资源。

以下是工作政策。

- Effect: "Allow"
  Action:
    - "ec2:TerminateInstances"
  Resource: "*"
  Condition:
    StringEquals:
      aws:ResourceTag/Usage: "TestOnlyTag"
本文链接:https://www.f2er.com/3152865.html

大家都在问