创建仅允许在特定资源组内创建资源的 AWS IAM 策略?

ken*_*ner 2 amazon-web-services amazon-iam

在我的 AWS 账户中,我们有 3 个不同的应用程序,A、B、C。

我想为 B 团队创建一个 IAM 策略,允许他们创建新的 EC2 实例,但限制它在 B 资源组中进行标记,或者其他一些可以明确将新实例与 B 组关联的约束。那可能吗?

Luk*_*son 6

是的,这绝对可以通过 IAM 使用Condition元素实现。Condition 元素允许您构建表达式,在其中您可以使用布尔运算符来匹配条件,在您的情况下,该条件将是具有特定标记的资源。

例如,如果你用“组B”标记所有的应用程序B的资源下面的IAM策略将用户限制能够启动,停止和重新启动EC2有该标签的资源:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "ec2:StartInstances",
        "ec2:StopInstances",      
        "ec2:RebootInstances"
      ],
      "Condition": {
        "StringEquals": {
          "ec2:ResourceTag/GroupB":"true"
        }
      },
      "Resource": [
        "arn:aws:ec2:your_region:your_account_ID:instance/*"
      ],
      "Effect": "Allow"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

您可以在 AWS “什么是资源组”页面上找到有关资源组的更多信息。