Rol de IAM de ejecución de Pod de Amazon EKS - Amazon EKS

Rol de IAM de ejecución de Pod de Amazon EKS

Se requiere el rol de ejecución de Pod de Amazon EKS para ejecutar Pods en la infraestructura de AWS Fargate.

Cuando su clúster crea Pods en infraestructura de AWS Fargate, los componentes que se ejecutan en la infraestructura de Fargate deben hacer llamadas a las API de AWS en su nombre. Es así para que puedan realizar acciones, como extraer imágenes de contenedores de Amazon ECR o enrutar registros a otros servicios de AWS. El rol de ejecución de Pod de Amazon EKS proporciona los permisos de IAM para esta tarea.

Al crear un perfil de Fargate, debe especificar un rol de ejecución de Pod para los componentes de Amazon EKS que se ejecutan en la infraestructura de Fargate con el perfil. Este rol se agrega al control de acceso basado en roles (RBAC) de Kubernetes del clúster para su autorización. Esto permite al kubelet que se está ejecutando en la infraestructura de Fargate registrarse en el clúster de Amazon EKS para que pueda aparecer en el clúster como un nodo.

nota

El perfil de Fargate debe tener un rol de IAM diferente a los grupos de nodos de Amazon EC2.

importante

Los contenedores que se ejecutan en el Pod de Fargate no pueden asumir los permisos de IAM asociados a un rol de ejecución de Pod. Para brindar permisos a los contenedores de su Pod de Fargate para acceder a otros servicios de AWS, debe utilizar Roles de IAM para cuentas de servicio.

Antes de crear un perfil de Fargate, debe crear un rol de IAM con la AmazonEKSFargatePodExecutionRolePolicy.

Compruebe si hay un rol de ejecución de Pod existente correctamente

Puede utilizar el siguiente procedimiento para verificar y ver si su cuenta ya dispone del rol de ejecución de Pod de Amazon EKS correctamente configurado. Para evitar un problema de seguridad adjunto confuso, es importante que la función restrinja el acceso basándose en SourceArn. Puede modificar el rol de ejecución según sea necesario para incluir compatibilidad con perfiles Fargate en otros clústeres.

Para verificar si hay un rol de ejecución de Pod de Amazon EKS en la consola de IAM
  1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación izquierdo, seleccione Roles.

  3. En la página Roles, busque la lista de roles para AmazonEKSFargatePodExecutionRole. Si el rol no existe, consulte Crear el rol de ejecución de Pod de Amazon EKS para crear el rol. Si el rol existe, elija el rol.

  4. En la página AmazonEKSFargatePodExecutionRole, haga lo siguiente:

    1. Elija Permissions.

    2. Asegúrese de que la política AmazonEKSFargatePodExecutionRolePolicy administrada por Amazon esté asociada al rol.

    3. Seleccione Trust Relationships.

    4. Elija Edit trust policy (Editar la política de confianza).

  5. En la página Editar la política de confianza, verifique que la relación de confianza contiene la siguiente política y que tenga una línea para los perfiles de Fargate en su clúster. Si es así, elija Cancel (Cancelar).

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*" } }, "Principal": { "Service": "eks-fargate-pods.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

    Si la política coincide pero no tiene una línea que especifique los perfiles de Fargate en su clúster, puede agregar la siguiente línea en la parte superior del objeto ArnLike. Reemplace region-code por el Región de AWS en que está su clúster, 111122223333 por el ID de su cuenta y my-cluster por el nombre de su clúster.

    "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*",

    Si la política no coincide, copie la política anterior completa en el formulario y elija Update policy (Política de actualización). Reemplace region-code por la Región de AWS en la que se encuentra el clúster. Si desea utilizar el mismo rol en todas las Regiones de AWS de su cuenta, reemplace region-code por *. Reemplace 111122223333 por el nombre del clúster y my-cluster por el ID de la cuenta. Si quiere utilizar el mismo rol para todos los clústeres de su cuenta, reemplace my-cluster con *.

Crear el rol de ejecución de Pod de Amazon EKS

Si aún no tiene la función de ejecución de Pod de Amazon EKS para su clúster, puede utilizar la AWS Management Console o la AWS CLI para crearlo.

AWS Management Console
Para crear un rol de ejecución de Pod de AWS Fargate con la AWS Management Console
  1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación izquierdo, seleccione Roles.

  3. En la página Roles, elija Crear rol.

  4. 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.

    2. En la lista desplegable Casos de uso para otros Servicios de AWS, elija EKS.

    3. Elija EKS - Fargate Pod.

    4. Elija Siguiente.

  5. Elija Next (Siguiente) en la página Add permissions (Agregar permisos).

  6. En la página Name, review, and create (Nombre, revisar y crear), haga lo siguiente:

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

    2. 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 en la Guía de usuario de IAM.

    3. Elija Crear rol.

  7. En la página Roles, busque la lista de roles para AmazonEKSFargatePodExecutionRole. Elija el rol .

  8. En la página AmazonEKSFargatePodExecutionRole, haga lo siguiente:

    1. Seleccione Trust Relationships.

    2. Elija Edit trust policy (Editar la política de confianza).

  9. En la página Edit trust policy (Editar política de confianza), lleve a cabo las siguientes operaciones:

    1. Copie y pegue los siguientes contenidos en el formulario Edit trust policy (Editar política de confianza). Reemplace region-code con la Región de AWS en la que está su clúster. Si desea utilizar el mismo rol en todas las Regiones de AWS de su cuenta, reemplace region-code por *. Reemplace 111122223333 por el nombre del clúster y my-cluster por el ID de la cuenta. Si quiere utilizar el mismo rol para todos los clústeres de su cuenta, reemplace my-cluster con *.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*" } }, "Principal": { "Service": "eks-fargate-pods.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Elija Actualizar política.

AWS CLI
Para crear un rol de ejecución de Pod de AWS Fargate con la AWS CLI
  1. Copie y pegue los siguientes contenidos en un archivo denominado pod-execution-role-trust-policy.json. Reemplace region-code con la Región de AWS en la que está su clúster. Si desea utilizar el mismo rol en todas las Regiones de AWS de su cuenta, reemplace region-code por *. Reemplace 111122223333 por el nombre del clúster y my-cluster por el ID de la cuenta. Si quiere utilizar el mismo rol para todos los clústeres de su cuenta, reemplace my-cluster con *.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*" } }, "Principal": { "Service": "eks-fargate-pods.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Cree un rol de IAM de ejecución de Pod.

    aws iam create-role \ --role-name AmazonEKSFargatePodExecutionRole \ --assume-role-policy-document file://"pod-execution-role-trust-policy.json"
  3. Adjunte la política administrada de IAM por Amazon EKS requerida al rol.

    aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy \ --role-name AmazonEKSFargatePodExecutionRole