

 **Ayude a mejorar esta página** 

Para contribuir a esta guía del usuario, elija el enlace **Edit this page on GitHub** que se encuentra en el panel derecho de cada página.

# Rol de IAM de nodo de Amazon EKS
<a name="create-node-role"></a>

El daemon de `kubelet` del nodo de Amazon EKS realiza llamadas a las API de AWS en su nombre. Los nodos reciben permisos de dichas llamadas de API a través de políticas asociadas y de un perfil de instancias de IAM. Antes de poder lanzar nodos y registrarlos en un clúster, debe crear un rol de IAM para dichos nodos, para utilizarlo cuando se lancen. Este requisito se aplica a nodos lanzados con la AMI optimizada para Amazon EKS proporcionada por Amazon o con cualquier otra AMI de nodo que pretenda utilizar. Además, este requisito se aplica tanto a los grupos de nodos administrados como a los administrados por el usuario.

**nota**  
No se puede utilizar el mismo rol que se utiliza para crear clústeres.

Antes de crear un nodo, debe crear un rol de IAM con los siguientes permisos:
+ Permisos para que el `kubelet` pueda describir los recursos de Amazon EC2 en la VPC, tal y como los proporciona la política [AmazonEKSWorkerNodePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSWorkerNodePolicy.html). Esta política también proporciona los permisos para el agente de Pod Identity de Amazon EKS.
+ Permisos para que el `kubelet` pueda utilizar imágenes de contenedores de Amazon Elastic Container Registry (Amazon ECR), según lo dispuesto en la política [AmazonEC2ContainerRegistryPullOnly](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ContainerRegistryPullOnly.html). Los permisos para utilizar imágenes de contenedor de Amazon Elastic Container Registry (Amazon ECR) son necesarios porque los complementos integrados para redes ejecutan pods que utilizan imágenes de contenedor de Amazon ECR.
+ (Opcional) Permisos para que el agente de Pod Identity de Amazon EKS utilice la acción `eks-auth:AssumeRoleForPodIdentity` para recuperar las credenciales de los pods. Si no usa [AmazonEKSWorkerNodePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSWorkerNodePolicy.html), debe proporcionar este permiso además de los permisos de EC2 para utilizar Pod Identity de EKS.
+ (Opcional) Si no utiliza Pod Identity de EKS e IRSA para otorgar permisos a los pods de CNI de VPC, debe proporcionar permisos para la CNI de la VPC en el rol de instancia. Puede utilizar la política administrada [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKS_CNI_Policy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKS_CNI_Policy.html) (si creó el clúster con la familia `IPv4`) o una [política IPv6 que usted cree](cni-iam-role.md#cni-iam-role-create-ipv6-policy) (si creó el clúster con la familia `IPv6`). Sin embargo, en lugar de adjuntar la política a este rol, le recomendamos adjuntar la política a un rol independiente utilizado específicamente para el complemento Amazon VPC CNI. Para obtener más información acerca de cómo crear un rol independiente para el complemento Amazon VPC CNI, consulte [Configuración del complemento de CNI de Amazon VPC para utilizar IRSA](cni-iam-role.md).

**nota**  
Los grupos de nodos de Amazon EC2 deben tener un rol de IAM diferente al perfil de Fargate. Para obtener más información, consulte [Rol de IAM de ejecución de pods de Amazon EKS](pod-execution-role.md).

## Verificar un rol de nodo existente
<a name="check-worker-node-role"></a>

Puede utilizar el siguiente procedimiento para verificar y conocer si la cuenta ya dispone del rol de nodo de Amazon EKS.

1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

1. En el panel de navegación izquierdo, elija **Roles**.

1. En la lista de roles, busque `eksNodeRole`, `AmazonEKSNodeRole` o `NodeInstanceRole`. Si no existe un rol con alguno de esos nombres, consulte [Crear el rol de IAM de nodo de Amazon EKS](#create-worker-node-role) para crear el rol. Si existe un rol que contiene `eksNodeRole`, `AmazonEKSNodeRole` o `NodeInstanceRole`, seleccione el rol para ver las políticas adjuntas.

1. Elija **Permisos**.

1. Asegúrese de que las políticas administradas **AmazonEKSWorkerNodePolicy** y **AmazonEC2ContainerRegistryPullOnly** estén asociadas al rol, o que haya una política personalizada asociada con los permisos mínimos.
**nota**  
Si la política **AmazonEKS\$1CNI\$1Policy** se encuentra adjunta al rol, se recomienda eliminarla y adjuntarla a un rol de IAM asignado a la cuenta de servicio de Kubernetes de `aws-node` en su lugar. Para obtener más información, consulte [Configuración del complemento de CNI de Amazon VPC para utilizar IRSA](cni-iam-role.md).

1. Elija **Relaciones de confianza** y, a continuación, **Editar política de confianza**.

1. Verifique que la relación de confianza contiene la siguiente política. Si la relación de confianza coincide con la política a continuación, seleccione **Cancelar**. Si la relación de confianza no coincide, copie la política en la ventana **Editar política de confianza** y elija **Actualizar política**.

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sts:AssumeRole"
               ],
               "Principal": {
                   "Service": [
                       "ec2.amazonaws.com"
                   ]
               }
           }
       ]
   }
   ```

## Crear el rol de IAM de nodo de Amazon EKS
<a name="create-worker-node-role"></a>

Puede crear el rol de IAM del nodo con la Consola de administración de AWS o la CLI de AWS.

 Consola de administración de AWS   

1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

1. En el panel de navegación izquierdo, elija **Roles**.

1. En la página **Roles**, elija **Crear rol**.

1. En la página **Seleccionar entidad de confianza**, haga lo siguiente:

   1. En la sección **Tipo de entidad de confianza**, elija **Servicio de AWS**.

   1. En **Caso de uso**, elija **EC2**.

   1. Elija **Siguiente**.

1. En la página **Agregar permisos**, asocie una política personalizada o haga lo siguiente:

   1. En el cuadro **Filtrar políticas**, escriba `AmazonEKSWorkerNodePolicy`.

   1. A continuación, marque la casilla situada a la izquierda de **AmazonEKSWorkerNodePolicy** en los resultados de la búsqueda.

   1. Elija **Borrar filtros**.

   1. En el cuadro **Filtrar políticas**, escriba `AmazonEC2ContainerRegistryPullOnly`.

   1. Marque la casilla situada a la izquierda de **AmazonEC2ContainerRegistryPullOnly** en los resultados de la búsqueda.

      La política administrada **AmazonEKS\$1CNI\$1Policy** o una [política de IPv6](cni-iam-role.md#cni-iam-role-create-ipv6-policy) que cree también se tiene que adjuntar a este rol o a un rol diferente asignado a la cuenta de servicio de Kubernetes de `aws-node`. Se recomienda asignar la política al rol asociado a la cuenta de servicio de Kubernetes en lugar de asignarla a este rol. Para obtener más información, consulte [Configuración del complemento de CNI de Amazon VPC para utilizar IRSA](cni-iam-role.md).

   1. Elija **Siguiente**.

1. En la página **Nombrar, revisar y crear**, haga lo siguiente:

   1. En **Nombre del rol**, ingrese un nombre único para su rol, por ejemplo, `AmazonEKSNodeRole`.

   1. En **Descripción**, sustituya el texto actual por un texto descriptivo, como `Amazon EKS - Node role`.

   1. En **Agregar etiquetas (Opcional)**, de manera opcional, agregue metadatos al rol asociando etiquetas como pares de clave-valor. Para obtener más información sobre el uso de etiquetas en IAM, consulte [Etiquetado de recursos de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) en la *Guía de usuario de IAM*.

   1. Elija **Creación de rol**.

 AWS CLI  

1. Ejecute el siguiente comando para crear un archivo `node-role-trust-relationship.json`.

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sts:AssumeRole"
               ],
               "Principal": {
                   "Service": [
                       "ec2.amazonaws.com"
                   ]
               }
           }
       ]
   }
   ```

1. Creación del rol de IAM.

   ```
   aws iam create-role \
     --role-name AmazonEKSNodeRole \
     --assume-role-policy-document file://"node-role-trust-relationship.json"
   ```

1. Adjunte al rol de IAM las dos políticas administradas por IAM necesarias.

   ```
   aws iam attach-role-policy \
     --policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy \
     --role-name AmazonEKSNodeRole
   aws iam attach-role-policy \
     --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly \
     --role-name AmazonEKSNodeRole
   ```

1. Adjunte una de las siguientes políticas de IAM al rol de IAM en función de la familia de IP con la que haya creado el clúster. La política debe adjuntarse a este rol o a un rol asociado a la cuenta de servicio de `aws-node` de Kubernetes que se utiliza para el complemento CNI de Amazon VPC. Se recomienda asignar la política al rol asociado a la cuenta de servicio de Kubernetes. Para asignar la política al rol asociado a la cuenta de servicio de Kubernetes, consulte [Configuración del complemento de CNI de Amazon VPC para utilizar IRSA](cni-iam-role.md).
   + IPv4

     ```
     aws iam attach-role-policy \
       --policy-arn arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy \
       --role-name AmazonEKSNodeRole
     ```
   + IPv6

     1. Copie el siguiente texto y guárdelo en un archivo llamado `vpc-cni-ipv6-policy.json`.

        ```
        {
            "Version":"2012-10-17",		 	 	 
            "Statement": [
                {
                    "Effect": "Allow",
                    "Action": [
                        "ec2:AssignIpv6Addresses",
                        "ec2:DescribeInstances",
                        "ec2:DescribeTags",
                        "ec2:DescribeNetworkInterfaces",
                        "ec2:DescribeInstanceTypes"
                    ],
                    "Resource": "*"
                },
                {
                    "Effect": "Allow",
                    "Action": [
                        "ec2:CreateTags"
                    ],
                    "Resource": [
                        "arn:aws:ec2:*:*:network-interface/*"
                    ]
                }
            ]
        }
        ```

     1. Creación de la política de IAM.

        ```
        aws iam create-policy --policy-name AmazonEKS_CNI_IPv6_Policy --policy-document file://vpc-cni-ipv6-policy.json
        ```

     1. Adjunte la política de IAM al rol de IAM. Reemplace *111122223333* por el ID de su cuenta.

        ```
        aws iam attach-role-policy \
          --policy-arn arn:aws:iam::111122223333:policy/AmazonEKS_CNI_IPv6_Policy \
          --role-name AmazonEKSNodeRole
        ```