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à.
Configurare l'endpoint del servizio AWS Security Token per un account di servizio
Se stai usando un Kubernetes account di servizio con ruoli Ruoli IAM per gli account di servizio IAM per gli account di servizio, puoi configurare il tipo di endpoint del servizio AWS Security Token utilizzato dall'account di servizio se la versione del cluster e della piattaforma è uguale o successiva a quelle elencate nella tabella seguente.
AWS consiglia di utilizzare gli endpoint AWS STS regionali anziché l'endpoint globale. Ciò riduce la latenza, fornisce una ridondanza integrata e aumenta la validità del token di sessione. Il servizio AWS Security Token deve essere attivo nella AWS regione in cui Pod è in esecuzione. Inoltre, l'applicazione deve avere una ridondanza integrata per un'altra AWS regione in caso di guasto del servizio nella AWS regione. Per ulteriori informazioni, consulta Managing AWS STS in an AWS Region nella IAM User Guide.
-
Un cluster esistente. Se non ne hai uno, puoi crearne uno utilizzando una delle guide inNozioni di base su Amazon EKS.
-
Provider OIDC IAM esistente per il cluster. Per ulteriori informazioni, consulta Creazione di un IAM OIDC provider per il tuo cluster.
-
Un esistente Kubernetes account di servizio configurato per l'uso con la funzionalità Ruoli IAM per gli account di servizio Amazon EKS IAM for service accounts.
Gli esempi seguenti utilizzano tutti il nodo aws Kubernetes account di servizio utilizzato dal plug-in Configurare il plug-in Amazon VPC CNI per utilizzare IRSA Amazon VPC CNI. Puoi sostituirlo example values
con i tuoi account di servizio, Pods, namespace e altre risorse.
-
Seleziona un Pod che utilizza un account di servizio per il quale desideri modificare l'endpoint. Determina in quale AWS regione si trova Pod entra. Sostituisci
aws-node-6mfgv
con il tuo Pod nome ekube-system
con il tuo Pod’s namespace.kubectl describe pod aws-node-6mfgv -n kube-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, il Pod è in esecuzione su un nodo nella regione us-west-2 AWS .
-
Determina il tipo di endpoint che Pod’s l'account di servizio sta utilizzando.
kubectl describe pod aws-node-6mfgv -n kube-system |grep AWS_STS_REGIONAL_ENDPOINTS
Di 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
aws-node
con il nome dell'account del servizio ekube-system
con lo spazio dei nomi dell'account del servizio.-
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=true
Se utilizzi i ruoli Ruoli IAM per gli account di servizio IAM per gli account di servizio per generare S3 prefirmato URLs nella tua applicazione in esecuzione nei contenitori di Pods, il formato dell'URL per gli endpoint regionali è simile al seguente 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=false
Se la tua applicazione effettua richieste esplicite agli endpoint globali AWS STS e non sovrascrivi il comportamento predefinito di utilizzo degli endpoint regionali nei cluster Amazon EKS, le richieste falliranno con 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 i ruoli Ruoli IAM per gli account di servizio IAM per gli account di servizio per generare S3 prefirmato URLs nella tua applicazione in esecuzione nei contenitori di Pods, il formato dell'URL per gli endpoint globali è simile al seguente 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 l'utilizzo dell'URL prefirmato in un determinato formato o se l'applicazione o le dipendenze a valle che utilizzano il prefirmato URLs hanno aspettative per la AWS regione interessata, apporta le modifiche necessarie per utilizzare l'endpoint STS appropriato. AWS
-
-
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
kube-system
, e-l k8s-app=aws-node
con le informazioni per Pods per cui hai impostato l'annotazione.kubectl delete Pods -n kube-system -l k8s-app=aws-node
-
Conferma che il tutto Pods riavviato.
kubectl get Pods -n kube-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 -n kube-system |grep AWS_STS_REGIONAL_ENDPOINTS
Di seguito viene riportato un output di esempio:
AWS_STS_REGIONAL_ENDPOINTS=regional