Ajudar a melhorar esta página
Para contribuir com este guia de usuário, escolha o link Editar esta página no GitHub, disponível no painel direito de cada página.
Conceder acesso dos pods a recursos da AWS baseados em tags
O controle de acesso por atributo (ABAC) concede direitos aos usuários por meio de políticas que combinam os atributos. A Identidade de Pods do EKS 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, você pode 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.
Exemplo de política com tags
Confira abaixo um exemplo de política do IAM que concede permissões s3:GetObject
quando o objeto correspondente é 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}" } } } ] }
Habilitar ou desabilitar tags de sessão
A Identidade de Pods do EKS adiciona um conjunto predefinido de tags de sessão quando assume o perfil. Essas tags de sessão permitem que os administradores criem um único perfil que pode funcionar em vários recursos, permitindo o acesso aos recursos da AWS com base em tags correspondentes.
Habilitar tags de sessão
As tags de sessão são automaticamente habilitadas com a Identidade de Pods do EKS. Nenhuma ação é necessária de sua parte. Por padrão, a Identidade de Pods do EKS anexa um conjunto de tags predefinidas à sua sessão. Para referenciar essas tags nas políticas, use a sintaxe ${aws:PrincipalTag/
seguida pela chave da tag. Por exemplo, .${aws:PrincipalTag/kubernetes-namespace}
-
eks-cluster-arn
-
eks-cluster-name
-
kubernetes-namespace
-
kubernetes-service-account
-
kubernetes-pod-name
-
kubernetes-pod-uid
Desabilitar tags de sessão
A AWS compacta políticas de sessão em linha, ARNs de política gerenciada e tags de sessão em um formato binário compactado que tem um limite separado. Caso receba um erro PackedPolicyTooLarge
indicando que o formato binário compactado excedeu o limite de tamanho, você pode tentar reduzir o tamanho desabilitando as tags de sessão adicionadas pela Identidade de Pods do EKS. Para desabilitar essas tags de sessão, siga estas etapas:
-
Abra o console do Amazon EKS
. -
No painel de navegação à esquerda, selecione Clusters e depois o nome do cluster que você deseja modificar.
-
Escolha a guia Acesso.
-
Nas Associações de Identidade de Pods, escolha o ID da associação que você gostaria de modificar em ID da associação e depois Editar.
-
Em Tags de sessão, escolha Desabilitar tags de sessão.
-
Escolha Salvar alterações.
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/
seguida 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 valormy-cluster
à sessão quando o EKS assume o perfil de cliente. -
Você adiciona uma tag
eks-cluster-name
ao perfil do IAM com o valormy-own-cluster
.
Nesse caso, o primeiro tem precedência e o valor da tag eks-cluster-name
será my-cluster
.