Salta al contenuto

Come posso risolvere i problemi relativi alle voci di accesso nel mio cluster Amazon EKS?

5 minuti di lettura
0

Ricevo messaggi di errore o riscontro problemi quando utilizzo le voci di accesso nel mio cluster Amazon Elastic Kubernetes Service (Amazon EKS).

Risoluzione

Prerequisito: il cluster Amazon EKS viene eseguito su una versione di Kubernetes 1.23 o successiva.

Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Errori relativi alla modalità di autenticazione

Quando modifichi la modalità di autenticazione di un cluster, ricevi i seguenti messaggi di errore:

  • "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."

Quando imposti la modalità di autenticazione, non puoi annullare l'operazione. Ad esempio, dopo aver cambiato la modalità in API, non puoi tornare a CONFIG_MAP o API_AND_CONFIG_MAP. Per ulteriori informazioni, consulta A deep dive into simplified Amazon EKS access management controls (Approfondimento dei controlli semplificati di gestione degli accessi di Amazon EKS).

Per evitare errori relativi alla modalità di autenticazione, utilizza le voci di accesso invece della ConfigMap aws-auth.

Errore AccessDeniedException

Ricevi un messaggio di errore quando il principale AWS Identity and Access Management (AWS IAM) non ha autorizzazioni sufficienti per utilizzare le voci di accesso. Il messaggio di errore è simile al seguente:

"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."

Per risolvere il problema, aggiungi le seguenti autorizzazioni alla policy IAM del principale IAM che effettua la richiesta:

Problemi di migrazione o aggiornamento da CONFIG_MAP a API_AND_CONFIG_MAP

La seguente notifica viene visualizzata quando esegui la migrazione o l'aggiornamento delle voci di accesso da 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/."

Non sono presenti errori da risolvere perché per impostazione predefinita il processo di migrazione associa i ruoli IAM del nodo al gruppo system:nodes.

Dopo aver eseguito la migrazione delle voci di accesso, le configurazioni delle voci di accesso IAM o della ConfigMap aws-auth concesse dal gruppo system:bootstrappers non servono più. I nodi possono eseguire tutte le operazioni con le autorizzazioni concesse dal gruppo system:nodes. Il gruppo system:nodes verifica che la migrazione da CONFIG_MAP a API_AND_CONFIG_MAP abbia rimosso i gruppi non necessari dalla voce di accesso.

Errori relativi al tipo

L'errore seguente si verifica quando non imposti un ruolo IAM come principale IAM di destinazione per la voce di accesso:

"AccessEntry principalArn must be IAM role when using types [EC2_LINUX, EC2_WINDOWS, FARGATE_LINUX]."

Per risolvere il problema, utilizza uno dei seguenti tipi di voci di accesso:

  • EC2_LINUX
  • EC2_WINDOWS
  • FARGATE_LINUX

Per ulteriori informazioni sui tipi di voci di accesso, consulta Creare voci di accesso.

Errori relativi al nome utente

Se fornisci un nome utente errato quando crei una voce di accesso, ricevi il seguente messaggio di errore:

"The username must not begin with [eks:, aws:, system:, amazon:, iam:]."

Se specifichi il tuo nome utente, non puoi iniziare il nome utente con i seguenti prefissi:

  • eks:
  • aws:
  • system:
  • amazon:
  • iam:

Per risolvere il problema, assicurati che il nome utente sia conforme ai requisiti del nome utente per le voci di accesso. Per ulteriori informazioni sui requisiti del nome utente, consulta Creare voci di accesso.

Nota: per evitare potenziali errori, è consigliabile lasciare che Amazon EKS generi automaticamente un nome utente per te.

Errori relativi alle autorizzazioni

Si verificano errori di autorizzazione perché Amazon EKS non verifica che gli oggetti RBAC (role-based access control) di Kubernetes nel cluster includano i nomi di gruppo specificati. Amazon EKS non verifica che i nomi dei gruppi specificati siano presenti nelle associazioni del cluster.

Per risolvere il problema, intraprendi le seguenti azioni:

  • Verifica che le voci di accesso IAM o della ConfigMap aws-auth creino correttamente i gruppi che hai specificato come soggetti nell'associazione RoleBinding o ClusterRoleBinding di Kubernetes.
  • Controlla se l'ortografia e la formattazione sono corrette per i riferimenti a un gruppo Kubernetes nella voce di accesso.

Errori relativi al ruolo collegato al servizio

Se specifichi un ruolo collegato al servizio quando crei una voce di accesso, ricevi il seguente messaggio di errore:

"The caller is not allowed to modify access entries with a principalArn value of a Service Linked Role."

Le voci di accesso non supportano ruoli collegati al servizio. Pertanto, non puoi creare voci di accesso quando il nome della risorsa Amazon (ARN) del principale è un ruolo collegato al servizio. Puoi identificare i ruoli collegati al servizio in base al relativo ARN. Ad esempio, l'ARN arn:aws:iam::*:role/aws-service-role/* corrisponde a un ruolo collegato al servizio.

Per concedere ai ruoli collegati al servizio l'accesso al cluster, specifica il ruolo collegato al servizio nella ConfigMap aws-auth utilizzando la modalità di autenticazione CONFIG_MAP o API_AND_CONFIG_MAP.

Informazioni correlate

Concedi agli utenti IAM l'accesso a Kubernetes con una ConfigMap

AWS UFFICIALEAggiornata 4 mesi fa