Configurazione pods per accedere ai AWS servizi con account di servizio - Amazon EKS

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, come yum, 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 rapida aws 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 usare kubectl versione 1.28, 1.29 o 1.30. Per installare o aggiornare kubectl, consulta Configurazione kubectl e eksctl:

  • Un file kubectl config esistente che contiene la configurazione del cluster. Per creare un file kubectl config, consulta Connect kubectl a un EKS cluster creando un kubeconfig file.

Configurazione di un Pod per l'utilizzo di un account di servizio
  1. Utilizza il seguente comando per creare un manifesto di implementazione da implementare in un Pod con cui confermare la configurazione. Sostituisci i example values con i valori in tuo possesso.

    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
  2. Implementa il file manifesto al cluster.

    kubectl apply -f my-deployment.yaml
  3. Verifica che le variabili di ambiente richieste esistano per Pod.

    1. 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
    2. 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
  4. 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.

    1. 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.

    2. 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