Come posso configurare un utente SSO affinché possa accedere al mio cluster Amazon EKS?
Desidero configurare un utente del Centro identità AWS IAM affinché possa accedere al mio cluster Amazon Elastic Kubernetes Service (Amazon EKS).
Risoluzione
Prerequisiti
- Il Centro identità IAM deve essere attivato e configurato
- L'utente SSO deve essere associato all'account AWS che contiene il cluster EKS
- Il cluster EKS deve supportare Voci di accesso (versione della piattaforma eks.2 o successiva)
Per configurare un utente SSO affinché possa accedere a un cluster Amazon EKS, completa i seguenti passaggi:
Configura AWS CLI per l'autenticazione SSO
Nota: se ricevi degli errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori relativi ad AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Configura AWS CLI per utilizzare l'autenticazione SSO in modo che l'utente SSO possa autenticarsi e assumere un ruolo AWS Identity and Access Management (AWS IAM).
Per ulteriori informazioni sulla configurazione di AWS CLI con il Centro identità IAM, consulta Integrazione di AWS CLI con il Centro identità IAM.
Configura kubectl per utilizzare il profilo SSO
Per configurare kubectl per utilizzare il profilo SSO, esegui questo comando AWS CLI update-kubeconfig:
aws eks update-kubeconfig --name your-cluster-name --profile your-sso-profile
Nota: sostituisci your-cluster-name con il nome del tuo cluster EKS. Sostituisci your-sso-profile con il nome del tuo profilo SSO.
Verifica la modalità di autenticazione del cluster
Per verificare la modalità di autenticazione del cluster, esegui questo comando AWS CLI describe-cluster:
aws eks describe-cluster --name your-cluster-name --query "cluster.accessConfig.authenticationMode" --profile your-sso-profile
Nota: sostituisci your-cluster-name con il nome del tuo cluster EKS. Sostituisci your-sso-profile con il nome del tuo profilo SSO.
Se l'output mostra API o API_AND_CONFIG_MAP, le voci di accesso sono attivate. Se l'output mostra CONFIG_MAP, è disponibile solo il metodo della ConfigMap aws-auth.
Utilizza Voci di accesso per configurare l'accesso
Scegli uno dei seguenti livelli di autorizzazione:
Concedi le autorizzazioni di amministrazione a livello di cluster
Completa i seguenti passaggi:
- Apri la console Amazon EKS.
- Nel pannello di navigazione, scegliCluster.
- Seleziona il cluster.
- Scegli la scheda Accesso.
- Nella sezione Voci di accesso, scegli Crea voce di accesso.
- In ARN del principale IAM, inserisci l'ARN del ruolo SSO senza la componente relativa al percorso.
- Per Tipo, scegli Standard.
- Scegli Avanti.
- Per Nome della policy, scegli AmazonEKSClusterAdminPolicy.
- Per Ambito di accesso, scegli Cluster.
- Scegli Avanti, quindi scegli Crea.
Concedi autorizzazioni specifiche per il namespace
Completa i seguenti passaggi:
- Apri la console Amazon EKS.
- Nel pannello di navigazione, scegliCluster.
- Seleziona il cluster.
- Scegli la scheda Accesso.
- Nella sezione Voci di accesso, scegli Crea voce di accesso.
- In ARN del principale IAM, inserisci l'ARN del ruolo SSO senza la componente relativa al percorso.
- Per Tipo, scegli Standard.
- Scegli Avanti.
- Per Nome della policy, scegli AmazonEKSAdminViewPolicy o AmazonEKSEditPolicy in base ai requisiti del caso d'uso.
- Per Ambito di accesso, scegli Namespace.
- In Namespace, inserisci il nome del namespace.
- Scegli Avanti, quindi scegli Crea.
Per ulteriori informazioni sulle voci di accesso, consulta Concedere agli utenti IAM l’accesso a Kubernetes con le voci di accesso EKS.
Utilizza la ConfigMap aws-auth per configurare l'accesso
Importante: quando utilizzi aws-auth con il Centro identità IAM, utilizza l'ARN del ruolo IAM senza la componente relativa al percorso. Ad esempio, se l'ARN del tuolo è arn:aws:iam::123456789012:role/aws-reserved/sso.amazonaws.com/us-east-1/AWSReservedSSO_AdministratorAccess_1234567890abcdef, rimuovi il percorso per utilizzare arn:aws:iam::123456789012:role/AWSReservedSSO_AdministratorAccess_1234567890abcdef.
Se il cluster non supporta Voci di accesso o se preferisci utilizzare il metodo della ConfigMap aws-auth, completa i seguenti passaggi:
Concedi le autorizzazioni di amministrazione a livello di cluster
Crea un file YAML con la seguente configurazione:
apiVersion: v1 kind: ConfigMap metadata: name: aws-auth namespace: kube-system data: mapRoles: | - rolearn: arn:aws:iam::123456789012:role/AWSReservedSSO_AdministratorAccess_1234567890abcdef username: sso-admin-user groups: - system:masters
Nota: sostituisci il valore rolearn con l'ARN del tuo ruolo SSO senza la componente relativa al percorso. Sostituisci sso-admin-user con il tuo nome utente preferito.
Applica la configurazione:
kubectl apply -f aws-auth-configmap.yaml
Concedi autorizzazioni specifiche per il namespace
Crea un ruolo e un RoleBinding per l'accesso specifico per il namespace:
apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: sso-user-role namespace: your-namespace rules: - apiGroups: [""] resources: ["pods", "services", "configmaps"] verbs: ["get", "list", "watch"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: sso-user-rolebinding namespace: your-namespace subjects: - kind: User name: sso-user apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: sso-user-role apiGroup: rbac.authorization.k8s.io
Nota: sostituisci your-namespace con il nome del tuo namespace. Sostituisci sso-user con il nome utente specificato nella ConfigMap aws-auth.
Applica la configurazione:
kubectl apply -f role-rolebinding.yaml
Aggiorna la ConfigMap aws-auth per mappare il ruolo SSO sul nome utente:
apiVersion: v1 kind: ConfigMap metadata: name: aws-auth namespace: kube-system data: mapRoles: | - rolearn: arn:aws:iam::123456789012:role/AWSReservedSSO_AdministratorAccess_1234567890abcdef username: sso-user
Nota: sostituisci il valore rolearn con l'ARN del tuo ruolo SSO senza la componente relativa al percorso.
Applica la configurazione:
kubectl apply -f aws-auth-configmap.yaml
Per ulteriori informazioni sulla ConfigMap aws-auth, consulta Concedi agli utenti IAM l'accesso a Kubernetes con una ConfigMap.
Verifica l'accesso
Per verificare che l'utente SSO possa accedere al cluster, esegui questo comando:
kubectl get nodes
Se il comando restituisce un elenco di nodi, l'utente SSO si è autenticato correttamente nel cluster.
Informazioni correlate
- Argomenti
- Containers
- Lingua
- Italiano
