Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS IAM策略仅允许对具有特定标记的资源执行角色删除操作_Amazon Web Services_Yaml_Amazon Iam - Fatal编程技术网

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

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: - "

我正在创建一个跨帐户角色,以分布在多个AWS帐户中。目标是允许我的一个lambda承担这个交叉帐户角色,并在目标帐户中创建CFN堆栈

为了允许删除堆栈,我需要为角色分配像ec2:TerminateInstances这样的操作。但我不想允许对所有资源“*”进行操作。如何仅允许对具有特定标记的资源执行此操作

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

- 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"

你试过了吗?它有用吗?