Descripción de cómo funciona EKS Pod Identity - Amazon EKS

Ayude a mejorar esta página

¿Quiere contribuir a esta guía del usuario? Desplácese hasta el final de esta página y seleccione Editar esta página en GitHub. Sus contribuciones ayudarán a que nuestra guía del usuario sea mejor para todos.

Descripción de cómo funciona EKS Pod Identity

Las asociaciones de Pod Identity de Amazon EKS ofrecen la posibilidad de administrar las credenciales para las aplicaciones, de un modo similar a cómo los perfiles de instancia de Amazon EC2 proporcionan credenciales a instancias de Amazon EC2.

Pod Identity de Amazon EKS proporciona credenciales a sus cargas de trabajo con una API de autenticación de EKS adicional y un pod de agente que se ejecuta en cada nodo.

En sus complementos, como los complementos de Amazon EKS y el controlador autogestionado, los operadores y otros complementos, el autor debe actualizar el software para utilizar los SDK de AWS más recientes. Para ver la lista de compatibilidad entre Pod Identity de EKS y los complementos fabricados por Amazon EKS, consulte la sección anterior Restricciones de Pod Identity de EKS.

Uso de Identidades de pod de EKS en el código

En su código, puede usar los SDK de AWS para acceder a los servicios de AWS. El código se escribe para crear un cliente para un servicio de AWS con un SDK y, de forma predeterminada, el SDK busca en una cadena de ubicaciones las credenciales de AWS Identity and Access Management que se van a utilizar. Una vez que se ha comprobado que las credenciales son válidas, se detiene la búsqueda. Para obtener más información sobre las ubicaciones predeterminadas utilizadas, consulte la cadena de proveedores de credenciales en la Guía de referencia de herramientas y SDK de AWS.

Se han agregado las Pod Identities de EKS al proveedor de credenciales del contenedor, que se busca en un paso de la cadena de credenciales predeterminada. Si sus cargas de trabajo utilizan actualmente credenciales que se encuentran en una fase anterior de la cadena de credenciales, esas credenciales seguirán utilizándose aunque configure una asociación de Pod Identity de EKS para la misma carga de trabajo. De esta forma, puede migrar de forma segura desde otros tipos de credenciales creando primero la asociación antes de eliminar las credenciales antiguas.

El proveedor de credenciales del contenedor proporciona credenciales temporales de un agente que se ejecuta en cada nodo. En Amazon EKS, el agente de Pod Identity de Amazon EKS y en Servicio de contenedor elástico de Amazon, el agente es el amazon-ecs-agent. Los SDK utilizan variables de entorno para localizar el agente al que conectarse.

Por el contrario, los roles de IAM para las cuentas de servicio proporcionan un token de identidad web que el SDK de AWS debe intercambiar con AWS Security Token Service usando AssumeRoleWithWebIdentity.

Cómo funciona el agente de Pod Identity de EKS con un Pod

  1. Cuando Amazon EKS inicia un nuevo pod que utiliza una cuenta de servicio con una asociación de Pod Identity de EKS, el clúster agrega el siguiente contenido al manifiesto de Pod:

    env: - name: AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE value: "/var/run/secrets/pods.eks.amazonaws.com/serviceaccount/eks-pod-identity-token" - name: AWS_CONTAINER_CREDENTIALS_FULL_URI value: "http://169.254.170.23/v1/credentials" volumeMounts: - mountPath: "/var/run/secrets/pods.eks.amazonaws.com/serviceaccount/" name: eks-pod-identity-token volumes: - name: eks-pod-identity-token projected: defaultMode: 420 sources: - serviceAccountToken: audience: pods.eks.amazonaws.com expirationSeconds: 86400 # 24 hours path: eks-pod-identity-token
  2. Kubernetes selecciona en qué nodo se va a ejecutar el pod. A continuación, el agente de Pod Identity de Amazon EKS del nodo utiliza la acción AssumeRoleForPodIdentity para recuperar las credenciales temporales de la API de autenticación de EKS.

  3. El agente de Pod Identity de EKS pone estas credenciales a disposición de los SDK de AWS que ejecuta en sus contenedores.

  4. Utilice el SDK en su aplicación sin especificar un proveedor de credenciales para utilizar la cadena de credenciales predeterminada. O bien, puede especificar el proveedor de credenciales del contenedor. Para obtener más información sobre las ubicaciones predeterminadas utilizadas, consulte la cadena de proveedores de credenciales en la Guía de referencia de herramientas y SDK de AWS.

  5. El SDK utiliza las variables de entorno para conectarse al agente de Pod Identity de EKS y recuperar las credenciales.

    nota

    Si sus cargas de trabajo utilizan actualmente credenciales que se encuentran en una fase anterior de la cadena de credenciales, esas credenciales seguirán utilizándose aunque configure una asociación de Pod Identity de EKS para la misma carga de trabajo.