Aiutaci a migliorare questa pagina
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à.
Per contribuire a questa guida per l'utente, scegli il GitHub link Modifica questa pagina nel riquadro destro di ogni pagina.
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à.
Scopri come EKS Pod Identity concede ai pod l'accesso ai servizi AWS
Le applicazioni nei contenitori di un Pod possono utilizzare un AWS SDK o la AWS CLI per effettuare richieste API AWS ai servizi AWS utilizzando le autorizzazioni Identity and Access Management (IAM). Le applicazioni devono firmare le proprie richieste AWS API con credenziali. AWS
Le identità EKS Pod offrono la possibilità di gestire le credenziali per le applicazioni, in modo simile al modo in cui i profili di EC2 istanza Amazon forniscono le credenziali alle istanze Amazon. EC2 Invece di creare e distribuire AWS le tue credenziali ai contenitori o utilizzare il ruolo dell' EC2 istanza Amazon, associ un ruolo IAM a un account di servizio Kubernetes e configuri i tuoi Pods per utilizzare l'account di servizio.
Ogni associazione EKS Pod Identity associa un ruolo a un account di servizio in uno spazio dei nomi nel cluster specificato. Se hai la stessa applicazione in più cluster, puoi creare associazioni identiche in ogni cluster senza modificare la policy di attendibilità del ruolo.
Se un pod utilizza un account di servizio con un'associazione, Amazon EKS imposta le variabili di ambiente nei container del pod. Le variabili di ambiente configurano AWS SDKs, inclusa la AWS CLI, per utilizzare le credenziali EKS Pod Identity.
Vantaggi delle associazioni EKS Pod Identity
Le associazioni EKS Pod Identity offrono i seguenti vantaggi:
-
Privilegio minimo: puoi assegnare le autorizzazioni IAM a un account di servizio e solo i Pod che utilizzano quell'account di servizio hanno accesso a tali autorizzazioni. Questa caratteristica elimina anche la necessità di soluzioni di terze parti, ad esempio
kiam
okube2iam
. -
Isolamento delle credenziali: quando l'accesso ad Amazon EC2 Instance Metadata Service (IMDS) è limitato, i contenitori di un Pod possono recuperare solo le credenziali per il ruolo IAM associato all'account di servizio utilizzato dal contenitore. Un contenitore non ha mai accesso alle credenziali utilizzate da altri contenitori in altri Pod. Se IMDS non è soggetto a restrizioni, i contenitori del Pod hanno accesso anche al ruolo IAM del nodo Amazon EKS e i contenitori potrebbero essere in grado di accedere alle credenziali dei ruoli IAM di altri Pod sullo stesso nodo. Per ulteriori informazioni, consulta Limitazione dell'accesso al profilo dell'istanza assegnato al nodo worker.
Nota
I pod configurati con hostNetwork: true
avranno sempre accesso IMDS, ma la AWS SDKs CLI e la CLI utilizzeranno le credenziali Pod Identity quando abilitati.
-
Verificabilità: la registrazione degli accessi e degli eventi è disponibile per facilitare il controllo retrospettivo AWS CloudTrail .
Importante
I contenitori non sono un limite di sicurezza e l'uso di Pod Identity non modifica questo aspetto. I pod assegnati allo stesso nodo condivideranno un kernel e potenzialmente altre risorse a seconda della configurazione del Pod. Sebbene i Pod in esecuzione su nodi separati siano isolati a livello di elaborazione, esistono applicazioni di nodo che dispongono di autorizzazioni aggiuntive nell'API Kubernetes oltre all'ambito di una singola istanza. Alcuni esempi sono i kubelet
driver di archiviazione CSI kube-proxy
o le tue applicazioni Kubernetes.
EKS Pod Identity è un metodo più sempliceRuoli IAM per gli account di servizio, in quanto questo metodo non utilizza provider di identità OIDC. EKS Pod Identity presenta i seguenti miglioramenti:
-
Operazioni indipendenti: in molte organizzazioni, la creazione di provider di identità OIDC è una responsabilità di team diversi rispetto all'amministrazione dei cluster Kubernetes. EKS Pod Identity offre una netta separazione dei compiti, in cui tutta la configurazione delle associazioni EKS Pod Identity viene eseguita in Amazon EKS e tutta la configurazione delle autorizzazioni IAM viene eseguita in IAM.
-
Riusabilità: EKS Pod Identity utilizza un singolo principale IAM anziché principali separati per ogni cluster utilizzato dai ruoli IAM per gli account di servizio. L'amministratore IAM aggiunge il seguente principale alla policy di attendibilità di qualsiasi ruolo per renderlo utilizzabile da parte delle associazioni EKS Pod Identity.
"Principal": { "Service": "pods.eks.amazonaws.com" }
-
Scalabilità: ogni set di credenziali temporanee viene assunto dal servizio EKS Auth in EKS Pod Identity, anziché da ogni SDK eseguito in ogni pod. AWS Quindi, l'Amazon EKS Pod Identity Agent che viene eseguito su ogni nodo rilascia le credenziali a. SDKs Pertanto, il carico viene ridotto a una volta per ogni nodo e non viene duplicato in ogni pod. Per ulteriori dettagli del processo, consulta Scopri come funziona EKS Pod Identity.
Per ulteriori informazioni su come confrontare le due alternative, consulta Concedi ai carichi di lavoro Kubernetes l'accesso all'utilizzo degli account di servizio Kubernetes AWS.
Panoramica sulla configurazione delle associazioni EKS Pod Identity
Attiva le associazioni EKS Pod Identity completando le seguenti procedure:
-
Configurazione di Amazon EKS Pod Identity Agent— Questa procedura viene completata solo una volta per ogni cluster. Non è necessario completare questo passaggio se la modalità automatica EKS è abilitata sul cluster.
-
Assegna un ruolo IAM a un account di servizio Kubernetes— Completate questa procedura per ogni set univoco di autorizzazioni che desiderate assegnare a un'applicazione.
-
Configura i pod per accedere ai AWS servizi con account di servizio— Completa questa procedura per ogni Pod che deve accedere ai AWS servizi.
-
Usa l'identità del pod con l' AWS SDK— Conferma che il carico di lavoro utilizzi un AWS SDK di una versione supportata e che utilizzi la catena di credenziali predefinita.
Limiti
-
Sono supportate fino a 5.000 associazioni EKS Pod Identity per cluster per mappare i ruoli IAM agli account di servizio Kubernetes.
Considerazioni
-
IAM Role Association: ogni account di servizio Kubernetes in un cluster può essere associato a un ruolo IAM dello stesso account del cluster. AWS Per modificare il ruolo, modifica l'associazione EKS Pod Identity. Per l'accesso su più account, delega l'accesso al ruolo utilizzando i ruoli IAM. Per saperne di più, consulta Delegare l'accesso a più AWS account utilizzando i ruoli IAM nella Guida per l'utente IAM.
-
EKS Pod Identity Agent: il Pod Identity Agent è necessario per utilizzare EKS Pod Identity. L'agente funziona come Kubernetes
DaemonSet
sui nodi del cluster, fornendo credenziali solo ai pod sullo stesso nodo. Utilizza la porta occupante del nodo80
e l'indirizzo locale del collegamento (2703
forhostNetwork
, for).169.254.170.23
IPv4[fd00:ec2::23]
IPv6 Se IPv6 è disabilitato nel tuo cluster, disabilitalo IPv6 per il Pod Identity Agent. Per ulteriori informazioni, consulta Disable IPv6 in the EKS Pod Identity Agent. -
Coerenza finale: le associazioni EKS Pod Identity alla fine sono coerenti, con potenziali ritardi di diversi secondi dopo le chiamate API. Evita di creare o aggiornare associazioni in percorsi di codice critici e ad alta disponibilità. Eseguite invece queste azioni in routine di inizializzazione o configurazione separate e meno frequenti. Per ulteriori informazioni, consulta Security Groups Per Pod nella EKS Best Practices Guide.
-
Considerazioni sui proxy e sui gruppi di sicurezza: per i pod che utilizzano un proxy, aggiungete
169.254.170.23
(IPv4) e[fd00:ec2::23]
(IPv6) alle variabili dino_proxy/NO_PROXY
ambiente per evitare richieste non riuscite a EKS Pod Identity Agent. Se utilizzi Security Groups for Pods con il CNI AWS VPC, impostaENABLE_POD_ENI
il flag su «true» ePOD_SECURITY_GROUP_ENFORCING_MODE
il flag su «standard». Per saperne di più, consulta Assegnare gruppi di sicurezza a singoli pod.
Versioni del cluster EKS Pod Identity
Per utilizzare EKS Pod Identity, il cluster deve avere una versione della piattaforma uguale o successiva alla versione elencata nella tabella seguente o una versione di Kubernetes successiva alle versioni elencate nella tabella. Per trovare la versione consigliata di Amazon EKS Pod Identity Agent per una versione Kubernetes, consulta. Verifica la compatibilità della versione del componente aggiuntivo Amazon EKS con un cluster
Versione di Kubernetes | Versione della piattaforma |
---|---|
Versioni di Kubernetes non elencate |
Tutte le versioni della piattaforma supportano |
|
|
|
|
|
|
Restrizioni di EKS Pod Identity
Le associazioni EKS Pod Identity sono disponibili in:
-
Versioni del cluster Amazon EKS elencate nell'argomento precedente Versioni del cluster EKS Pod Identity.
-
Nodi di lavoro nel cluster che sono EC2 istanze Amazon Linux.
Le identità EKS Pod non sono disponibili nei seguenti paesi:
-
AWS Outposts.
-
Amazon EKS Anywhere.
-
Cluster Kubernetes che crei ed esegui su Amazon. EC2 I componenti di EKS Pod Identity sono disponibili solo su Amazon EKS.
Non puoi usare EKS Pod Identities con:
-
Pod che funzionano ovunque tranne le EC2 istanze Linux Amazon. I pod Linux e Windows che funzionano su AWS Fargate (Fargate) non sono supportati. I pod eseguiti su EC2 istanze Amazon Windows non sono supportati.