Ruoli IAM per gli account di servizio - Amazon EKS

Ruoli IAM per gli account di servizio

Associare il ruolo IAM a un account del servizio Kubernetes. Questo account di servizio può quindi fornire le autorizzazioni AWS ai container in qualsiasi pod che utilizza tale account. Grazie a questa caratteristica, non è più necessario fornire autorizzazioni estese al ruolo Ruolo IAM del nodo Amazon EKS del nodo per consentire ai pod su tale nodo di chiamare le API AWS.

Le applicazioni devono firmare le proprie richieste API AWS con le credenziali AWS. Questa funzionalità fornisce alle applicazioni una strategia per la gestione delle credenziali per le applicazioni, analogamente al modo in cui i profili di istanza Amazon EC2 forniscono le credenziali alle istanze Amazon EC2. Invece di creare e distribuire le credenziali AWS ai container o di utilizzare il ruolo dell'istanza Amazon EC2, è possibile associare un ruolo IAM a un account di servizio Kubernetes. Le applicazioni nei container del pod possono quindi utilizzare un SDK AWS o AWS CLI per inviare richieste API ai servizi AWS autorizzati.

Importante

Anche se si assegna un ruolo IAM a un account del servizio Kubernetes, il pod dispone ancora delle autorizzazioni assegnate al Ruolo IAM del nodo Amazon EKS, a meno che non si blocchi l'accesso dei pod all'IMDS. Per ulteriori informazioni, consulta Limita l'accesso al profilo di istanza assegnato al nodo (worker).

La caratteristica dei ruoli IAM per gli account di servizio offre i seguenti vantaggi:

  • Privilegio minimo — Grazie alla caratteristica dei ruoli IAM per gli account di servizio, non è più necessario fornire autorizzazioni estese al ruolo IAM del nodo per consentire ai pod su tale nodo di chiamare le AWS API. È possibile definire l'ambito delle autorizzazioni IAM per un account di servizio; solo i pod che utilizzano tale account avranno accesso alle autorizzazioni definite. Questa caratteristica elimina anche la necessità di soluzioni di terze parti, ad esempio kiam o kube2iam.

  • Isolamento delle credenziali — Un container può recuperare solo le credenziali per il ruolo IAM associato all'account del servizio a cui appartiene. Un container non ha mai accesso alle credenziali destinate a un altro container appartenente a un altro pod.

  • Possibilità di effettuare controlli — Accesso e registrazione degli eventi sono disponibili tramite CloudTrail per garantire controlli retrospettivi.

Abilitare per gli account di servizio l'accesso alle AWS risorse in tre passaggi

  1. Creazione di un provider OIDC IAM per il cluster – È sufficiente eseguire questa operazione una sola volta per cluster.

  2. Creare un ruolo IAM e allegarvi una policy IAM con le autorizzazioni necessarie agli account di servizio. –Si consiglia di creare ruoli separati per ogni raccolta univoca di autorizzazioni necessarie ai pod.

  3. Associare un ruolo IAM a un account di servizio – Completare questo processo per ogni account del servizio Kubernetes che deve accedere a risorse AWS.