Принудительное создание тегов для EC2 - PullRequest
0 голосов
/ 06 января 2019

Я пытался создать политику, которая не позволит создавать экземпляр ec2, если у него нет тега Project. Вот что у меня сейчас есть, и все, что я получаю, это ec2:RunInstances You are not authorized to perform this operation, даже если у меня есть тег Project.

{
  "Version": "2012-10-17",
  "Statement": [
      {
          "Sid": "RunCloudFormation",
          "Effect": "Allow",
          "Action": [
              "cloudformation:*"
          ],
          "Resource": [
              "*"
          ]
      },
      {
          "Sid": "CreateEC2Instances",
          "Effect": "Allow",
          "Action": [
              "ec2:Describe*",
              "ec2:CreateSecurityGroup",
              "ec2:AuthorizeSecurityGroupIngress",
              "ec2:CreateTags",
              "ec2:RunInstances"
          ],
          "Resource": "*"
      },
      {
          "Sid": "LaunchingEC2withAMIsAndTags",
          "Effect": "Allow",
          "Action": "ec2:RunInstances",
          "Resource": "arn:aws:ec2:*:*:instance/*",
          "Condition": {
              "StringLike": {
                  "aws:RequestTag/Project": "?*"
              }
          }
      }
  ]
} 

Вот фрагмент моего шаблона CloudFormation:

  "KeyName": {
          "Ref": "KeyName"
        },
        "Tags": [
          {
            "Key": "Project",
            "Value": "test"
          },
          {
            "Key": "OwnerAdmin",
            "Value": "myname"
          },
          {
            "Key": "Name",
            "Value": "TESTTags"
          }
        ], 

1 Ответ

0 голосов
/ 07 января 2019

Мне удалось заставить симулятор политики разрешить действие RunInstances, изменив

"Resource": "arn:aws:ec2:*:*:instance/*"

до

"Resource": "*",

Вам нужно использовать разрешения уровня ресурса, только если вы хотите ограничить ресурсы, используемые экземпляром, такие как AMI, подсеть, группа безопасности и т. Д.

...