Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
¿Cómo puedo usar la API de entrada de acceso de Amazon EKS para recuperar el acceso a un clúster de EKS?
Debido a un cambio de usuario de inicio de sesión único o a una eliminación o corrupción de ConfigMap de aws-auth, no puedo acceder a mi instancia de Amazon Elastic Kubernetes Service (Amazon EKS).
Descripción breve
Si pierdes el acceso al clúster de EKS, verás un error similar al siguiente al ejecutar los comandos de kubectl:
“error: You must be logged in to the server (Unauthorized)”.
Para recuperar el acceso al clúster, utiliza las entradas de acceso para administrar los permisos de las entidades principales de AWS Identity and Access Management (IAM). Esto se hace desde fuera del clúster de Amazon EKS.
Nota: Si existe el creador del clúster de EKS, asume la entidad principal de IAM del creador del clúster de EKS para iniciar sesión y acceder al clúster. De forma predeterminada, el creador del clúster de EKS es el administrador del clúster. El siguiente proceso crea un rol de administrador que coexiste con el rol de IAM original del creador del clúster.
Resolución
Requisitos previos:
- Instala kubectl.
- Instala y configura la versión más reciente de la Interfaz de la línea de comandos de AWS (AWS CLI).
- Tienes un rol de IAM con los siguientes permisos: CreateAccessEntry, ListAccessEntries, DescribeAccessEntry, DeleteAccessEntry y UpdateAccessEntry.
Nota: Si se muestran errores al ejecutar comandos de la AWS CLI, consulta Errores de solución de problemas de la AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Uso de la API de entrada de acceso de AWS EKS para administrar el acceso al clúster de Amazon EKS
Nota: En los siguientes comandos, sustituye estos valores:
Sustituye <ACCOUNT_ID> por el identificador de cuenta de la cuenta de origen en la que se encuentra el clúster de EKS.
Sustituye <REGION> por el nombre de tu región de AWS.
Sustituye <CLUSTER_NAME> por el nombre de tu clúster de EKS.
Sustituye <IAM_PRINCIPAL_ARN> por el ARN del rol para el que deseas tener derechos de administrador.
Para usar una API de entrada de acceso de AWS EKS para administrar el acceso al clúster de Amazon EKS, sigue estos pasos:
-
En la máquina host que tiene kubectl instalado, asume el rol de IAM con los siguientes permisos:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:ListAccessEntries", "eks:CreateAccessEntry", "eks:DescribeCluster", "eks:UpdateClusterConfig" ], "Resource": [ "arn:aws:eks:<REGION>:<ACCOUNT_ID>:cluster/<CLUSTER_NAME>" ] }, { "Effect": "Allow", "Action": [ "eks:DeleteAccessEntry", "eks:ListAssociatedAccessPolicies", "eks:DisassociateAccessPolicy", "eks:AssociateAccessPolicy", "eks:UpdateAccessEntry", "eks:DescribeAccessEntry" ], "Resource": [ "arn:aws:eks:<REGION>:<ACCOUNT_ID>:access-entry/<CLUSTER_NAME>/*" ] } ] } -
Para confirmar tu identidad, ejecuta el siguiente comando:
aws sts get-caller-identityEn el resultado del comando, anota el ARN. Tiene un aspecto similar al siguiente ejemplo: arn:aws:iam::<ACCOUNT_ID>:user/new-cluster-admin.
-
Ejecuta el siguiente comando para validar el modo de autenticación actual del clúster de Amazon EKS:
aws eks describe-cluster --name <CLUSTER_NAME> --query 'cluster.accessConfig.authenticationMode' --region <REGION>Si el modo de autenticación actual del clúster de Amazon EKS es API_AND_CONFIG_MAP, el clúster ya tiene el modo de acceso necesario. Salta al paso 5.
-
Ejecuta el siguiente comando para actualizar el modo de autenticación del clúster de Amazon EKS:
aws eks update-cluster-config --name <CLUSTER_NAME> --access-config authenticationMode=API_AND_CONFIG_MAP --region <REGION>Nota: Puedes cambiar del modo de autenticación CONFIG_MAP a un modo de API, pero no puedes volver de un modo de API al modo CONFIG_MAP.
-
Ejecuta el siguiente comando para crear una entrada de acceso para el clúster y el rol de IAM:
aws eks create-access-entry --cluster-name <CLUSTER_NAME> --principal-arn <IAM_PRINCIPAL_ARN> --region <REGION>El resultado es similar al siguiente:
{ "accessEntry": { "clusterName": "<CLUSTER_NAME>", "principalArn": "arn:aws:iam::<ACCOUNT_ID>:user/new-cluster-admin", "kubernetesGroups": [], "accessEntryArn": "arn:aws:eks:<REGION>:<ACCOUNT_ID>:access-entry/<CLUSTER_NAME>/user/<ACCOUNT_ID>/new-cluster-admin/26c6d1f8-4211-3fe0-f9d2-734b912dcd9a", "createdAt": "2024-02-13T19:27:45.370000+00:00", "modifiedAt": "2024-02-13T19:27:45.370000+00:00", "tags": {}, "username": "arn:aws:iam::<ACCOUNT_ID>:user/new-cluster-admin", "type": "STANDARD" } } -
Ejecuta el siguiente comando para asociar AmazonEKSClusterAdminPolicy al clúster de Amazon EKS y al rol de IAM:
aws eks associate-access-policy --cluster-name <CLUSTER_NAME> \ --principal-arn <IAM_PRINCIPAL_ARN> \ --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy \ --access-scope type=cluster \ --region <REGION>El resultado es similar al siguiente:
{ "accessEntry": { "clusterName": "<CLUSTER_NAME>", "principalArn": "arn:aws:iam::<ACCOUNT_ID>:user/new-cluster-admin", "kubernetesGroups": [], "accessEntryArn": "arn:aws:eks:<REGION>:<ACCOUNT_ID>:access-entry/<cluster_name>/user/<ACCOUNT_ID>/new-cluster-admin/7ec6efb3-31c8-edcf-3039-ca2b38e0d708", "createdAt": "2024-02-25T08:34:06.002000+00:00", "modifiedAt": "2024-02-25T08:34:06.002000+00:00", "tags": {}, "username": "arn:aws:iam::<ACCOUNT_ID>:user/new-cluster-admin", "type": "STANDARD" } } -
Para actualizar o generar el archivo kubeconfig, ejecuta el siguiente comando para conectarte al clúster de EKS:
aws eks update-kubeconfig --name <CLUSTER_NAME> --region <REGION> -
Ejecuta el siguiente comando para comprobar que el usuario puede acceder al clúster de EKS como administrador:
kubectl auth can-i '*' '*' --all-namespaces
Nota: Si puedes acceder al clúster de EKS como administrador, el resultado mostrará yes.
Información relacionada
A deep dive into simplified Amazon EKS access management controls (Un análisis detallado de los controles simplificados de administración de acceso a Amazon EKS)
EKS access entries (Entradas de acceso de EKS) en el sitio web de eksctl
- Temas
- Containers
- Etiquetas
- Amazon Elastic Kubernetes Service
- Idioma
- Español

Contenido relevante
- preguntada hace 3 meses
- preguntada hace 10 meses
- preguntada hace 10 meses
- preguntada hace 2 meses