Какие разрешения IAM необходимы для ec2-create-image?

Какие разрешения IAM необходимы для ec2-create-image?

Я просмотрелофициальные документыи, похоже, не удалось найти никаких ссылок на то, какие разрешения необходимы пользователю IAM для использования этой команды.

Я хочу, чтобы пользователь IAM мог создавать изображения только для этого конкретного экземпляра, поэтому я настроил политику следующим образом:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt999",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateImage"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:ec2:us-east-1:<my account id>:instance/<my instance id>"
      ]
    }
  ]
} 

Но я продолжал получать ошибки Access Denied при использовании EC2 CLI. Я изменил часть Resourceна just "*"и теперь это работает, но теперь мой пользователь IAM может создавать AMI (следовательно, вызывать перезагрузки) для любых экземпляров EC2 в моей учетной записи.

Как я могу это заблокировать?

решение1

К сожалению, на данный момент вы не можете заблокировать это на уровне ресурсов. Естькуча действий EC2который не поддерживает разрешения на уровне ресурсов и ec2:CreateImageявляется одним из них.

решение2

Создание образа также подразумевает создание снимков, прикрепленных к этому экземпляру. Ниже политика IAM должна работать.

{     
  "Effect": "Allow",
  "Action": [
    "ec2:Describe*",
    "ec2:CreateSnapshot",
    "ec2:CreateImage"
  ],
  "Resource": [
    "*"
  ]
}

решение3

Вы не можете заблокировать/ограничить CreateImage на уровне ресурсов, и ответ @nkryption был правильным. http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ec2-api-permissions.html

решение4

CreateImage теперь поддерживает политики уровня ресурсов. Следующая политика позволяет создать образ, но только для указанного идентификатора экземпляра:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowCreateImage",
            "Effect": "Allow",
            "Action": "ec2:CreateImage",
            "Resource": "arn:aws:ec2:*::image/*"
        },
        {
            "Sid": "RestrictCreateImageToInstance",
            "Effect": "Allow",
            "Action": "ec2:CreateImage",
            "Resource": "arn:aws:ec2:*:999999999999:instance/i-999999999",

        }
    ]
}

Обновите номер учетной записи и идентификатор экземпляра в соответствии с вашими требованиями. Вы также можете ограничить это на основе тегов экземпляра:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowCreateImage",
            "Effect": "Allow",
            "Action": "ec2:CreateImage",
            "Resource": "arn:aws:ec2:*::image/*"
        },
        {
            "Sid": "RestrictCreateImageToInstances",
            "Effect": "Allow",
            "Action": "ec2:CreateImage",
            "Resource": "arn:aws:ec2:*:999999999999:instance/*",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/Name": "Test"
                }
            }
        }
    ]
}
            

Связанный контент