Recibo mensajes de error o tengo problemas cuando uso las entradas de acceso en mi clúster de Amazon Elastic Kubernetes Service (Amazon EKS).
Solución
Requisito previo: Tu clúster de Amazon EKS se ejecuta en la ](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html)versión 1.23 o posterior de Kubernetes[.
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Errores en el modo de autenticación
Recibes los siguientes mensajes de error al modificar el modo de autenticación de un clúster:
- «An error occurred (InvalidParameterException) when calling the UpdateClusterConfig operation: Unsupported authentication mode update from API_AND_CONFIG_MAP to CONFIG_MAP».
- «An error occurred (InvalidParameterException) when calling the UpdateClusterConfig operation: Unsupported authentication mode update from API to CONFIG_MAP».
- «An error occurred (InvalidParameterException) when calling the UpdateClusterConfig operation: Unsupported authentication mode update from API to API_AND_CONFIG_MAP».
Cuando configuras el modo de autenticación, no puedes revertir la operación. Por ejemplo, después de cambiar el modo a API, no puedes volver a CONFIG_MAP ni API_AND_CONFIG_MAP. Para obtener más información, consulta A deep dive into simplified Amazon EKS access management controls (Profundizar en los controles simplificados de administración de acceso de Amazon EKS).
Para evitar errores en el modo de autenticación, utiliza entradas de acceso en lugar del ConfigMap de aws-auth.
Error AccessDeniedException
Recibes un mensaje de error cuando la entidad principal de AWS Identity and Access Management (IAM) no tiene los permisos suficientes para usar las entradas de acceso. El mensaje de error es similar al siguiente:
«An error occurred (AccessDeniedException) when calling the CreateAccessEntry operation: User: [principalARN] is not authorized to perform: eks:CreateAccessEntry on resource: arn:aws:eks:us-east-1:000000000:cluster/your-eks-cluster».
Para resolver este problema, agrega los siguientes permisos a la política de IAM de la entidad principal de IAM que realiza la solicitud:
Problemas de migración o actualización de CONFIG_MAP a API_AND_CONFIG_MAP
La siguiente notificación aparece al migrar o actualizar las entradas de acceso de CONFIG_MAP a API_AND_CONFIG_MAP:
«The mapping of the node IAM role defined in the existing ConfigMap/AWS-Auth was automatically added as an access entry. However, in aws-auth, this role is defined as two system:nodes/system:bootstrappers group, but at the access entry side it only has system:nodes/».
No hay ningún error que debas solucionar porque el proceso de migración asigna los roles de IAM de tus nodos al grupo system:nodes de forma predeterminada.
Tras migrar las entradas de acceso, ya no necesitarás las configuraciones de entradas de acceso de IAM o ConfigMap de aws-auth que concede el grupo system:bootstrappers. Los nodos pueden realizar todas las operaciones con los permisos que concede el grupo system:nodes. El grupo system:nodes confirma que la migración de CONFIG_MAP a API_AND_CONFIG_MAP eliminó los grupos innecesarios de la entrada de acceso.
Errores de tipo
Se produce el siguiente error cuando no se establece un rol de IAM como entidad principal de IAM de destino para la entrada de acceso:
«AccessEntry principalArn must be IAM role when using types [EC2_LINUX, EC2_WINDOWS, FARGATE_LINUX]».
Para resolver este problema, utiliza uno de los siguientes tipos de entrada de acceso:
- EC2_LINUX
- EC2_WINDOWS
- FARGATE_LINUX
Para obtener más información sobre los tipos de entradas de acceso, consulta Creación de entradas de acceso.
Errores de nombre de usuario
Si proporcionas un nombre de usuario incorrecto al crear una entrada de acceso, recibirás el siguiente mensaje de error:
«The username must not begin with [eks:, aws:, system:, amazon:, iam:]».
Si especificas tu propio nombre de usuario, no podrás iniciar el nombre de usuario con los siguientes prefijos:
- eks:
- aws:
- system:
- amazon:
- iam:
Para resolver este problema, asegúrate de que tu nombre de usuario cumpla con los requisitos de nombre de usuario para las entradas de acceso. Para obtener más información sobre los requisitos de nombre de usuario, consulta Creación de entradas de acceso.
Nota: Para evitar posibles errores, se recomienda dejar que Amazon EKS genere automáticamente un nombre de usuario.
Errores de permisos
Se producen errores de permisos porque Amazon EKS no confirma que los objetos de control de acceso basado en roles (RBAC) de Kubernetes de tu clúster incluyan los nombres de grupo especificados. Amazon EKS no comprueba que los nombres de grupo que especifiques existan en los enlaces de tu clúster.
Para solucionar este problema, toma las siguientes medidas:
- Comprueba que tus entradas de acceso de IAM o el ConfigMap de aws-auth creen correctamente los grupos que especificaste como asuntos en Kubernetes RoleBinding o ClusterRoleBinding.
- Comprueba si la ortografía y el formato son correctos para las referencias a un grupo de Kubernetes en tu entrada de acceso.
Errores de roles vinculados a servicios
Si especificas un rol vinculado a un servicio al crear una entrada de acceso, recibirás el siguiente mensaje de error:
«The caller is not allowed to modify access entries with a principalArn value of a Service Linked Role».
Las entradas de acceso no admiten roles vinculados a servicios. Por lo tanto, no puedes crear entradas de acceso cuando el nombre de recurso de Amazon (ARN) de la entrada principal es un rol vinculado a un servicio. Puedes identificar los roles vinculados a servicios por su ARN. Por ejemplo, el ARN arn:aws:iam::*:role/aws-service-role/* corresponde a un rol vinculado a un servicio.
Para conceder acceso a roles vinculados a servicios a tu clúster, utiliza el modo de autenticación CONFIG_MAP o API_AND_CONFIG_MAP para especificar el rol vinculado a servicios en el ConfigMap de aws-auth.
Información relacionada
Concesión de acceso a Kubernetes con un ConfigMap para los usuarios de IAM