Configura i pod per accedere ai AWS servizi con account di servizio - Amazon EKS

Contribuisci 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à.

Per contribuire a questa guida per l'utente, scegli il GitHub link Modifica questa pagina nel riquadro destro di ogni 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à.

Configura i pod per accedere ai AWS servizi con account di servizio

Se un Pod deve accedere ai 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) con le autorizzazioni per accedere ai servizi AWS .

  • Un cluster esistente. Se non se ne possiede già uno, crearlo utilizzando una delle guide in Nozioni di base su Amazon EKS.

  • Un account di servizio Kubernetes esistente e un’associazione EKS Pod Identity che associa l’account di servizio a un ruolo IAM. Al ruolo deve essere associata una policy IAM che contenga le autorizzazioni che desideri che i tuoi Pod abbiano per utilizzare i servizi. AWS Per ulteriori informazioni su come creare e configurare l'account e il ruolo del servizio, consulta Assegnazione di un ruolo IAM a un account di servizio Kubernetes.

  • La versione più recente della 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 gestori di pacchetti come yum Homebrew per macOS sono spesso diverse versioni dell'ultima versione della CLI AWS . apt-get Per installare la versione più recente, consulta Installazione e configurazione rapida con aws configure nella Guida per l'utente dell'interfaccia a riga di AWS comando. La versione AWS CLI installata in AWS CloudShell potrebbe anche contenere diverse versioni precedenti alla versione più recente. Per aggiornarlo, consulta Installazione della AWS CLI nella tua home directory nella Guida 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 di 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 Impostazione di kubectl e eksctl:

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

    1. Utilizza il seguente comando per creare un manifesto di implementazione per implementare un pod con cui confermare la configurazione. Sostituire i valori di esempio con i propri valori.

      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 i pod.

      1. Visualizza i pod 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. Verifica che i tuoi Pod possano interagire con i AWS servizi utilizzando le autorizzazioni che hai assegnato nella policy IAM associata al tuo ruolo.

      Nota

      Quando un Pod utilizza AWS le credenziali di un ruolo IAM associato a un account di servizio, la AWS CLI o SDKs altro nei contenitori per quel Pod utilizza le credenziali fornite da quel ruolo. Se non si limita l’accesso alle credenziali fornite al ruolo IAM del nodo di Amazon EKS, il pod ha comunque accesso a tali credenziali. Per ulteriori informazioni, consulta Limita l’accesso al profilo dell’istanza assegnato al nodo (worker).

      Se il tuo pod non riesce a interagire con i servizi come previsto, completa i seguenti passaggi per confermare che tutto sia configurato correttamente.

      1. Verifica che i tuoi Pod utilizzino una versione AWS SDK che supporti l'assunzione di un ruolo IAM tramite un'associazione EKS Pod Identity. Per ulteriori informazioni, consulta Utilizzo di Pod Identity con SDK AWS.

      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