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à.
Vuoi contribuire a questa guida per l'utente? Scegli il GitHub link Modifica questa pagina che si trova nel riquadro destro di ogni pagina. I tuoi contributi contribuiranno a rendere la nostra guida utente migliore per tutti.
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à.
Concedi ai carichi di lavoro Kubernetes l'accesso all'utilizzo AWSKubernetes Account di servizio
A Kubernetes l'account di servizio fornisce un'identità per i processi eseguiti in un Pod. Per ulteriori informazioni, vedere Gestione degli account di servizio
Token dell'account di servizio
La BoundServiceAccountTokenVolume
-
Go versione
0.15.7
e successive -
Python versione
12.0.0
e successive -
Java versione
9.0.0
e successive -
JavaScript versione e
0.10.3
successive -
Ramo
master
di Ruby -
Haskell versione
0.3.0.0
-
C# versione
7.0.5
e successive
Se il carico di lavoro utilizza una versione precedente del client, è necessario aggiornarla. Per consentire una migrazione fluida dei client ai nuovi token degli account di servizio con scadenza temporale, Kubernetes aggiunge un periodo di scadenza esteso al token dell'account di servizio oltre l'ora predefinita. Per i cluster Amazon EKS, il periodo di scadenza è prorogato a 90 giorni. I tuoi cluster Amazon EKS Kubernetes Il server API rifiuta le richieste con token che risalgono a più di 90 giorni fa. Ti consigliamo di controllare le tue applicazioni e le relative dipendenze per assicurarti che il client Kubernetes sia uguale o successivo alle versioni SDKs elencate in precedenza.
Quando il server API riceve richieste con token più vecchie di un'ora, le annota nel log eventi di controllo API con annotations.authentication.k8s.io/stale-token
. Il valore dell'annotazione è simile a quello riportato di seguito:
subject: system:serviceaccount:common:fluent-bit, seconds after warning threshold: 4185802.
Se il cluster ha abilitato la registrazione Invia i registri del piano di controllo ai CloudWatch registri del piano di controllo, le annotazioni si trovano nei log di controllo. È possibile utilizzare la seguente query CloudWatch Logs Insights per identificare tutti i Pods nel tuo cluster Amazon EKS che utilizzano token obsoleti:
fields @timestamp |filter @logStream like /kube-apiserver-audit/ |filter @message like /seconds after warning threshold/ |parse @message "subject: *, seconds after warning threshold:*\"" as subject, elapsedtime
si subject
riferisce all'account di servizio che Pod usato. elapsedtime
indica in secondi il tempo trascorso dalla lettura dell'ultimo token. Le richieste al server API vengono negate quando elapsedtime
supera i 90 giorni (7.776.000 secondi). Dovresti aggiornare in modo proattivo le tue applicazioni Kubernetes client SDK per utilizzare una delle versioni elencate in precedenza che aggiorna automaticamente il token. Se il token dell'account di servizio utilizzato dura da quasi 90 giorni e non hai tempo sufficiente per aggiornare le versioni dell'SDK del client prima della scadenza del token, puoi interrompere il token esistente Pods e creane di nuove. Ciò comporta il ripristino del token dell'account di servizio, che ti offre altri 90 giorni per aggiornare la versione del client. SDKs
Se il file Pod fa parte di una distribuzione, il modo consigliato per terminare Pods pur mantenendo un'elevata disponibilità, è necessario eseguire un rollout con il seguente comando. Sostituisci my-deployment
con il nome della tua implementazione.
kubectl rollout restart deployment/my-deployment
Componenti aggiuntivi del cluster
I seguenti componenti aggiuntivi del cluster sono stati aggiornati per utilizzare il Kubernetes client SDKs che recupera automaticamente i token degli account di servizio. Assicurati che le versioni elencate, o versioni successive, siano installate sul tuo cluster.
-
Amazon VPC CNI plugin for Kubernetes e metrics helper plugins (versione e successive).
1.8.0
Per verificare la versione attuale o aggiornarla, consulta Assegna IPs a Pods con Amazon VPC CNI e cni-metrics-helper. -
CoreDNS versione
1.8.4
e successive. Per verificare la versione attuale o aggiornarla, consulta Gestisci CoredNS per DNS nei cluster Amazon EKS. -
AWS Load Balancer Controller versione
2.0.0
e successive. Per verificare la versione attuale o aggiornarla, consulta Indirizza il traffico Internet con AWS Load Balancer Controller. -
Versione
kube-proxy
attuale. Per verificare la versione attuale o aggiornarla, consulta Gestione kube-proxy nei cluster Amazon EKS. -
AWS per la versione Fluent Bit
2.25.0
o successiva. Per aggiornare la versione attuale, consulta Releases onGitHub. -
Versione dell'immagine di Fluentd 1.14.6-1.2
o versione successiva e plugin di filtro Fluentd per la versione dei metadati Kubernetes 2.11.1 o successive.
Concessione delle autorizzazioni di AWS Identity and Access Management ai carichi di lavoro sui cluster Amazon Elastic Kubernetes Service
Amazon EKS offre due modi per concedere le autorizzazioni di AWS Identity and Access Management ai carichi di lavoro eseguiti nei cluster Amazon EKS: ruoli IAM per gli account di servizio e EKS Pod Identities.
- Ruoli IAM per gli account di servizio
-
IAM roles for service accounts (IRSA) configura le applicazioni Kubernetes in esecuzione AWS con autorizzazioni IAM granulari per accedere a varie altre risorse come bucket Amazon AWS S3, tabelle Amazon DynamoDB e altro ancora. Puoi eseguire più applicazioni contemporaneamente nello stesso cluster Amazon EKS e assicurarti che ogni applicazione disponga solo del set minimo di autorizzazioni di cui ha bisogno. IRSA è stato creato per supportare vari Kubernetes opzioni di implementazione supportate da AWS Amazon EKS, Amazon EKS Anywhere, Red Hat OpenShift Service on AWS e gestite autonomamente Kubernetes cluster su EC2 istanze Amazon. Pertanto, IRSA è stato creato utilizzando un AWS servizio fondamentale come IAM e non ha assunto alcuna dipendenza diretta dal servizio Amazon EKS e dall'API EKS. Per ulteriori informazioni, consulta Ruoli IAM per gli account di servizio.
- Identità EKS Pod
-
EKS Pod Identity offre agli amministratori dei cluster un flusso di lavoro semplificato per l'autenticazione delle applicazioni per accedere a varie altre AWS risorse come bucket Amazon S3, tabelle Amazon DynamoDB e altro ancora. EKS Pod Identity è solo per EKS e, di conseguenza, semplifica il modo in cui gli amministratori dei cluster possono configurare le applicazioni Kubernetes per ottenere le autorizzazioni IAM. Queste autorizzazioni possono ora essere facilmente configurate con meno passaggi direttamente tramite l' AWS Management Console API EKS e la AWS CLI, e non è necessario intraprendere alcuna azione all'interno del cluster Kubernetes oggetti. Gli amministratori del cluster non devono passare dai servizi EKS a quelli IAM o utilizzare operazioni IAM privilegiate per configurare le autorizzazioni richieste dalle applicazioni. I ruoli IAM possono ora essere utilizzati su più cluster senza la necessità di aggiornare la policy di attendibilità dei ruoli durante la creazione di nuovi cluster. Le credenziali IAM fornite da EKS Pod Identity includono tag di sessione dei ruoli, con attributi come nome del cluster, namespace, nome dell'account di servizio. I tag di sessione dei ruoli consentono agli amministratori di creare un singolo ruolo in grado di funzionare su più account di servizio, consentendo l'accesso alle AWS risorse in base ai tag corrispondenti. Per ulteriori informazioni, consulta Scopri come EKS Pod Identity concede ai pod l'accesso ai servizi AWS.
Confronto tra EKS Pod Identity e IRSA
A un livello superiore, sia EKS Pod Identity che IRSA concedono autorizzazioni IAM alle applicazioni in esecuzione su cluster Kubernetes. Ma sono fondamentalmente diversi nel modo in cui vengono configurati, nei limiti supportati e nelle funzionalità abilitate. Di seguito, confrontiamo alcuni degli aspetti chiave di entrambe le soluzioni.
Attributo | EKS Pod Identity | IRSA |
---|---|---|
Estensibilità dei ruoli |
È necessario configurare ogni ruolo una volta per instaurare un rapporto di attendibilità con il principale di servizio Amazon EKS introdotto di recente, |
È necessario aggiornare la politica di fiducia del ruolo IAM con il nuovo cluster EKS OIDC provider endpoint ogni volta che desideri utilizzare il ruolo in un nuovo cluster. |
Scalabilità del cluster |
EKS Pod Identity non richiede agli utenti di configurare il provider IAM OIDC, quindi questo limite non si applica. |
Ogni cluster EKS ha un OpenID Connect (OIDC) URL dell'emittente ad esso associato. Per utilizzare IRSA, un codice univoco OpenID Connect è necessario creare un provider per ogni cluster EKS in IAM. IAM ha un limite globale predefinito di 100 OIDC fornitori per ogni AWS account. Se prevedi di avere più di 100 cluster EKS per ogni AWS account con IRSA, allora raggiungerai l'IAM OIDC limite del provider. |
Scalabilità dei ruoli |
EKS Pod Identity non richiede agli utenti di definire una relazione di fiducia tra il ruolo IAM e l'account di servizio nella policy di fiducia, quindi questo limite non si applica. |
In IRSA, definisci la relazione di fiducia tra un ruolo IAM e un account di servizio nella politica di fiducia del ruolo. Per impostazione predefinita, la lunghezza della dimensione della policy di attendibilità è |
Riutilizzabilità dei ruoli |
AWS Le credenziali temporanee STS fornite da EKS Pod Identity includono tag di sessione del ruolo, come il nome del cluster, lo spazio dei nomi, il nome dell'account del servizio. I tag di sessione di ruolo consentono agli amministratori di creare un singolo ruolo IAM che può essere utilizzato con più account di servizio, con diverse autorizzazioni effettive, consentendo l'accesso alle AWS risorse in base ai tag ad essi allegati. Questo ruolo è chiamato anche controllo degli accessi basato su attributi (ABAC). Per ulteriori informazioni, consulta Grant pods accesso alle AWS risorse in base ai tag. |
AWS I tag di sessione STS non sono supportati. È possibile riutilizzare un ruolo tra i cluster, ma ogni pod riceve tutte le autorizzazioni del ruolo. |
Ambienti supportati |
EKS Pod Identity è disponibile solo su Amazon EKS. |
IRSA può essere utilizzato come Amazon EKS, Amazon EKS Anywhere, Red Hat OpenShift Service on AWS e può essere gestito autonomamente Kubernetes cluster su EC2 istanze Amazon. |
Versioni EKS supportate |
EKS Kubernetes versioni |
Tutte le versioni del cluster EKS supportate. |