Entradas de acceso a EKS - Guía del usuario de Eksctl

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Entradas de acceso a EKS

Puede utilizar eksctl para gestionar las entradas de acceso a EKS. Utilice las entradas de acceso para conceder permisos de Kubernetes a las identidades de IAM de AWS. Por ejemplo, puede conceder a un rol de desarrollador un permiso para leer los recursos de Kubernetes en un clúster.

En este tema se explica cómo usar eksctl para administrar las entradas de acceso. Para obtener información general sobre las entradas de acceso, consulte Otorgar a los usuarios de IAM acceso a Kubernetes con entradas de acceso EKS.

Puede adjuntar las políticas de acceso de Kubernetes definidas por AWS o asociar una identidad de IAM a un grupo de Kubernetes.

Para obtener más información sobre las políticas predefinidas disponibles, consulte Asociar políticas de acceso a entradas de acceso.

Si necesita definir las políticas de Kubernetes del cliente, asocie la identidad de IAM a un grupo de Kubernetes y conceda permisos a ese grupo.

Modo de autenticación de clústeres

Solo puede usar entradas de acceso si el modo de autenticación del clúster lo permite.

Para obtener más información, consulte Establecer el modo de autenticación de clúster

Configure el modo de autenticación con un archivo YAML

eksctlha añadido un nuevo accessConfig.authenticationMode campo en ClusterConfig el que se puede establecer uno de los tres valores siguientes:

  • CONFIG_MAP- predeterminado en la API EKS, solo se aws-auth ConfigMap usará

  • API- solo se utilizará la API de entradas de acceso

  • API_AND_CONFIG_MAP- entrada predeterminadaeksctl: se pueden utilizar aws-auth ConfigMap tanto la API como la API de entradas de acceso

Configura el modo de autenticación en ClusterConfig YAML:

accessConfig: authenticationMode: <>

Actualice el modo de autenticación con un comando

Si desea utilizar entradas de acceso en un clúster ya existente y no creado por eksctl, en el que se utilice la CONFIG_MAP opción, el usuario tendrá que configurarla primero en. authenticationMode API_AND_CONFIG_MAP Para ello, eksctl ha introducido un nuevo comando para actualizar el modo de autenticación del clúster, que funciona tanto con los indicadores CLI, p. ej.

eksctl utils update-authentication-mode --cluster my-cluster --authentication-mode API_AND_CONFIG_MAP

Acceda a los recursos de entrada

Las entradas de acceso tienen un tipo, como STANDARD oEC2_LINUX. El tipo depende de cómo se utilice la entrada de acceso.

  • El standard tipo es para conceder permisos de Kubernetes a los usuarios y roles de IAM.

    • Por ejemplo, puede ver los recursos de Kubernetes en la consola de AWS adjuntando una política de acceso al rol o al usuario que utilice para acceder a la consola.

  • Los EC2_WINDOWS tipos EC2_LINUX y sirven para conceder permisos de Kubernetes a las instancias. EC2 Las instancias utilizan estos permisos para unirse al clúster.

Para obtener más información sobre los tipos de entradas de acceso, consulte Crear entradas de acceso

Entidades de IAM

Puede utilizar las entradas de acceso para conceder permisos de Kubernetes a las identidades de IAM, como los usuarios y las funciones de IAM.

Utilice el accessConfig.accessEntries campo para asociar el ARN de un recurso de IAM a una API EKS de Access Entries. Por ejemplo:

accessConfig: authenticationMode: API_AND_CONFIG_MAP accessEntries: - principalARN: arn:aws:iam::111122223333:user/my-user-name type: STANDARD kubernetesGroups: # optional Kubernetes groups - group1 # groups can used to give permissions via RBAC - group2 - principalARN: arn:aws:iam::111122223333:role/role-name-1 accessPolicies: # optional access polices - policyARN: arn:aws:eks::aws:cluster-access-policy/AmazonEKSViewPolicy accessScope: type: namespace namespaces: - default - my-namespace - dev-* - principalARN: arn:aws:iam::111122223333:role/admin-role accessPolicies: # optional access polices - policyARN: arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy accessScope: type: cluster - principalARN: arn:aws:iam::111122223333:role/role-name-2 type: EC2_LINUX

Además de asociar las políticas de EKS, también se pueden especificar los grupos de Kubernetes a los que pertenece una entidad de IAM y, por lo tanto, conceder los permisos mediante RBAC.

Fargate y grupos de nodos gestionados

La integración con las entradas de acceso a estos recursos se logrará entre bastidores, mediante la API EKS. Los grupos de nodos gestionados y los pods de Fargate recién creados crearán entradas de acceso a la API, en lugar de utilizar recursos RBAC precargados. Los grupos de nodos y los pods de Fargate existentes no cambiarán y seguirán dependiendo de las entradas del mapa de configuración de aws-auth.

Grupos de nodos autogestionados

Cada entrada de acceso tiene un tipo. Para autorizar grupos de nodos autogestionados, eksctl creará una entrada de acceso única para cada grupo de nodos con el ARN principal establecido en el ARN del rol de nodo y el tipo establecido en AMIFamily o en función del grupo de nodos. EC2_LINUX EC2_WINDOWS

Al crear sus propias entradas de acceso, también puede especificar EC2_LINUX (para una función de IAM utilizada con nodos autogestionados de Linux o Bottlerocket), EC2_WINDOWS (para una función de IAM utilizada con nodos autogestionados de Windows), FARGATE_LINUX (para una función de IAM utilizada con AWS Fargate (Fargate)) o como un tipo. STANDARD Si no especifica un tipo, el tipo predeterminado se establece en. STANDARD

nota

Al eliminar un grupo de nodos creado con uno ya existenteinstanceRoleARN, es responsabilidad del usuario eliminar la entrada de acceso correspondiente cuando no haya más grupos de nodos asociados a ella. Esto se debe a que eksctl no intenta averiguar si grupos de nodos autogestionados no creados por eksctl siguen utilizando una entrada de acceso, ya que se trata de un proceso complicado.

Crea una entrada de acceso

Esto se puede hacer de dos maneras diferentes: durante la creación del clúster, especificando las entradas de acceso deseadas como parte del archivo de configuración y ejecutándolo:

eksctl create cluster -f config.yaml

O después de la creación del clúster, ejecuta:

eksctl create accessentry -f config.yaml

Para ver un ejemplo de archivo de configuración para crear entradas de acceso, consulta 40-access-entries.yaml en el repositorio eksctl. GitHub

Obtenga la entrada de acceso

El usuario puede recuperar todas las entradas de acceso asociadas a un clúster determinado ejecutando una de las siguientes acciones:

eksctl get accessentry -f config.yaml

OR

eksctl get accessentry --cluster my-cluster

Como alternativa, para recuperar solo la entrada de acceso correspondiente a una determinada entidad de IAM, se debe utilizar la --principal-arn bandera, p. ej.

eksctl get accessentry --cluster my-cluster --principal-arn arn:aws:iam::111122223333:user/admin

Eliminar la entrada de acceso

Para eliminar una sola entrada de acceso a la vez, utilice:

eksctl delete accessentry --cluster my-cluster --principal-arn arn:aws:iam::111122223333:user/admin

Para eliminar varias entradas de acceso, utilice la --config-file marca y especifique todas las entradas principalARN’s correspondientes a las entradas de acceso en el accessEntry campo de nivel superior, p. ej.

... accessEntry: - principalARN: arn:aws:iam::111122223333:user/my-user-name - principalARN: arn:aws:iam::111122223333:role/role-name-1 - principalARN: arn:aws:iam::111122223333:role/admin-role
eksctl delete accessentry -f config.yaml

Migre desde aws-auth ConfigMap

El usuario puede migrar sus identidades de IAM existentes de aws-auth configmap a las entradas de acceso ejecutando lo siguiente:

eksctl utils migrate-to-access-entry --cluster my-cluster --target-authentication-mode <API or API_AND_CONFIG_MAP>

Si el --target-authentication-mode indicador está establecido enAPI, el modo de autenticación cambia a API modo (se omite si ya está en API modo), las asignaciones de identidad de IAM se migrarán a las entradas de acceso y aws-auth configmap se eliminará del clúster.

Cuando el --target-authentication-mode indicador está establecido enAPI_AND_CONFIG_MAP, el modo de autenticación cambia al modo (se omite si ya está en API_AND_CONFIG_MAP API_AND_CONFIG_MAP modo), las asignaciones de identidad de IAM se migrarán a las entradas de acceso, pero se conservará el mapa de configuración. aws-auth

nota

Si el --target-authentication-mode indicador está establecido enAPI, este comando no actualizará el modo de autenticación al API modo si aws-auth configmap tiene una de las siguientes restricciones.

  • Hay un mapeo de identidad a nivel de cuenta.

  • Uno o más Roles/Users están asignados a los grupos de kubernetes que comienzan con un prefijo system: (excepto los grupos específicos de EKS, es decir, system:masters etc.). system:bootstrappers system:nodes

  • Uno o más mapas de identidad de IAM corresponden a un [rol vinculado al servicio] (enlace: -.html). IAM/latest/UserGuide/using service-linked-roles

Inhabilite los permisos de administrador del creador del clúster

eksctlha agregado un nuevo campo accessConfig.bootstrapClusterCreatorAdminPermissions: boolean que, cuando se establece en falso, deshabilita la concesión de permisos de administrador del clúster a la identidad de IAM que crea el clúster, es decir

añada la opción al archivo de configuración:

accessConfig:
  bootstrapClusterCreatorAdminPermissions: false

y ejecuta:

eksctl create cluster -f config.yaml