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à.
Configurare l' AWS Security Token Service endpoint per un account di servizio
Se stai usando un Kubernetes account di servizio conRuoli IAM per gli account di servizio, puoi configurare il tipo di AWS Security Token Service endpoint utilizzato dall'account di servizio se la versione del cluster e della piattaforma sono uguali o successive a quelle elencate nella tabella seguente. Se le ricette di Kubernetes oppure la versione della piattaforma è precedente a quelle elencate nella tabella, quindi gli account di servizio possono utilizzare solo l'endpoint globale.
Kubernetes version | Versione della piattaforma | Tipo di endpoint predefinito |
---|---|---|
1.31 |
eks.1 |
Regionale |
1.30 |
eks.2 |
Regionale |
1.29 |
eks.1 |
Regionale |
1.28 |
eks.1 |
Regionale |
1.27 |
eks.1 |
Regionale |
1.26 |
eks.1 |
Regionale |
1.25 |
eks.1 |
Regionale |
1.24 |
eks.2 |
Regionale |
1.23 |
eks.1 |
Regionale |
AWS consiglia di utilizzare gli AWS STS endpoint regionali anziché l'endpoint globale. Ciò riduce la latenza, fornisce una ridondanza integrata e aumenta la validità del token di sessione. AWS Security Token Service Devono essere attivi nel luogo in cui Regione AWS Pod è in esecuzione. Inoltre, l'applicazione deve avere una ridondanza integrata per un altro Regione AWS in caso di guasto del servizio in. Regione AWS Per ulteriori informazioni, vedere Managing AWS STS in an Regione AWS nella Guida per l'IAMutente.
Prerequisiti
-
Un cluster esistente. Se non se ne possiede già uno, crearlo utilizzando una delle guide Inizia a usare Amazon EKS.
-
Un IAM OIDC provider esistente per il tuo cluster. Per ulteriori informazioni, consulta Crea un IAM OIDC provider per il tuo cluster.
-
Un esistente Kubernetes account di servizio configurato per l'uso con la funzionalità Amazon EKS IAM for service accounts.
Per configurare il tipo di endpoint utilizzato da un Kubernetes account di servizio
I seguenti esempi utilizzano tutti il aws-node
Kubernetes account di servizio utilizzato dal VPCCNIplug-in Amazon. Puoi sostituirlo
con i tuoi account di servizio, Pods, namespace e altre risorse.example values
-
Seleziona un Pod che utilizza un account di servizio per il quale desideri modificare l'endpoint. Determina Regione AWS quale Pod corre dentro. Sostituisci
con il tuo Pod nome eaws-node-6mfgv
con il tuo Podnamespace.kube-system
kubectl describe pod
aws-node-6mfgv
-nkube-system
|grep Node:Di seguito viene riportato un output di esempio:
ip-192-168-79-166.us-west-2/192.168.79.166
Nell'output precedente, Pod Regione AWS
-
Determina il tipo di endpoint che Pod's l'account di servizio sta utilizzando.
kubectl describe pod
aws-node-6mfgv
-nkube-system
|grep AWS_STS_REGIONAL_ENDPOINTSDi seguito viene riportato un output di esempio:
AWS_STS_REGIONAL_ENDPOINTS:
regional
Se l'endpoint attuale è globale, l'output restituisce
global
. Se non viene restituito alcun output, il tipo di endpoint predefinito è in uso e non è stato sovrascritto. -
Se le versioni del cluster e della piattaforma corrispondono o sono successive a quelle elencate nella tabella, puoi modificare il tipo di endpoint utilizzato dall'account del servizio dal tipo predefinito con un tipo diverso tramite uno dei comandi seguenti. Sostituisci
con il nome dell'account del servizio eaws-node
con lo spazio dei nomi dell'account del servizio.kube-system
-
Se il tipo di endpoint predefinito o attuale è globale e vuoi modificarlo in regionale:
kubectl annotate serviceaccount -n
kube-system
aws-node
eks.amazonaws.com/sts-regional-endpoints=trueSe si utilizza Ruoli IAM per gli account di servizio per generare S3 prefirmato nell'applicazione URLs in esecuzione in Pods'containers, il formato dei quattro endpoint regionali è simile al seguente URL esempio:
https://bucket.s3.us-west-2.amazonaws.com/path?...&X-Amz-Credential=
your-access-key-id
/date
/us-west-2/s3/aws4_request&... -
Se il tipo di endpoint predefinito o attuale è regionale e vuoi modificarlo in globale:
kubectl annotate serviceaccount -n
kube-system
aws-node
eks.amazonaws.com/sts-regional-endpoints=falseSe la tua applicazione effettua richieste esplicitamente agli endpoint AWS STS globali e non sovrascrivi il comportamento predefinito di utilizzo degli endpoint regionali nei cluster EKS Amazon, le richieste falliranno e genereranno un errore. Per ulteriori informazioni, consulta I container dei pod riceveranno il seguente errore: An error occurred (SignatureDoesNotMatch) when calling the GetCallerIdentity operation: Credential should be scoped to a valid region.
Se utilizzi Ruoli IAM per gli account di servizio per generare S3 prefirmato nella tua applicazione in esecuzione in URLs Pods'containers, il formato dei quattro endpoint globali è simile al seguente URL esempio:
https://bucket.s3.amazonaws.com/path?...&X-Amz-Credential=
your-access-key-id
/date
/us-west-2/s3/aws4_request&...
Se disponi di un'automazione che prevede il prefirmato URL in un determinato formato o se l'applicazione o le dipendenze a valle che utilizzano il prefirmato URLs hanno aspettative per l' Regione AWS obiettivo, apporta le modifiche necessarie per utilizzare l'endpoint appropriato. AWS STS
-
-
Elimina e ricrea qualsiasi elemento esistente Pods che sono associati all'account di servizio per applicare le variabili di ambiente delle credenziali. Il web hook mutante non li applica a Pods che sono già in esecuzione. È possibile sostituire
Pods
, ekube-system
con le informazioni per Pods per cui hai impostato l'annotazione.-l k8s-app=aws-node
kubectl delete
Pods
-nkube-system
-l
k8s-app=aws-node
-
Conferma che il tutto Pods riavviato.
kubectl get
Pods
-nkube-system
-l k8s-app=aws-node
-
Visualizza le variabili di ambiente per una delle Pods. Verifica che il
AWS_STS_REGIONAL_ENDPOINTS
valore sia quello impostato nel passaggio precedente.kubectl describe pod
aws-node-kzbtr
-nkube-system
|grep AWS_STS_REGIONAL_ENDPOINTSDi seguito viene riportato un output di esempio:
AWS_STS_REGIONAL_ENDPOINTS=
regional