Concesión a los usuarios y roles de IAM de acceso a las APIs de Kubernetes - 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.

Concesión a los usuarios y roles de IAM de acceso a las APIs de Kubernetes

Su clúster tiene un punto de conexión de la API de Kubernetes. Kubectl usa esta API. Puede autenticarse en esta API mediante dos tipos de identidades:

  • Una entidad principal de (IAM) (rol o usuario) de AWS Identity and Access Management: este tipo requiere autenticación ante IAM. Los usuarios pueden iniciar sesión en AWS como un usuario de IAM o con una identidad federada mediante las credenciales proporcionadas a través de una fuente de identidad. Los usuarios solo pueden iniciar sesión con una identidad federada si su administrador previamente configuró la federación de identidades mediante los roles de IAM. Cuando los usuarios acceden a AWS mediante la federación, están asumiendo un rol de forma indirecta. Cuando los usuarios utilizan este tipo de identidad, puede hacer lo siguiente:

    • Puede asignarles permisos de Kubernetes para que puedan trabajar con objetos de Kubernetes en su clúster. Para obtener más información sobre cómo asignar permisos a las entidades principales de IAM para que puedan acceder a los objetos de Kubernetes en su clúster, consulte Concesión de acceso a los usuarios de IAM a las entradas de acceso de Kubernetes con EKS.

    • Puede asignarles permisos de IAM para que puedan trabajar con su clúster de Amazon EKS y sus recursos mediante la API de Amazon EKS, la AWS CLI, la AWS CloudFormation, la AWS Management Console o el eksctl. Para obtener más información, consulte Acciones definidas por Amazon Elastic Kubernetes Service en la Referencia de autorización de servicios.

    • Los nodos se unen al clúster asumiendo un rol de IAM. El acceso al clúster mediante las entidades principales de IAM está habilitado por el Autenticador de IAM de AWS para Kubernetes, que se ejecuta en el plano de control de Amazon EKS.

  • Un usuario en su propio proveedor de OpenID Connect (OIDC): este tipo requiere la autenticación de su proveedor de OIDC. Para obtener más información acerca de cómo configurar su propio proveedor de OIDC con su clúster de Amazon EKS, consulte Concesión de acceso a los usuarios a Kubernetes con un proveedor de OIDC externo. Cuando los usuarios utilizan este tipo de identidad, puede hacer lo siguiente:

    • Puede asignarles permisos de Kubernetes para que puedan trabajar con los objetos de Kubernetes en su clúster.

    • No puede asignarles permisos de IAM para que puedan trabajar con su clúster de Amazon EKS y sus recursos mediante la API de Amazon EKS, la AWS CLI, la AWS CloudFormation, la AWS Management Console o el eksctl.

Puede utilizar ambos tipos de identidades con su clúster. El método de autenticación de IAM no se puede deshabilitar. El método de autenticación de OIDC es opcional.

Asociación de las identidades de IAM con los permisos de Kubernetes

El Autenticador de IAM de AWS para Kubernetes se instala en el plano de control del clúster. Permite a las entidades principales (IAM) (roles y usuarios) de AWS Identity and Access Management acceder a los recursos de Kubernetes en su clúster. Puede permitir que las entidades principales de IAM accedan a los objetos de Kubernetes en su clúster mediante uno de los siguientes métodos:

  • Creación de entradas de acceso: si su clúster tiene la versión de la plataforma igual o posterior a la que se indica en la sección de Requisitos previos de la versión de Kubernetes de su clúster, le recomendamos que utilice esta opción.

    Utilice las entradas de acceso para administrar los permisos de Kubernetes de las entidades principales de IAM ajenos al clúster. Puede agregar y administrar el acceso al clúster mediante la API de EKS, la AWS Command Line Interface, los SDK de AWS, la AWS CloudFormation y la AWS Management Console. Esto significa que puede administrar los usuarios con las mismas herramientas con las que creó el clúster.

    Para empezar, siga los pasos de Cambio del modo de autenticación para utilizar las entradas de acceso y luego Migración de las entradas existentes de aws-auth ConfigMap a entradas de acceso.

  • Añadir entradas al ConfigMap de aws-auth: si la versión de la plataforma de su clúster es anterior a la que aparece en la sección de Requisitos previos, debe utilizar esta opción. Si la versión de la plataforma de su clúster es igual o posterior a la versión de la plataforma que aparece en la sección de Requisitos previos de la versión de Kubernetes de su clúster y ha agregado entradas al ConfigMap, le recomendamos que migre esas entradas para acceder a las ellas. Sin embargo, no puede migrar las entradas que Amazon EKS haya agregado al ConfigMap, como las entradas para los roles de IAM utilizadas con los grupos de nodos administrados o los perfiles de Fargate. Para obtener más información, consulte Concesión a los usuarios y roles de IAM de acceso a las APIs de Kubernetes.

    • Si tiene que usar la opción de ConfigMap de aws-auth, puede añadir entradas al ConfigMap mediante el comando eksctl create iamidentitymapping. Para obtener más información, consulte Administrar usuarios y roles de IAM en la documentación de eksctl.

Establecimiento de nodos de autenticación del clúster

Cada clúster tiene un modo de autenticación. El modo de autenticación determina los métodos que puede utilizar para permitir que las entidades principales de IAM accedan a los objetos de Kubernetes en su clúster. Existen tres modos de autenticación.

importante

Una vez que se habilita el método de entrada de acceso, no se puede deshabilitar.

Si el método ConfigMap no está habilitado durante la creación del clúster, no se podrá habilitar más adelante. Todos los clústeres creados antes de la introducción de las entradas de acceso tienen el método ConfigMap activado.

El ConfigMap de aws-auth dentro del clúster

Este es el modo de autenticación original de los clústeres de Amazon EKS. La entidad principal de IAM que creó el clúster es el usuario inicial que puede acceder al clúster con kubectl. El usuario inicial debe añadir otros usuarios a la lista en el ConfigMap de aws-auth y asignar los permisos que afecten a los demás usuarios del clúster. Estos otros usuarios no pueden administrar ni eliminar al usuario inicial, ya que no hay ninguna entrada en el ConfigMap que administrar.

Tanto el ConfigMap como las entradas de acceso

Con este modo de autenticación, puede utilizar ambos métodos para añadir las entidades principales de IAM al clúster. Tenga en cuenta que cada método almacena entradas independientes; por ejemplo, si agrega una entrada de acceso desde la AWS CLI, el ConfigMap de aws-auth no se actualiza.

Solo entradas de acceso

Con este modo de autenticación, puede utilizar la API de EKS, la AWS Command Line Interface, los SDK de AWS, la AWS CloudFormation y la AWS Management Console para administrar el acceso al clúster de las entidades principales de IAM.

Cada entrada de acceso tiene un tipo y puede utilizar la combinación de un enlace de acceso para limitar a la entidad principal a un espacio de nombres específico y una política de acceso para establecer políticas de permisos preconfiguradas y reutilizables. Como alternativa, puede usar el tipo STANDARD y los grupos de Kubernetes RBAC para asignar permisos personalizados.

Modo de autenticación Métodos
Solo ConfigMap (CONFIG_MAP) aws-auth ConfigMap
API de EKS y ConfigMap (API_AND_CONFIG_MAP) acceder a las entradas de la API de EKS, la AWS Command Line Interface, los SDK de AWS, la AWS CloudFormation y la AWS Management Console, así como el ConfigMap de aws-auth.
Solo la API de EKS (API) acceder a las entradas de la API de EKS, la AWS Command Line Interface, los SDK de AWS, la AWS CloudFormation y la AWS Management Console