Ruolo IAM di esecuzione del pod di Amazon EKS - Amazon EKS

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 di esecuzione del pod di Amazon EKS

Il ruolo di esecuzione del pod Amazon EKS è necessario per eseguire i pod sull’infrastruttura AWS Fargate.

Quando il cluster crea pod sull’infrastruttura di AWS Fargate, i componenti in esecuzione sull’infrastruttura Fargate devono effettuare chiamate ad AWS API per conto dell’utente. In questo modo possono eseguire operazioni come estrarre le immagini container da Amazon ECR o instradare i log ad altri servizi AWS. Il ruolo di esecuzione del pod Amazon EKS fornisce le autorizzazioni IAM per eseguire questa operazione.

Quando si crea un profilo Fargate, è necessario specificare un ruolo di esecuzione del pod per i componenti Amazon EKS che vengono eseguiti su infrastruttura Fargate utilizzando il profilo. Questo ruolo è aggiunto al controllo di accesso basato sul ruolo (RBAC) di Kubernetes del cluster per l’autorizzazione. Ciò consente al kubelet in esecuzione sull’infrastruttura Fargate di registrarsi con il cluster Amazon EKS in modo che possa essere visualizzato nel cluster come nodo.

Nota

Il profilo Fargate deve avere un ruolo IAM diverso dai gruppi di nodi Amazon EC2.

Importante

I container in esecuzione nel pod Fargate non possono assumere le autorizzazioni IAM associate a un ruolo di esecuzione del pod. Per concedere ai container nelle autorizzazioni dei pod Fargate per accedere ad altri servizi AWS, è necessario utilizzare ruoli IAM per gli account di servizio.

Prima di creare un profilo Fargate, è necessario creare un ruolo IAM con AmazonEKSFargatePodExecutionRolePolicy.

Verificare la presenza di un ruolo di esecuzione del pod esistente configurato correttamente

Per verificare se l’account dispone già di un ruolo di esecuzione del pod Amazon EKS configurato correttamente, utilizzare la procedura indicata di seguito. Per prevenire il problema di sicurezza di un delegato confuso, è importante che il ruolo limiti l’accesso in base a SourceArn. È possibile modificare il ruolo di esecuzione secondo necessità per includere il supporto per i profili Fargate su altri cluster.

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

  2. Nel pannello di navigazione a sinistra, seleziona Ruoli.

  3. Nella pagina Roles (Ruoli), cerca la voce AmazonEKSFargatePodExecutionRole nell'elenco dei ruoli. Se il ruolo non esiste, consulta Creazione del ruolo di esecuzione del pod Amazon EKS per crearlo. Se il ruolo è presente, selezionalo.

  4. Nella pagina AmazonEKSFargatePodExecutionRole, esegui la procedura seguente:

    1. Seleziona Permissions (Autorizzazioni).

    2. Verifica che la policy gestita da Amazon AmazonEKSFargatePodExecutionRolePolicy sia allegata al ruolo.

    3. Scegli Trust relationships (Relazioni di trust).

    4. Seleziona Edit trust policy (Modifica policy di attendibilità).

  5. Nella pagina Edit trust policy (Modifica policy di attendibilità), verifica che la relazione di attendibilità contenga la policy seguente e una riga per i profili Fargate nel cluster. In tal caso, scegli Cancel (Annulla).

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*" } }, "Principal": { "Service": "eks-fargate-pods.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

    Se la policy corrisponde ma non contiene una riga che specifica i profili Fargate sul cluster, aggiungi la riga riportata di seguito nella parte superiore dell’oggetto ArnLike. Sostituisci codice regione con la regione AWS in cui è il cluster, 111122223333 con l’ID del tuo account e my-cluster con il nome del cluster.

    "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*",

    Se la policy non corrisponde, copia la policy precedente nel modulo e scegli Update policy (Aggiorna policy). Sostituisci codice regione con la Regione AWS in cui si trova il cluster. Se si desidera utilizzare lo stesso ruolo in tutte le regioni AWS dell’account, sostituisci codice regione con *. Sostituisci 111122223333 con l’ID del tuo account e my-clustercon il nome del cluster. Se si desidera utilizzare lo stesso ruolo per tutti i cluster dell’account, sostituisci my-cluster con *.

Creazione del ruolo di esecuzione del pod Amazon EKS

Se non disponi ancora di un ruolo di esecuzione del pod Amazon EKS per il cluster, puoi utilizzare Console di gestione AWS o AWS CLI per crearlo.

Console di gestione AWS
  1. Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  2. Nel pannello di navigazione a sinistra, seleziona Ruoli.

  3. Nella pagina Ruoli, seleziona Crea ruolo.

  4. Nella pagina Seleziona un'entità attendibile, esegui le operazioni seguenti:

    1. Nella sezione Tipo di entità attendibile, scegli Servizio AWS.

    2. Nell’elenco a discesa Casi d’uso per altri servizi AWS, scegli EKS.

    3. Scegli EKS - Pod Fargate.

    4. Scegli Next (Successivo).

  5. Nella pagina Add permissions (Aggiungi autorizzazioni), scegli Next (Successivo).

  6. Nella pagina Name, review, and create (Assegna un nome, rivedi e crea), esegui le operazioni seguenti:

    1. Per Role name (Nome ruolo), inserisci un nome univoco per il ruolo, ad esempio AmazonEKSFargatePodExecutionRole.

    2. 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.

    3. Scegli Crea ruolo.

  7. Nella pagina Roles (Ruoli), cerca la voce AmazonEKSFargatePodExecutionRole nell'elenco dei ruoli. Seleziona il ruolo.

  8. Nella pagina AmazonEKSFargatePodExecutionRole, esegui la procedura seguente:

    1. Scegli Trust relationships (Relazioni di trust).

    2. Seleziona Edit trust policy (Modifica policy di attendibilità).

  9. Nella pagina Modifica policy di attendibilità, effettua le operazioni seguenti:

    1. Copia e incolla il contenuto seguente nel modello Modifica policy di attendibilità. Sostituisci codice regione con la regione AWS in cui si trova il cluster. Se si desidera utilizzare lo stesso ruolo in tutte le regioni AWS dell’account, sostituisci codice regione con *. Sostituisci 111122223333 con l’ID del tuo account e my-clustercon il nome del cluster. Se si desidera utilizzare lo stesso ruolo per tutti i cluster dell’account, sostituisci my-cluster con *.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*" } }, "Principal": { "Service": "eks-fargate-pods.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Scegli Aggiorna policy.

CLI AWS
  1. Copia e incolla il contenuto seguente in un file denominato pod-execution-role-trust-policy.json. Sostituisci codice regione con la regione AWS in cui si trova il cluster. Se si desidera utilizzare lo stesso ruolo in tutte le regioni AWS dell’account, sostituisci codice regione con *. Sostituisci 111122223333 con l’ID del tuo account e my-clustercon il nome del cluster. Se si desidera utilizzare lo stesso ruolo per tutti i cluster dell’account, sostituisci my-cluster con *.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*" } }, "Principal": { "Service": "eks-fargate-pods.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Creare un ruolo IAM di esecuzione del pod.

    aws iam create-role \ --role-name AmazonEKSFargatePodExecutionRole \ --assume-role-policy-document file://"pod-execution-role-trust-policy.json"
  3. Allegare la policy IAM gestita da Amazon EKS richiesta al ruolo.

    aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy \ --role-name AmazonEKSFargatePodExecutionRole