Conceder acesso aos pods a recursos da AWS baseados em tags - 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.

Conceder acesso aos pods a recursos da AWS baseados em tags

O EKS Identity Pod anexa tags às credenciais temporárias de cada pod com atributos como nome do cluster, namespace e nome da conta de serviço. Essas tags de sessão de perfil permitem que os administradores criem um único perfil que pode funcionar em várias contas de serviço, permitindo o acesso aos recursos da AWS com base em tags correspondentes. Ao adicionar suporte a tags de sessão de perfil, os clientes podem impor limites de segurança mais rígidos entre clusters e workloads dentro dos clusters enquanto reutilizam os mesmos perfis e políticas do IAM.

For exemplo, a política a seguir permitirá a ação s3:GetObject se o objeto estiver marcado com o nome do cluster do EKS.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectTagging" ], "Resource": "*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/eks-cluster-name": "${aws:PrincipalTag/eks-cluster-name}" } } } ] }

Lista de tags de sessão adicionadas pelo EKS Pod Identity

A lista a seguir contém todas as chaves das tags que são adicionadas à solicitação de AssumeRole feita pelo Amazon EKS. Para usar essas tags em políticas, use ${aws:PrincipalTag/ seguido pela chave, por exemplo, ${aws:PrincipalTag/kubernetes-namespace}.

  • eks-cluster-arn

  • eks-cluster-name

  • kubernetes-namespace

  • kubernetes-service-account

  • kubernetes-pod-name

  • kubernetes-pod-uid

Cópia entre contas

Todas as tags de sessão adicionadas pelo EKS Pod Identity são transitivas; as chaves e os valores das tags são passados para quaisquer ações AssumeRole usadas por suas workloads para trocar de perfil para outra conta. Você pode usar essas tags em políticas de outras contas para limitar o acesso em cenários entre contas. Para obter mais informações, consulte Encadeamento de funções com tags de sessão no Guia do usuário do IAM.

Tags personalizadas

O EKS Pod Identity não pode adicionar outras tags personalizadas à ação AssumeRole que ele mesmo executa. No entanto, as tags que você aplica ao perfil do IAM estão sempre disponíveis no mesmo formato: ${aws:PrincipalTag/ seguidas pela chave, por exemplo, ${aws:PrincipalTag/MyCustomTag}.

nota

As tags adicionadas à sessão por meio da solicitação sts:AssumeRole têm precedência em caso de conflito. Por exemplo, vamos supor que:

  • O Amazon EKS adiciona uma chave eks-cluster-name e um valor my-cluster à sessão quando o EKS assume o perfil de cliente.

  • Você adiciona uma tag eks-cluster-name ao perfil do IAM com o valor my-own-cluster.

Nesse caso, o primeiro tem precedência e o valor da tag eks-cluster-name será my-cluster.