Como o EKS Pod Identity funciona - Amazon EKS

Ajudar a melhorar esta página

Quer contribuir para este guia do usuário? Role até o final desta página e selecione Editar esta página no GitHub. Suas contribuições ajudarão a tornar nosso guia do usuário melhor para todos.

Como o EKS Pod Identity funciona

As associações do Amazon EKS Pod Identity permitem gerenciar credenciais para suas aplicações de forma semelhante a como os perfis de instância do Amazon EC2 fornecem credenciais para instâncias do Amazon EC2.

O Amazon EKS Pod Identity fornece credenciais para suas workloads com uma API EKS Auth adicional e um pod de agente que é executado em cada nó.

Em seus complementos, como os complementos do Amazon EKS e controladores autogerenciados, operadores e outros complementos, o autor precisa atualizar o software para usar os AWS SDKs mais recentes. Para ver a lista de compatibilidade entre o EKS Pod Identity e os complementos produzidos pelo Amazon EKS, consulte a seção Restrições do EKS Pod Identity anterior.

Usar o EKS Pod Identities em seu código

É possível usar os AWS SDKs no código para acessar os serviços da AWS. Escreva código para criar um cliente para um serviço da AWS com um SDK e, por padrão, o SDK pesquisa em uma cadeia de locais as credenciais do AWS Identity and Access Management que serão usadas. Depois que as credenciais válidas forem encontradas, a pesquisa será interrompida. Para obter mais informações sobre os locais padrão usados, consulte a Cadeia de provedores de credenciais no Guia de referência de SDKs e ferramentas da AWS.

As identidades do EKS Pod foram adicionadas ao Provedor de credenciais do container, o qual é pesquisado em uma etapa na cadeia de credenciais padrão. Se atualmente suas workloads usam credenciais mais antigas na cadeia de credenciais, elas continuarão sendo usadas mesmo se você configurar uma associação do EKS Pod Identity para a mesma workload. Dessa forma, você pode migrar com segurança de outros tipos de credenciais criando a associação antes de remover as credenciais antigas.

O provedor de credenciais do contêiner fornece credenciais temporárias de um agente executado em cada nó. No Amazon EKS, o agente é o Amazon EKS Pod Identity Agent e, no Amazon Elastic Container Service, o agente é o amazon-ecs-agent. Os SDKs usam variáveis de ambiente para localizar os agentes ao qual se conectarão.

Por outro lado, os perfis do IAM para contas de serviço fornecem um token de identidade da Web que o AWS SDK deve trocar com o AWS Security Token Service usando AssumeRoleWithWebIdentity.

Como o EKS Pod Identity Agent funciona com um Pod

  1. Quando o Amazon EKS inicia um novo pod que usa uma conta de serviço com uma associação ao EKS Pod Identity, o cluster adiciona o seguinte conteúdo ao manifesto Pod:

    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 seleciona em qual nó o pod será executado. Em seguida, o Amazon EKS Pod Identity Agent no nó usa a ação AssumeRoleForPodIdentity para recuperar credenciais temporárias da API de autenticação do EKS.

  3. O EKS Pod Identity Agent disponibiliza essas credenciais para os AWS SDKs que você executa em seus contêineres.

  4. Você usa o SDK em sua aplicação sem especificar um provedor de credenciais para usar a cadeia de credenciais padrão. Ou você especifica o provedor de credenciais do contêiner. Para obter mais informações sobre os locais padrão usados, consulte a Cadeia de provedores de credenciais no Guia de referência de SDKs e ferramentas da AWS.

  5. O SDK usa as variáveis de ambiente para se conectar ao EKS Pod Identity Agent e recuperar as credenciais.

    nota

    Se suas workloads usam no momento credenciais mais antigas na cadeia de credenciais, essas credenciais continuarão sendo usadas mesmo se você configurar uma associação do EKS Pod Identity para a mesma workload.