Saltar al contenido

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

3 minutos de lectura
0

Quiero controlar el acceso a las instancias de Amazon Elastic Compute Cloud (Amazon EC2) mediante etiquetas.

Resolución

Agregación de una etiqueta al grupo de instancias de Amazon EC2

Nota: Las etiquetas tienen requisitos específicos, como el límite de caracteres y el número de etiquetas por recurso.

Abre la consola de Amazon EC2. A continuación, agrega etiquetas al grupo de instancias de EC2 para los usuarios o grupos relevantes. Si aún no tienes una etiqueta, crea una nueva.

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

Tu política de IAM debe cumplir las siguientes condiciones para conceder acceso a las instancias con una etiqueta específica:

  • Permite el control de las instancias con la etiqueta.
  • Contén una instrucción condicional que permita acceder a los recursos de EC2 cuando el valor de la clave de condición ec2:ResourceTag/UserName coincida con la variable de política aws:username. Cuando IAM evalúa la política, sustituye la variable de política ${aws:username} por el nombre descriptivo del usuario de IAM actual.
  • Permite el acceso a las acciones de ec2:Describe* para los recursos de EC2.
  • Deniega explícitamente el acceso a las acciones ec2:CreateTags y ec2:DeleteTags. Esto evita que los usuarios creen o eliminen etiquetas incluso cuando tienen acceso a las instancias de control.

En tu editor JSON, copia la siguiente plantilla de política de ejemplo:

{
  "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: Esta política es aplicable a las instancias que utilicen la clave de condición ec2:ResourceTag. Si deseas usar etiquetas para impedir que los usuarios inicien nuevas instancias, sigue las instrucciones que se indican en ¿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 y acceder a estos?

En el caso de las entidades principales que no sean usuarios de IAM, como los usuarios federados, utiliza 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, consulta 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 quieres que accedan a las instancias

Para adjuntar la política de IAM a tus usuarios o grupos, sigue las instrucciones que se indican en Adición de permisos de identidad de IAM (consola). También puedes utilizar la Interfaz de la línea de comandos de AWS (AWS CLI) o la API de AWS.

Nota: Si se muestran errores al ejecutar comandos de la AWS CLI, consulta Solución de errores de la AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.

Información relacionada

Granting required permissions for Amazon EC2 resources (Concesión de los permisos necesarios para los recursos de Amazon EC2)

Políticas basadas en identidad para Amazon EC2

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

Etiquetar los recursos de Amazon EC2