Как я могу использовать, я - политики ограничить пользователя, чтобы только запустить экземпляры с определенным набором AMI?

У меня есть AMI, которые я хочу разрешить отмеченный с тегом "типа".

Вот политика, которую я попробовал:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:RunInstances",
        "ec2:StartInstances"
      ],
      "Condition": {
        "StringEquals": {
          "ec2:ResourceTag/type": "permitted_amis"
        }
      },
      "Resource": [
        "*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeInstances",
        "ec2:CreateTags"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}

Когда я пытался запустить экземпляр от одного из тех AMI, я отклонил разрешение.

4
задан 14 August 2014 в 23:34
1 ответ

Проблема в том, что у вас больше нет разрешений ec2:RunInstances, потому что вы добавили это разрешение вместе с условием, поэтому оно отменяет - оно будет искать экземпляр EC2 с этим тегом; видя, что у вас есть только "ec2:DescribeInstances" на ресурсе: ["*"];

Добавьте два отдельных утверждения и укажите точные ресурсы для каждого:

  • по одному для AMI с Resource:["arn:aws:ec2:region::image/ami-*"]
  • по одному для ec2:RunInstances with Resource:["arn:aws:ec2:region:account:instance/*"]

Пример: (взято из http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#ex5)

Следующая политика позволяет пользователям запускать экземпляры, используя только AMI, которые имеют указанный тег "department=dev", связанный с их. Пользователи не могут запускать экземпляры, используя другие AMI, потому что Элемент условия первого утверждения требует, чтобы пользователи уточняли АМИ, у которого есть эта метка. Пользователи также не могут запуститься в подсеть, так как политика не дает разрешений для подсети и сети. ресурсы интерфейса. Однако они могут быть запущены в EC2-Classic. второе утверждение использует подстановочный символ, чтобы позволить пользователям создавать экземпляр ресурсы, и требует от пользователей указания пары ключей project_keypair и группа безопасности sg-1a2b3c4d. Пользователи все еще могут запускать экземпляров без пары ключей.

{
   "Version": "2012-10-17",
   "Statement": [{
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [ 
         "arn:aws:ec2:region::image/ami-*"
      ],
      "Condition": {
         "StringEquals": {
            "ec2:ResourceTag/department": "dev"
         }
      }
   },
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [ 
          "arn:aws:ec2:region:account:instance/*",
          "arn:aws:ec2:region:account:volume/*",
          "arn:aws:ec2:region:account:key-pair/project_keypair",
          "arn:aws:ec2:region:account:security-group/sg-1a2b3c4d"
         ]
      }
   ]
}
3
ответ дан 3 December 2019 в 03:42

Теги

Похожие вопросы