¿Cómo puedo crear una política de IAM para controlar el acceso a los recursos de Amazon EC2 mediante etiquetas?

4 minutos de lectura
0

Quiero crear una política de AWS Identity and Access Management (IAM) que controle el acceso a las instancias de Amazon Elastic Compute Cloud (Amazon EC2) mediante etiquetas.

Breve descripción

Controle el acceso a los despliegues más pequeños de instancias de Amazon EC2 de la siguiente manera:

  1. Agregue una etiqueta específica a las instancias para las que quiere conceder acceso a los usuarios o grupos.
  2. Cree una política de IAM que conceda acceso a cualquier instancia con la etiqueta específica.
  3. Asocie la política de IAM a los usuarios o grupos que quiera que accedan a las instancias.

Solución

Agregación de una etiqueta a su grupo de instancias de EC2

Abra la consola de Amazon EC2. A continuación, agregue etiquetas al grupo de instancias de EC2 a las que quiera que puedan acceder los usuarios o grupos. Si aún no tiene una etiqueta, cree una nueva.
Nota: Asegúrese de leer y comprender las restricciones de las etiquetas antes de etiquetar los recursos. Las etiquetas de Amazon EC2 distinguen entre mayúsculas y minúsculas.

Creación de una política de IAM que conceda acceso a las instancias con la etiqueta específica

Cree una política de IAM que:

  • Permita controlar las instancias con la etiqueta.
  • Contenga una instrucción condicional que permita acceder a los recursos de Amazon EC2 si el valor de la clave de condición ec2:ResourceTag/UserName coincide con la variable de política aws:username. La variable de política ${aws:username} se sustituye por el nombre fácil de recordar del usuario de IAM actual cuando IAM evalúe la política.
  • Permita el acceso a las acciones ec2:Describe* en el caso de los recursos de Amazon EC2.
  • Deniegue explícitamente el acceso a las acciones ec2:CreateTags y ec2:DeleteTags para impedir que los usuarios creen o eliminen etiquetas. De este modo se evita que el usuario tome el control de una instancia de EC2 al agregarle la etiqueta específica.

La política finalizada se parece a la siguiente:

Nota: Esta política es aplicable a las instancias de Amazon EC2 que utilicen la clave de condición ec2:ResourceTag. Para restringir el lanzamiento de nuevas instancias de Amazon EC2 mediante etiquetas, consulte ¿Cómo puedo usar las etiquetas de políticas de IAM para restringir la forma en que se puede crear una instancia de EC2 o un volumen de EBS?

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "ec2:ResourceTag/UserName": "${aws:username}"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "ec2:Describe*",
      "Resource": "*"
    },
    {
      "Effect": "Deny",
      "Action": [
        "ec2:CreateTags",
        "ec2:DeleteTags"
      ],
      "Resource": "*"
    }
  ]
}

Nota: En el caso de las entidades principales que no sean usuarios de IAM, como los conjuntos de permisos de IAM Identity Center o los usuarios federados, utilice la variable aws:userid en lugar de aws:username. La variable aws:userid tiene el valor account:caller-specified-name. Para obtener más información, consulte Elementos de la política de IAM: variables y etiquetas y ¿Cómo puedo utilizar las variables de política de IAM con usuarios federados?

Asociación de la política de IAM a los usuarios o grupos que quiera que accedan a las instancias

Asocie la política de IAM a los usuarios o grupos que quiera que accedan a las instancias. Puede asociar la política de IAM mediante la Consola de administración de AWS, la AWS CLI o una API de AWS.

Información relacionada

Granting required permissions for Amazon EC2 resources

Políticas de IAM para Amazon EC2

Tutorial de IAM: definición de permisos para acceder a los recursos de AWS en función de etiquetas