Ruolo IAM del nodo Amazon EKS - Amazon EKS

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 tramite un profilo dell'istanza IAM e le policy associate. Prima di avviare i nodi e registrarli in un cluster, devi creare un ruolo IAM per questi nodi da 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 si intende utilizzare. Prima di creare i nodi, è necessario creare un ruolo IAM con le seguenti policy IAM:

Nota

I gruppi di nodi Amazon EC2 devono avere un ruolo IAM diverso dal profilo Fargate. Per ulteriori informazioni, consulta . Ruolo IAM per l'esecuzione del pod Amazon EKS.

Verificare la 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.

Per verificare la presenza di eksNodeRole nella console IAM

  1. Apri la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  2. Nel riquadro di navigazione a sinistra seleziona Ruoli.

  3. Ricercare eksNodeRole, AmazonEKSNodeRole o NodeInstanceRole nell'elenco di ruoli. Se un ruolo con uno di questi nomi non esiste, consultare Creazione del ruolo IAM del nodo Amazon EKS per creare il ruolo. Se esiste un ruolo che contiene eksNodeRole, AmazonEKSNodeRole o NodeInstanceRole, allora selezionare il ruolo per visualizzare le policy allegate.

  4. Selezionare Autorizzazioni.

  5. Verificare che le policy gestite AmazonEKSWorkerNodePolicy e AmazonEC2ContainerRegistryReadOnly siano collegate al ruolo. Se le policy sono allegate, il ruolo di lavoro Amazon EKS è configurato correttamente.

    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-node Kubernetes. Per ulteriori informazioni, consulta . Configurazione del plug-in CNI di Amazon VPC per l'utilizzo dei ruoli IAM per gli account di servizio.

  6. Scegli Trust relationships (Relazioni di attendibilità), quindi scegli Edit trust policy (Modifica policy di attendibilità).

  7. Verifica che la relazione di trust includa la seguente policy. Se la relazione di trust corrisponde alla policy sottostante, scegli Cancel (Annulla). Se la relazione di attendibilità non corrisponde, copia la policy nella finestra Edit trust policy (Modifica policy di attendibilità) e scegli Update policy (Aggiorna policy).

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Creazione del ruolo IAM del nodo Amazon EKS

È possibile creare il ruolo IAM del nodo dalla AWS Management Console o la AWS CLI. Selezionare la scheda con il nome dello strumento che si desidera utilizzare per creare il ruolo.

AWS Management Console

Per creare il ruolo del nodo Amazon EKS nella console IAM

  1. Apri la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  2. Scegliere Roles (Ruoli), quindi Create role (Crea ruolo).

  3. In Use case (Caso d'uso), scegli EC2 e quindi scegli Next (Successivo).

  4. Nella casella Filter policies (Policy di filtro) della pagina Add permissions (Aggiungi autorizzazioni), inserisci AmazonEKSWorkerNodePolicy e seleziona la casella di controllo a sinistra di AmazonEKSWorkerNodePolicy nei risultati della ricerca.

  5. Scegli Clear filters (Cancella filtri).

  6. Nella casella Policy di filtro immettere AmazonEC2ContainerRegistryReadOnly. Seleziona quindi la casella di controllo a sinistra di AmazonEC2ContainerRegistryReadOnly nei risultati della ricerca.

    Inoltre, a questo ruolo o a un ruolo diverso mappato all'account del servizio Kubernetes aws-node deve 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 . Configurazione del plug-in CNI di Amazon VPC per l'utilizzo dei ruoli IAM per gli account di servizio.

  7. Seleziona Next (Successivo).

  8. Per Nome ruolo, immettere un nome univoco per il ruolo, ad esempio AmazonEKSNodeRole.

  9. Per Description (Descrizione), sostituisci il testo corrente con un testo descrittivo come Amazon EKS - Node role.

  10. Scegliere Create role (Crea ruolo).

AWS CLI
  1. Salvare i seguenti contenuti in un file denominato node-role-trust-relationship.json.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Creare il ruolo IAM.

    aws iam create-role \ --role-name AmazonEKSNodeRole \ --assume-role-policy-document file://"node-role-trust-relationship.json"
  3. 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/AmazonEC2ContainerRegistryReadOnly \ --role-name AmazonEKSNodeRole
  4. Allegare una delle seguenti policy IAM al ruolo IAM a seconda della famiglia IP con cui è stato creato il cluster. La policy deve essere allegata a questo ruolo o a un ruolo associato all'account di servizio Kubernetes aws-node che viene utilizzato per il plug-in CNI VPC di Amazon EKS. 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 Configurazione del plug-in CNI di Amazon VPC per l'utilizzo dei ruoli IAM per gli account di servizio.

    • IPv4

      aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy \ --role-name AmazonEKSNodeRole
    • IPv6

      1. Copiare il testo seguente e salvarlo 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/*" ] } ] }
      2. Creare la policy IAM.

        aws iam create-policy \ --policy-name AmazonEKS_CNI_IPv6_Policy \ --policy-document file://vpc-cni-ipv6-policy.json
      3. Allegare la policy IAM al ruolo IAM. Sostituire 111122223333 con l'ID account.

        aws iam attach-role-policy \ --policy-arn arn:aws:iam::111122223333:policy/AmazonEKS_CNI_IPv6_Policy \ --role-name AmazonEKSNodeRole