Comprensione di come funziona EKS Pod Identity - Amazon EKS

Contribuisci a migliorare questa pagina

Per contribuire a questa guida per l’utente, seleziona il link Edit this page on GitHub che si trova nel riquadro destro di ogni pagina.

Comprensione di come funziona EKS Pod Identity

Le associazioni Amazon EKS Pod Identity offrono la possibilità di gestire le credenziali per le applicazioni, in modo simile a come i profili di istanza di Amazon EC2 forniscono le credenziali alle istanze Amazon EC2.

Amazon EKS Pod Identity fornisce le credenziali per i tuoi carichi di lavoro con un'API EKS Auth aggiuntiva e un pod di agenti che viene eseguito su ogni nodo.

Nei componenti aggiuntivi, come i componenti aggiuntivi di Amazon EKS e i controller, gli operatori e altri componenti aggiuntivi autogestiti, l'autore deve aggiornare il software per utilizzare gli SDK AWS più recenti. Per l'elenco della compatibilità tra EKS Pod Identity e i componenti aggiuntivi prodotti da Amazon EKS, consulta la sezione precedente Restrizioni di EKS Pod Identity.

Utilizzo delle associazioni EKS Pod Identity nel codice

Nel codice, puoi utilizzare gli SDK AWS per accedere ai servizi AWS. Scrivi il codice per creare un client per un servizio AWS con un SDK e, per impostazione predefinita, l’SDK cerca in una catena di posizioni le credenziali per AWS Identity and Access Management da utilizzare. Dopo aver trovato credenziali valide, la ricerca viene interrotta. Per ulteriori informazioni sulle posizioni predefinite utilizzate, consulta Catena di fornitori di credenziali nella Guida di riferimento agli SDK e agli strumenti AWS.

Le associazioni EKS Pod Identity sono state aggiunte al provider di credenziali del container, che viene cercato in un passaggio nella catena di credenziali predefinita. Se i carichi di lavoro utilizzano attualmente credenziali che si trovano all'inizio della catena di credenziali, quest'ultime continuano a essere utilizzate anche se configuri un'associazione EKS Pod Identity per lo stesso carico di lavoro. In questo modo è possibile migrare in sicurezza da altri tipi di credenziali creando l'associazione prima di rimuovere le vecchie credenziali.

Il provider di credenziali del container assegna credenziali temporanee da un agente che viene eseguito su ogni nodo. In Amazon EKS, l'agente è Amazon EKS Pod Identity Agent e su Amazon Elastic Container Service l'agente è amazon-ecs-agent. Gli SDK utilizzano variabili di ambiente per individuare l'agente a cui connettersi.

Al contrario, i ruoli IAM per gli account di servizio forniscono un token di identità Web che AWS SDK deve scambiare con AWS Security Token Service utilizzando AssumeRoleWithWebIdentity.

Come funziona un agente EKS Pod Identity con un pod

  1. Quando Amazon EKS avvia un nuovo pod che utilizza un account di servizio con un’associazione EKS Pod Identity, il cluster aggiunge il seguente contenuto al manifesto:

    env: - name: AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE value: "/var/run/secrets/pods.eks.amazonaws.com/serviceaccount/eks-pod-identity-token" - name: AWS_CONTAINER_CREDENTIALS_FULL_URI value: "http://169.254.170.23/v1/credentials" volumeMounts: - mountPath: "/var/run/secrets/pods.eks.amazonaws.com/serviceaccount/" name: eks-pod-identity-token volumes: - name: eks-pod-identity-token projected: defaultMode: 420 sources: - serviceAccountToken: audience: pods.eks.amazonaws.com expirationSeconds: 86400 # 24 hours path: eks-pod-identity-token
  2. Kubernetes seleziona su quale nodo eseguire il pod. Quindi, Amazon EKS Pod Identity Agent sul nodo utilizza l'azione AssumeRoleForPodIdentity per recuperare le credenziali temporanee dall'API EKS Auth.

  3. EKS Pod Identity Agent rende disponibili queste credenziali per gli SDK AWS che esegui all'interno dei container.

  4. Utilizza l'SDK nell'applicazione senza specificare un provider di credenziali per utilizzare la catena di credenziali predefinita. In alternativa, specifica il provider di credenziali del container. Per ulteriori informazioni sulle posizioni predefinite utilizzate, consulta Catena di fornitori di credenziali nella Guida di riferimento agli SDK e agli strumenti AWS.

  5. L'SDK utilizza le variabili di ambiente per connettersi all'EKS Pod Identity Agent e recuperare le credenziali.

    Nota

    Se i carichi di lavoro attualmente utilizzano credenziali che si trovano all'inizio della catena di credenziali, tali credenziali continueranno a essere utilizzate anche se configuri un'associazione EKS Pod Identity per lo stesso carico di lavoro.