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à.
Configurazione pods per accedere ai AWS servizi con account di servizio
Se è Pod necessario accedere AWS servizi, devi configurarlo per utilizzare un account di servizio. Kubernetes L'account di servizio deve essere associato a un ruolo AWS Identity and Access Management (IAM) che dispone delle autorizzazioni per accedere a. AWS servizi
Prerequisiti
-
Un cluster esistente. Se non se ne possiede già uno, crearlo utilizzando una delle guide Inizia a usare Amazon EKS.
-
Un account Kubernetes di servizio esistente e un'associazione EKS Pod Identity che associa l'account di servizio a un IAM ruolo. Al ruolo deve essere associata una IAM politica che contenga le autorizzazioni che desideri Pods vengano utilizzate. AWS servizi Per ulteriori informazioni su come creare e configurare l'account e il ruolo del servizio, consulta Assegnare un IAM ruolo a un account di Kubernetes servizio.
-
La versione più recente di quella AWS CLI installata e configurata sul dispositivo o AWS CloudShell. È possibile verificare la versione corrente con
aws --version | cut -d / -f2 | cut -d ' ' -f1
. I programmi di gestione dei pacchetti, comeyum
,apt-get
o Homebrew per macOS, spesso sono aggiornati a versioni precedenti della AWS CLI. Per installare la versione più recente, consulta Installazione, aggiornamento e disinstallazione AWS CLI e Configurazione rapidaaws configure
nella Guida per l' AWS Command Line Interface utente. La AWS CLI versione installata in AWS CloudShell può anche contenere diverse versioni precedenti alla versione più recente. Per aggiornarla, consulta Installazione nella home directory nella Guida AWS CLI per l' AWS CloudShell utente. -
Lo strumento a riga di comando
kubectl
è installato sul dispositivo o AWS CloudShell. La versione può essere uguale oppure immediatamente precedente o successiva alla versione Kubernetes del cluster. Ad esempio, se la versione del cluster è1.29
, puoi usarekubectl
versione1.28
,1.29
o1.30
. Per installare o aggiornarekubectl
, consulta Configurazione kubectl e eksctl: -
Un file
kubectl
config
esistente che contiene la configurazione del cluster. Per creare un filekubectl
config
, consulta Connect kubectl a un EKS cluster creando un kubeconfig file.
Configurazione di un Pod per l'utilizzo di un account di servizio
-
Utilizza il seguente comando per creare un manifesto di implementazione da implementare in un Pod con cui confermare la configurazione. Sostituisci i
con i valori in tuo possesso.example values
cat >
my-deployment.yaml
<<EOF apiVersion: apps/v1 kind: Deployment metadata: name:my-app
spec: selector: matchLabels: app:my-app
template: metadata: labels: app:my-app
spec: serviceAccountName:my-service-account
containers: - name:my-app
image:public.ecr.aws/nginx/nginx:X.XX
EOF -
Implementa il file manifesto al cluster.
kubectl apply -f
my-deployment.yaml
-
Verifica che le variabili di ambiente richieste esistano per Pod.
-
Visualizzare i Pods distribuiti con l'implementazione nella fase precedente.
kubectl get pods | grep
my-app
Di seguito viene riportato un output di esempio:
my-app
-6f4dfff6cb-76cv9
1/1 Running 0 3m28s -
Verifica che il Pod abbia il file di token dell'account di servizio montato.
kubectl describe pod
my-app
-6f4dfff6cb-76cv9
| grep AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE:Di seguito viene riportato un output di esempio:
AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE: /var/run/secrets/pods.eks.amazonaws.com/serviceaccount/eks-pod-identity-token
-
-
Conferma di Pods poter interagire AWS servizi utilizzando le autorizzazioni assegnate nella IAM politica allegata al tuo ruolo.
Nota
Quando un Pod utilizza AWS le credenziali di un IAM ruolo associato a un account di servizio, l' AWS CLI altro utente presente SDKs nei relativi contenitori Pod utilizza le credenziali fornite da quel ruolo. Se non limiti l'accesso alle credenziali fornite al IAMruolo del EKS nodo Amazon, hanno Pod comunque accesso a queste credenziali. Per ulteriori informazioni, consulta Limitazione dell'accesso al profilo dell'istanza assegnato al nodo worker
. Se il tuo Pods non riesce a interagire con i servizi come previsto, completa i seguenti passaggi per confermare che tutto sia configurato correttamente.
-
Conferma di Pods utilizzare una AWS SDK versione che supporti l'assunzione di un IAM ruolo tramite un'associazione EKS Pod Identity. Per ulteriori informazioni, consulta Usa l'identità del pod con AWS SDK.
-
Conferma che l'implementazione stia utilizzando l'account del servizio.
kubectl describe deployment
my-app
| grep "Service Account"Di seguito viene riportato un output di esempio:
Service Account:
my-service-account
-