¿Qué permisos de IAM se necesitan para ec2-create-image?

¿Qué permisos de IAM se necesitan para ec2-create-image?

Miré a través deldocumentos oficialesy parece que no pude encontrar ninguna referencia sobre qué permisos necesita el usuario de IAM para poder utilizar este comando.

Quiero que el usuario de IAM solo pueda crear imágenes para esta instancia en particular, así que configuré mi política de esta manera:

{
  "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>"
      ]
    }
  ]
} 

Pero seguí recibiendo errores de Acceso denegado cuando utilicé la CLI de EC2. Cambié la Resourceparte a solo "*"y ahora funciona, pero ahora mi usuario de IAM puede crear AMI (por lo tanto, provocar reinicios) en cualquier instancia EC2 de mi cuenta.

¿Cómo puedo bloquear esto?

Respuesta1

Desafortunadamente, no puedes bloquear esto a nivel de recursos en este momento. Hay unmontón de acciones EC2eso no admite permisos a nivel de recursos y ec2:CreateImagees uno de ellos.

Respuesta2

La creación de una imagen también implica la creación de instantáneas adjuntas a esa instancia. La siguiente política de IAM debería funcionar.

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

Respuesta3

No puede bloquear/limitar CreateImage en el nivel de recursos y la respuesta de @nkryption fue correcta. http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ec2-api-permissions.html

Respuesta4

CreateImage ahora admite políticas a nivel de recursos. La siguiente política permite crear una imagen pero solo para la identificación de instancia especificada:

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

        }
    ]
}

Actualice el número de cuenta y la identificación de la instancia para adaptarla a sus requisitos. También puedes restringir esto según las etiquetas de instancia:

{
    "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"
                }
            }
        }
    ]
}
            

información relacionada