Aiutaci a migliorare questa pagina
Vuoi contribuire a questa guida per l'utente? Scorri fino alla fine di questa pagina e seleziona Modifica questa pagina su GitHub. 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 successivePython versione
12.0.0
e successiveJava versione
9.0.0
e successiveJavaScript versione
0.10.3
e successiveRamo
master
di RubyHaskell 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 EKS i cluster Amazon, il periodo di scadenza esteso è di 90 giorni. I tuoi EKS cluster Amazon Kubernetes APIil server 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 API server riceve richieste con token che risalgono a più di un'ora, annota l'evento del registro di controllo con. API 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 nel cluster è abilitata la registrazione del piano di controllo (control-plane), le annotazioni di trovano nei registri di controllo. È possibile utilizzare la seguente query CloudWatch Logs Insights per identificare tutti i Pods nel tuo EKS cluster Amazon 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 API server vengono negate quando elapsedtime
superano 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 SDK le versioni del client prima della scadenza del token, puoi terminare il token esistente Pods e creane di nuovi. 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
con il nome della tua implementazione.my-deployment
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 corrente o aggiornarla, consulta e. Assegna IPs a Pods con Amazon VPC CNI cni-metrics-helper -
CoreDNS versione
1.8.4
e successive. Per verificare la versione attuale o aggiornarla, consulta Gestisci Core DNS per DNS i EKS cluster Amazon. -
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 EKS cluster Amazon. 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 AWS Identity and Access Management delle autorizzazioni ai carichi di lavoro sui cluster Amazon Elastic Kubernetes Service
Amazon EKS offre due modi per concedere AWS Identity and Access Management le autorizzazioni ai carichi di lavoro eseguiti nei EKS cluster Amazon: IAMruoli per gli account di servizio e EKS identità Pod.
- Ruoli IAM per gli account di servizio
-
IAMroles for service accounts (IRSA) configura le applicazioni Kubernetes in esecuzione AWS con IAM autorizzazioni granulari per accedere a varie altre risorse AWS come bucket Amazon S3, tabelle Amazon DynamoDB e altro ancora. Puoi eseguire più applicazioni contemporaneamente nello stesso EKS cluster Amazon 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 distribuzione supportate da AWS AmazonEKS, Amazon EKS Anywhere e gestite autonomamente Servizio Red Hat OpenShift su AWSKubernetes cluster su EC2 istanze Amazon. Pertanto, IRSA è stato creato utilizzando AWS servizi di base come IAM e non ha assunto alcuna dipendenza diretta dal EKS servizio Amazon e dal. EKS API Per ulteriori informazioni, consulta Ruoli IAM per gli account di servizio.
- EKSIdentità Pod
-
EKSPod 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. EKSPod Identity è destinato EKS esclusivamente e, di conseguenza, semplifica il modo in cui gli amministratori del cluster possono configurare le applicazioni Kubernetes per ottenere le autorizzazioni. IAM Queste autorizzazioni possono ora essere facilmente configurate direttamente con meno passaggi e AWS CLI non è necessario intraprendere alcuna azione all'interno del cluster AWS Management Console EKS API Kubernetes oggetti. Gli amministratori del cluster non devono passare da un IAM servizio all'EKSaltro o utilizzare IAM operazioni privilegiate per configurare le autorizzazioni richieste dalle applicazioni. IAMi ruoli possono ora essere utilizzati su più cluster senza la necessità di aggiornare la policy di fiducia dei ruoli durante la creazione di nuovi cluster. IAMle credenziali fornite da EKS Pod Identity includono tag di sessione del ruolo, con attributi come nome del cluster, namespace, nome dell'account del servizio. I tag di sessione di ruolo consentono agli amministratori di creare un singolo ruolo che può 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
Ad alto livello, sia EKS Pod Identity che IRSA consentono di concedere IAM autorizzazioni 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 | EKSPod Identity | IRSA |
---|---|---|
Estensibilità dei ruoli |
È necessario configurare ogni ruolo una volta per stabilire un rapporto di fiducia con il nuovo responsabile del EKS servizio Amazon. |
È necessario aggiornare la politica di fiducia del IAM ruolo con il nuovo cluster EKS OIDC provider endpoint ogni volta che desideri utilizzare il ruolo in un nuovo cluster. |
Scalabilità del cluster |
EKSPod Identity non richiede agli utenti di configurare il IAM OIDC provider, quindi questo limite non si applica. |
Ogni EKS cluster ha un OpenID Connect (OIDC) emittente URL ad esso associato. Da usareIRSA, un unico OpenID Connect è necessario creare un provider per ogni EKS cluster inIAM. IAMha un limite globale predefinito di 100 OIDC fornitori per ciascuno Account AWS. Se prevedi di avere più di 100 EKS cluster per ciascuno Account AWS di essiIRSA, otterrai il IAM OIDC limite del fornitore. |
Scalabilità dei ruoli |
EKSPod Identity non richiede agli utenti di definire una relazione di fiducia tra IAM ruolo e account di servizio nella politica di fiducia, quindi questo limite non si applica. |
InIRSA, definisci la relazione di fiducia tra un IAM ruolo 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 STS le credenziali temporanee fornite da EKS Pod Identity includono tag di sessione del ruolo, come il nome del cluster, lo spazio dei nomi, il nome dell'account di servizio. I tag di sessione di ruolo consentono agli amministratori di creare un singolo IAM ruolo che può essere utilizzato con più account di servizio, con autorizzazioni effettive diverse, consentendo l'accesso alle AWS risorse in base ai tag ad esse allegati. Questo metodo è anche chiamato controllo degli accessi basato sugli attributi (). ABAC Per ulteriori informazioni, consulta Grant pods accesso alle AWS risorse in base ai tag. |
AWS STS i tag di sessione non sono supportati. È possibile riutilizzare un ruolo tra i cluster, ma ogni pod riceve tutte le autorizzazioni del ruolo. |
Ambienti supportati |
EKSPod Identity è disponibile solo su AmazonEKS. |
IRSApuò essere utilizzato come AmazonEKS, Amazon EKS Anywhere e gestito autonomamente Servizio Red Hat OpenShift su AWSKubernetes cluster su EC2 istanze Amazon. |
EKSversioni supportate |
EKS Kubernetes versioni |
Tutte le versioni del EKS cluster supportate. |