Amazon web services AWS IAM策略仅允许对具有特定标记的资源执行角色删除操作
我正在创建一个跨帐户角色,以分布在多个AWS帐户中。目标是允许我的一个lambda承担这个交叉帐户角色,并在目标帐户中创建CFN堆栈 为了允许删除堆栈,我需要为角色分配像ec2:TerminateInstances这样的操作。但我不想允许对所有资源“*”进行操作。如何仅允许对具有特定标记的资源执行此操作 我尝试了以下策略条件,但不起作用。尝试删除堆栈时,我在ec2:TerminateInstances操作中遇到未经授权的错误Amazon web services AWS IAM策略仅允许对具有特定标记的资源执行角色删除操作,amazon-web-services,yaml,amazon-iam,Amazon Web Services,Yaml,Amazon Iam,我正在创建一个跨帐户角色,以分布在多个AWS帐户中。目标是允许我的一个lambda承担这个交叉帐户角色,并在目标帐户中创建CFN堆栈 为了允许删除堆栈,我需要为角色分配像ec2:TerminateInstances这样的操作。但我不想允许对所有资源“*”进行操作。如何仅允许对具有特定标记的资源执行此操作 我尝试了以下策略条件,但不起作用。尝试删除堆栈时,我在ec2:TerminateInstances操作中遇到未经授权的错误 - Effect: "Allow" Action: - "
- Effect: "Allow"
Action:
- "ec2:TerminateInstances"
Resource: "*"
Condition:
StringEquals:
aws:RequestTag/Usage: TestOnlyTag
我走对了吗
请注意,在创建堆栈之前,需要将此角色部署到目标帐户中。因此,无法在此处指定实例Id。事实证明,我应该使用ResourceTag而不是RequestTag。以下是根据AWS文件,这两种方法之间的区别 资源–根据标记控制对AWS服务资源的访问 依靠这些资源。为此,请使用ResourceTag/key name条件 键以确定是否允许基于 附加到资源的标记 请求–控制在请求中可以传递哪些标记。为此,, 使用aws:RequestTag/key name条件键指定标记 可以在请求中传递键值对以标记或取消标记AWS 资源 以下是工作政策
- Effect: "Allow"
Action:
- "ec2:TerminateInstances"
Resource: "*"
Condition:
StringEquals:
aws:ResourceTag/Usage: "TestOnlyTag"
你试过了吗?它有用吗?