Contribuisci a migliorare questa pagina
Per contribuire a questa guida per l’utente, seleziona il link Edit this page on GitHub che si trova nel riquadro destro di ogni pagina.
Ruolo IAM del nodo Amazon EKS
Il daemon kubelet del nodo Amazon EKS effettua chiamate alle API AWS per conto dell'utente. I nodi ricevono le autorizzazioni per queste chiamate API attraverso un profilo dell'istanza IAM e le policy associate. Prima di avviare i nodi e registrarli in un cluster, devi creare un ruolo IAM che i nodi possano utilizzare all'avvio. Questo requisito si applica ai nodi di lavoro avviati con l'AMI ottimizzata per Amazon EKS fornita da Amazon o con altre AMI di nodi che intendi utilizzare. Inoltre, questo requisito si applica sia ai gruppi di nodi gestiti sia ai nodi autogestiti.
Nota
Non è possibile utilizzare lo stesso ruolo utilizzato per creare i cluster.
Prima di creare i nodi, è necessario creare un ruolo IAM con le seguenti autorizzazioni:
-
Autorizzazioni per consentire a
kubeletdi descrivere le risorse Amazon EC2 nel VPC, come quelle fornite dalla policy AmazonEKSWorkerNodePolicy. Questa policy fornisce anche le autorizzazioni per il Pod Identity Agent di Amazon EKS. -
Autorizzazioni per consentire a
kubeletdi utilizzare le immagini dei container da Amazon Elastic Container Registry (Amazon ECR), come previsto dalla policy AmazonEC2ContainerRegistryPullOnly. Le autorizzazioni per utilizzare le immagini dei container da Amazon Elastic Container Registry (Amazon ECR) sono necessarie perché i componenti aggiuntivi integrati per le reti eseguono pod che utilizzano immagini di container provenienti da Amazon ECR. -
(Facoltativo) Autorizzazioni per consentire al Pod Identity Agent di Amazon EKS di utilizzare l'azione
eks-auth:AssumeRoleForPodIdentityper recuperare le credenziali per i pod. Se non si utilizza AmazonEKSWorkerNodePolicy, è necessario fornire questa autorizzazione oltre a quelle richieste per consentire a EC2 di utilizzare Pod Identity di EKS. -
(Facoltativo) Se non si usa Pod Identity di EKS o IRSA per fornire le autorizzazioni ai pod VPC CNI, è necessario fornire le autorizzazioni per il VPC CNI sul ruolo dell’istanza. È possibile utilizzare la policy gestita
AmazonEKS_CNI_Policy(se il cluster è stato creato con la famigliaIPv4) o una policy IPv6 creata (se il cluster è stato creato con la famigliaIPv6). Invece di allegare la policy a questo ruolo, tuttavia, consigliamo di allegarla a un ruolo separato utilizzato specificamente per il componente aggiuntivo CNI di Amazon VPC. Per ulteriori informazioni sulla creazione di un ruolo separato per il componente aggiuntivo CNI di Amazon VPC, consultare Configurare il plug-in CNI di Amazon VPC per l’utilizzo di IRSA.
Nota
I gruppi di nodi Amazon EC2 devono avere un ruolo IAM diverso dal profilo Fargate. Per ulteriori informazioni, consulta Ruolo IAM di esecuzione del pod di Amazon EKS .
Verifica della presenza di un ruolo di nodo esistente
Per controllare se l'account dispone già di un ruolo di nodo Amazon EKS, utilizzare la procedura indicata di seguito.
-
Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/
. -
Nel pannello di navigazione a sinistra, seleziona Ruoli.
-
Ricerca
eksNodeRole,AmazonEKSNodeRoleoNodeInstanceRolenell'elenco di ruoli. Se un ruolo con uno di questi nomi non esiste, consulta Creazione del ruolo IAM del nodo Amazon EKS per creare il ruolo. Se esiste un ruolo che contieneeksNodeRole,AmazonEKSNodeRoleoNodeInstanceRole, seleziona il ruolo per visualizzare le policy allegate. -
Seleziona Autorizzazioni.
-
Verifica che le policy gestite AmazonEKSWorkerNodePolicy e AmazonEC2ContainerRegistryPullOnly siano collegate al ruolo o che una policy personalizzata sia collegata alle autorizzazioni minime.
Nota
Se la policy AmazonEKS_CNI_Policy è allegata al ruolo, è consigliabile invece rimuoverla e allegarla a un ruolo IAM mappato all'account di servizio
aws-nodeKubernetes. Per ulteriori informazioni, consulta Configurare il plug-in CNI di Amazon VPC per l’utilizzo di IRSA. -
Scegli Trust relationships (Relazioni di attendibilità), quindi scegli Edit trust policy (Modifica policy di attendibilità).
-
Verifica che la relazione di trust includa la policy seguente. Se la relazione di attendibilità corrisponde alla policy seguente, scegli Cancel (Annulla). Se la relazione di attendibilità non corrisponde, copia la policy nella finestra Modifica policy di attendibilità e scegli Aggiorna policy.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Principal": { "Service": [ "ec2.amazonaws.com" ] } } ] }
Creazione del ruolo IAM del nodo Amazon EKS
È possibile creare il ruolo IAM del nodo con la Console di gestione AWS o la AWS CLI.
- Console di gestione AWS
-
-
Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/
. -
Nel pannello di navigazione a sinistra, seleziona Ruoli.
-
Nella pagina Ruoli, seleziona Crea ruolo.
-
Nella pagina Seleziona un'entità attendibile, esegui le operazioni seguenti:
-
Nella sezione Tipo di entità attendibile, scegli Servizio AWS.
-
Per Use case (Caso d'uso), seleziona EC2.
-
Scegli Next (Successivo).
-
-
Nella pagina Aggiungi autorizzazioni, collega una policy personalizzata o esegui le operazioni seguenti:
-
Nella casella Filtra policy, inserisci
AmazonEKSWorkerNodePolicy. -
Seleziona la casella di controllo a sinistra di AmazonEKSWorkerNodePolicy nei risultati della ricerca.
-
Scegli Cancella filtri.
-
Nella casella Filtra policy, inserisci
AmazonEC2ContainerRegistryPullOnly. -
Seleziona la casella a sinistra di AmazonEC2ContainerRegistryPullOnly nei risultati della ricerca.
Inoltre, a questo ruolo o a un ruolo diverso mappato all’account del servizio Kubernetes
aws-nodedeve essere collegata la policy gestita AmazonEKS_CNI_Policy o una policy IPv6 creata da te. Si consiglia di assegnare la policy al ruolo associato all'account del servizio Kubernetes anziché assegnarlo a questo ruolo. Per ulteriori informazioni, consulta Configurare il plug-in CNI di Amazon VPC per l’utilizzo di IRSA. -
Scegli Next (Successivo).
-
-
Nella pagina Name, review, and create (Assegna un nome, rivedi e crea), esegui le operazioni seguenti:
-
Per Role name (Nome ruolo), inserisci un nome univoco per il ruolo, ad esempio
AmazonEKSNodeRole. -
In Descrizione, sostituisci il testo corrente con un testo descrittivo come
Amazon EKS - Node role. -
In Aggiungi tag (facoltativo), aggiungi metadati al ruolo collegando i tag come coppie chiave-valore. Per ulteriori informazioni sull'utilizzo di tag in IAM, consulta la sezione Applicazione di tag alle risorse IAM nella Guida per l'utente di IAM.
-
Scegli Crea ruolo.
-
-
- CLI AWS
-
-
Per creare il file
node-role-trust-relationship.json, emetti il seguente comando:cat >node-role-trust-relationship.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Principal": { "Service": [ "ec2.amazonaws.com" ] } } ] } EOF -
Crea il ruolo IAM.
aws iam create-role \ --role-name AmazonEKSNodeRole \ --assume-role-policy-document file://"node-role-trust-relationship.json" -
Allegare al ruolo IAM le due policy gestite IAM richieste.
aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy \ --role-name AmazonEKSNodeRole aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly \ --role-name AmazonEKSNodeRole -
Allega una delle seguenti policy IAM al ruolo IAM a seconda della famiglia di IP con cui hai creato il cluster. La policy deve essere allegata a questo ruolo o a un ruolo associato all’account di servizio Kubernetes
aws-nodeche viene utilizzato per il componente aggiuntivo Amazon VPC CNI per Kubernetes. Si consiglia di assegnare la policy al ruolo associato all'account del servizio Kubernetes. Per assegnare la policy al ruolo associato all'account del servizio Kubernetes, consultare Configurare il plug-in CNI di Amazon VPC per l’utilizzo di IRSA.-
IPv4
aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy \ --role-name AmazonEKSNodeRole -
IPv6
-
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 -
Allegare la policy IAM al ruolo IAM. Sostituire
111122223333con l'ID account.aws iam attach-role-policy \ --policy-arn arn:aws:iam::111122223333:policy/AmazonEKS_CNI_IPv6_Policy \ --role-name AmazonEKSNodeRole
-
-
-