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 roleskubelet
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 del 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 política 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.
-
Abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
En el panel de navegación izquierdo, elija Roles.
-
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.
-
En la página AmazonEKSFargatePodExecutionRole, haga lo siguiente:
-
Elija Permissions.
-
Asegúrese de que la política AmazonEKSFargatePodExecutionRolePolicy administrada por Amazon esté asociada al rol.
-
Seleccione Trust Relationships.
-
Elija Edit trust policy (Editar la política de confianza).
-
-
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
. Reemplaceregion-code
por la región de AWS donde se encuentra el clúster,111122223333
por el ID de su cuenta ymy-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 Actualizar política. Reemplace
region-code
por la región de AWS en la que se encuentra el clúster. Si desea utilizar la misma función en todas las regiones de AWS en su cuenta, reemplaceregion-code
con*
. Reemplace111122223333
con su ID de cuenta ymy-cluster
con el nombre de su clúster. Si quiere utilizar el mismo rol para todos los clústeres de su cuenta, reemplacemy-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
-
-
Abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
En el panel de navegación izquierdo, elija Roles.
-
En la página Roles, elija Crear rol.
-
En la página Seleccionar entidad de confianza, haga lo siguiente:
-
En la sección Tipo de entidad de confianza, elija Servicio de AWS.
-
En la lista desplegable Casos de uso para otros servicios de AWS, elija EKS.
-
Elija Pod Fargate de EKS.
-
Elija Siguiente.
-
-
Elija Next (Siguiente) en la página Add permissions (Agregar permisos).
-
En la página Name, review, and create (Nombre, revisar y crear), haga lo siguiente:
-
En Nombre del rol, ingrese un nombre único para su rol, por ejemplo,
AmazonEKSFargatePodExecutionRole
. -
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.
-
Elija Crear rol.
-
-
En la página Roles, busque la lista de roles para AmazonEKSFargatePodExecutionRole. Elija el rol .
-
En la página AmazonEKSFargatePodExecutionRole, haga lo siguiente:
-
Seleccione Trust Relationships.
-
Elija Edit trust policy (Editar la política de confianza).
-
-
En la página Edit trust policy (Editar política de confianza), lleve a cabo las siguientes operaciones:
-
Copie y pegue los siguientes contenidos en el formulario Edit trust policy (Editar política de confianza). Reemplace
region-code
por la región de AWS en la que se encuentra el clúster. Si desea utilizar la misma función en todas las regiones de AWS en su cuenta, reemplaceregion-code
con*
. Reemplace111122223333
con su ID de cuenta ymy-cluster
con el nombre de su clúster. Si quiere utilizar el mismo rol para todos los clústeres de su cuenta, reemplacemy-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" } ] }
-
Elija Actualizar política.
-
-
- AWS CLI
-
-
Copie y pegue los siguientes contenidos en un archivo denominado
pod-execution-role-trust-policy.json
. Reemplaceregion-code
por la región de AWS en la que se encuentra el clúster. Si desea utilizar la misma función en todas las regiones de AWS en su cuenta, reemplaceregion-code
con*
. Reemplace111122223333
con su ID de cuenta ymy-cluster
con el nombre de su clúster. Si quiere utilizar el mismo rol para todos los clústeres de su cuenta, reemplacemy-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" } ] }
-
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"
-
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
-