Come posso risolvere i problemi di accesso ai miei cluster Amazon EKS?
Riscontro problemi quando cerco di concedere l'accesso ai miei cluster Amazon Elastic Kubernetes Service (Amazon EKS).
Risoluzione
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.
Utilizza le voci di accesso di Amazon EKS per concedere l'accesso all'API Kubernetes agli utenti e ai ruoli AWS Identity and Access Management (IAM).
Configura le autorizzazioni del principale IAM
Il principale IAM deve disporre delle seguenti autorizzazioni per il cluster:
- CreateAccessEntry
- ListAccessEntries
- DescribeAccessEntry
- DeleteAccessEntry
- UpdateAccessEntry
- ListAccessPolicies
- AssociateAccessPolicy
- DisassociateAccessPolicy
Per ulteriori informazioni sulle autorizzazioni Amazon EKS, consulta Operazioni definite da Amazon Elastic Kubernetes Service.
Configura le autorizzazioni delle policy di accesso
La policy di accesso imposta il livello di accesso che consente a un utente di accedere all'API Kubernetes. Utilizza le seguenti policy per creare voci di accesso:
- AmazonEKSAdminPolicy
- AmazonEKSClusterAdminPolicy
- AmazonEKSAdminViewPolicy
- AmazonEKSEditPolicy
- AmazonEKSViewPolicy
Quando crei voci di accesso con le policy precedenti, concedi l'accesso a un namespace per le autorizzazioni a livello di cluster Kubernetes.
Nota: non puoi modificare il contenuto di una policy di accesso e non puoi creare policy di accesso personalizzate.
Concedi agli utenti IAM l'accesso al cluster Amazon EKS
Modifica la modalità di autenticazione
Importante: dopo aver attivato il metodo di una voce di accesso, non puoi disattivarlo nuovamente.
Per utilizzare le voci di accesso, aggiorna la modalità di autenticazione per il cluster Amazon EKS impostando API o API_AND_CONFIG_MAP. Esegui questo comando AWS CLI update-cluster-config:
aws eks update-cluster-config \ --name my-cluster \ --access-config authenticationMode=API_AND_CONFIG_MAP
Nota: sostituisci my-cluster con il nome del tuo cluster. Per disattivare permanentemente il metodo ConfigMap, sostituisci API_AND_CONFIG_MAP con API.
Crea una voce di accesso per l'entità IAM e collega la policy di accesso
Concedi l'accesso di amministratore del cluster al cluster Amazon EKS. Innanzitutto, esegui questo comando create-access-entry per creare una voce di accesso per l'utente o il ruolo IAM:
aws eks create-access-entry --cluster-name my-cluster \ --principal-arn arn:aws:iam::111122223333:user/example-user
Nota: sostituisci my-cluster con il nome del tuo cluster e arn:aws:iam::111122223333:user/example-user con l'ARN del tuo utente o ruolo IAM.
Quindi esegui questo comando associate-access-policy per associare AmazonEKSClusterAdminPolicy all'utente o al ruolo IAM:
aws eks associate-access-policy --cluster-name my-cluster\ --principal-arn arn:aws:iam::111122223333:user/example-user \ --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy \ --access-scope type=cluster
Nota: sostituisci my-cluster con il nome del tuo cluster e arn:aws:iam::111122223333:user/example-user con l'ARN del tuo utente o ruolo IAM.
Per concedere all'utente o al ruolo IAM l'accesso di amministratore a un namespace specifico, esegui questo comando associate-access-policy:
aws eks associate-access-policy --cluster-name my-cluster\ --principal-arn arn:aws:iam::111122223333:role/example-role \ --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSAdminPolicy \ --access-scope type=namespace,namespaces=test*
Nota: sostituisci my-cluster con il nome del tuo cluster e arn:aws:iam::111122223333:role/example-role con l'ARN del tuo utente o ruolo IAM. Inoltre, sostituisci test con il nome del tuo namespace.
Per utilizzare le voci di accesso con Kubernetes Role-Based Access Control (RBAC), esegui questo comando create-access-entry:
aws eks create-access-entry --cluster-name my-cluster \ --principal-arn arn:aws:iam::111122223333:role/example-role-2 \ --kubernetes-groups viewers
Nota: sostituisci my-cluster con il nome del tuo cluster e arn:aws:iam::111122223333:user/example-role-2 con l'ARN del tuo utente o ruolo IAM. Sostituisci viewers con il nome del gruppo specificato nell'oggetto Kubernetes RoleBinding o ClusterRoleBinding sul cluster.
Verifica le credenziali dell'entità IAM
Per verificare le credenziali dell'utente o del ruolo IAM utilizzate in AWS CLI, esegui questo comando get-caller-identity:
aws sts get-caller-identity
L'output del comando deve restituire l'utente o il ruolo IAM per cui hai creato una voce di accesso. Se ricevi un utente o un ruolo IAM diverso, assicurati di aver configurato correttamente le credenziali del ruolo o dell'utente.
Crea Kubeconfig per l'entità IAM
Per creare Kubeconfig per l'utente o il ruolo IAM, esegui questo comando update-kubeconfig:
aws eks update-kubeconfig --name my-cluster --region aws-region
Nota: sostituisci my-cluster con il nome del tuo cluster e aws-region con la tua Regione AWS.
Controlla l'accesso a Kubernetes
Verifica che l'entità IAM sia autenticata e che puoi accedere alle risorse del cluster Amazon EKS.
Per verificare se puoi creare pod in qualsiasi namespace, esegui questo comando:
kubectl auth can-i create pods --all-namespaces
Per verificare se puoi elencare le distribuzioni in un namespace specifico, esegui questo comando:
kubectl auth can-i list deployments.apps -n test
Nota: sostituisci test con il nome del tuo namespace.
- Argomenti
- Containers
- Lingua
- Italiano

Contenuto pertinente
AWS UFFICIALEAggiornata 3 anni fa