Aiutaci a migliorare questa pagina
Vuoi contribuire a questa guida per l'utente? Scorri fino alla fine di questa pagina e seleziona Modifica questa pagina su GitHub. I tuoi contributi contribuiranno a rendere la nostra guida utente migliore per tutti.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Configurazione dell'Amazon VPC CNI plugin for Kubernetesutilizzo dei ruoli IAM per gli account di servizio (IRSA)
Il Amazon VPC CNI plugin for Kubernetes
-
Richiede autorizzazioni AWS Identity and Access Management (IAM). Se il cluster utilizza la famiglia IPv4, le autorizzazioni sono specificate nella politica gestita.
AmazonEKS_CNI_Policy
AWS Se il cluster utilizza la famiglia IPv6, le autorizzazioni devono essere aggiunte a una policy IAM creata dall'utente.È possibile collegare questa policy al ruolo del nodo IAM Amazon EKS o a un ruolo IAM separato. Si consiglia di assegnarlo a un ruolo separato, come descritto in questo argomento. -
Crea ed è configurato per l'utilizzo di un account di servizio Kubernetes denominato
aws-node
quando viene implementato. L'account di servizio è associato a unclusterrole
Kubernetes denominatoaws-node
, a cui vengono assegnate le autorizzazioni Kubernetes necessarie.
Nota
I Pods per il Amazon VPC CNI plugin for Kubernetes hanno accesso alle autorizzazioni assegnate al ruolo IAM del nodo Amazon EKS, a meno che non si blocchi l'accesso al servizio di metadati a IMDS. Per ulteriori informazioni, consulta Limita l'accesso al profilo dell'istanza assegnato al nodo (worker)
Prerequisiti
-
Un cluster Amazon EKS esistente. Per implementarne uno, consulta Inizia a usare Amazon EKS.
-
Un provider AWS Identity and Access Management (IAM) OpenID Connect (OIDC) esistente per il tuo cluster. Per determinare se disponi già di un provider IAM o per crearne uno, consulta Crea un IAM OIDC provider per il tuo cluster.
Fase 1: creazione di un ruolo IAM per Amazon VPC CNI plugin for Kubernetes
Per creare il ruolo IAM
-
Determina la famiglia IP del cluster.
aws eks describe-cluster --name
my-cluster
| grep ipFamilyDi seguito viene riportato un output di esempio:
"ipFamily": "ipv
4
"L'output potrebbe invece restituire
ipv6
. -
Crea il ruolo IAM. Puoi usare
eksctl
orkubectl
e the AWS CLI per creare il tuo ruolo IAM. (Facoltativo) Configura il tipo di AWS Security Token Service endpoint utilizzato dal tuo account Kubernetes di servizio. Per ulteriori informazioni, consulta Configurare l' AWS Security Token Service endpoint per un account di servizio.
Fase 2: re-implementazione dei Pods per il Amazon VPC CNI plugin for Kubernetes
-
Elimina e ricrea i Pods esistenti associati all'account di servizio per applicare le variabili di ambiente delle credenziali. L'annotazione non viene applicata ai Pods attualmente in esecuzione senza l'annotazione. Il comando seguente elimina i Pods
aws-node
DaemonSet esistenti e li implementa con l'annotazione dell'account di servizio.kubectl delete Pods -n kube-system -l k8s-app=aws-node
-
Conferma che tutti i Pods sono stati riavviati.
kubectl get pods -n kube-system -l k8s-app=aws-node
-
Descrivi uno dei Pods e verifica che le variabili di ambiente
AWS_WEB_IDENTITY_TOKEN_FILE
eAWS_ROLE_ARN
esistano. Sostituiscicpjw7
con il nome di uno dei Pods restituiti nell'output del passaggio precedente.kubectl describe pod -n kube-system aws-node-
cpjw7
| grep 'AWS_ROLE_ARN:\|AWS_WEB_IDENTITY_TOKEN_FILE:'Di seguito viene riportato un output di esempio:
AWS_ROLE_ARN: arn:aws:iam::
111122223333
:role/AmazonEKSVPCCNIRole
AWS_WEB_IDENTITY_TOKEN_FILE: /var/run/secrets/eks.amazonaws.com/serviceaccount/token AWS_ROLE_ARN: arn:aws:iam::111122223333
:role/AmazonEKSVPCCNIRole
AWS_WEB_IDENTITY_TOKEN_FILE: /var/run/secrets/eks.amazonaws.com/serviceaccount/tokenVengono restituiti due set di risultati duplicati perché il Pod contiene due container. I due container hanno gli stessi valori.
Se Pod si utilizza l'endpoint Regione AWS al, nell'output precedente viene restituita anche la riga seguente.
AWS_STS_REGIONAL_ENDPOINTS=regional
Fase 3: rimozione della policy CNI dal ruolo IAM del nodo
Se al tuo ruolo IAM del nodo Amazon EKS è attualmente associata la IPv6policy AmazonEKS_CNI_Policy IAM (IPv4) o una policy e hai creato un ruolo IAM separato, invece hai collegato la policy ad esso e l'hai assegnata all'account di aws-node
Kubernetes servizio, ti consigliamo di rimuovere la policy dal ruolo del nodo con il AWS CLI comando che corrisponde alla famiglia IP del tuo cluster. Sostituisci
con il nome del ruolo del nodo.AmazonEKSNodeRole
-
IPv4
aws iam detach-role-policy --role-name
AmazonEKSNodeRole
--policy-arn arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy -
IPv6
Sostituisci
con il tuo ID account e111122223333
con il nome della policyAmazonEKS_CNI_IPv6_Policy
IPv6
.aws iam detach-role-policy --role-name
AmazonEKSNodeRole
--policy-arn arn:aws:iam::111122223333
:policy/AmazonEKS_CNI_IPv6_Policy
Creare una policy IAM per i cluster che utilizzano la famiglia IPv6
Se hai creato un cluster che utilizza la famiglia IPv6
e sul cluster è configurata la versione 1.10.1
o successiva del componente aggiuntivo Amazon VPC CNI plugin for Kubernetes, puoi creare una policy IAM che puoi assegnare a un ruolo IAM. Se disponi di un cluster che non hai configurato con la famiglia IPv6
al momento della creazione, prima di utilizzare IPv6
, sarà necessario creare un nuovo cluster. Per ulteriori informazioni sull'uso di IPv6
con il cluster, consulta IPv6indirizzi per i cluster Pods e services.
-
Copia il testo seguente e salvalo in un file denominato
.vpc-cni-ipv6-policy
.json{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:AssignIpv6Addresses", "ec2:DescribeInstances", "ec2:DescribeTags", "ec2:DescribeNetworkInterfaces", "ec2:DescribeInstanceTypes" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ] } ] }
Creare la policy IAM.
aws iam create-policy --policy-name
AmazonEKS_CNI_IPv6_Policy
--policy-document file://vpc-cni-ipv6-policy.json