Ajudar a melhorar esta página
Quer contribuir para este guia do usuário? Escolha o link Editar esta página no GitHub, disponível no painel direito de cada página. Suas contribuições ajudarão a tornar nosso guia do usuário melhor para todos.
Criar entradas de acesso
Antes de criar entradas de acesso, considere o seguinte:
-
Um modo de autenticação definido corretamente. Consulte Alterar o modo de autenticação para usar entradas de acesso.
-
Uma entrada de acesso inclui o nome do recurso da Amazon (ARN) de uma, e somente uma, entidade principal do IAM existente. Uma entidade principal do IAM não pode ser incluída em mais de uma entrada de acesso. Considerações adicionais para o ARN especificado por você:
-
As práticas recomendadas do IAM sugerem que você acesse o cluster usando perfis do IAM que têm credenciais de curto prazo, em vez de usuários do IAM que têm credenciais de longo prazo. Para obter mais informações, consulte Exigir que os usuários humanos usem a federação com um provedor de identidade para acessar a AWS usando credenciais temporárias no Guia do usuário do IAM.
-
Se o ARN for para um perfil do IAM, ele pode incluir um caminho. Os ARNs nas entradas
ConfigMap
aws-auth
não podem incluir um caminho. Por exemplo, seu ARN pode serarn:aws:iam::<111122223333>:role/<development/apps/my-role>
ouarn:aws:iam::<111122223333>:role/<my-role>
. -
Se o tipo da entrada de acesso for diferente de
STANDARD
(consulte a próxima consideração sobre tipos), o ARN deverá estar na mesma conta AWS em que seu cluster está. Se o tipo forSTANDARD
, o ARN poderá estar na mesma conta AWS ou em uma conta diferente da conta em que seu cluster está. -
Não é possível alterar a entidade principal do IAM depois que a entrada de acesso é criada.
-
Se você alguma vez você excluir a entidade principal do IAM com esse ARN, a entrada de acesso não será excluída automaticamente. Recomendamos que você exclua a entrada de acesso com um ARN para uma entidade principal do IAM que você exclua. Se você não excluir a entrada de acesso e nunca recriar a entidade principal do IAM, mesmo que ela tenha o mesmo ARN, a entrada de acesso não funcionará. Isso ocorre porque, embora o ARN seja o mesmo para a entidade principal do IAM recriada, o endereço
roleID
ouuserID
(você pode ver isso com o comandoaws sts get-caller-identity
da AWS CLI) é diferente para a entidade principal do IAM recriada e para a entidade IAM original. Mesmo que você não veja oroleID
ouuserID
da entidade principal do IAM para uma entrada de acesso, o Amazon EKS o armazena com a entrada de acesso.
-
-
Cada entrada de acesso tem um tipo. Você pode especificar
EC2_LINUX
(para um perfil do IAM usado com nós autogerenciados Linux ou Bottlerocket),EC2_Windows
(para um perfil do IAM usado com nós autogerenciados do Windows),FARGATE_LINUX
(para um perfil do IAM usado com o AWS Fargate [Fargate]),HYBRID_LINUX
(para um perfil do IAM usado com nós híbridos) ouSTANDARD
como um tipo. Se você não especificar um tipo, o Amazon EKS definirá automaticamente o tipo comoSTANDARD
. Não é necessário criar uma entrada de acesso para um perfil do IAM usado em um grupo de nós gerenciados ou em um perfil do Fargate. O EKS criará entradas de acesso (se habilitado) ou atualizará o mapa de configuração de autenticação (caso as entradas de acesso não estejam disponíveis).Não é possível alterar o tipo depois que a entrada de acesso é criada.
-
Se o tipo da entrada de acesso for
STANDARD
, será possível especificar um nome de usuário para a entrada de acesso. Se você não especificar um valor para o nome de usuário, o Amazon EKS definirá um dos valores a seguir para você, dependendo do tipo de entrada de acesso e de se a entidade principal do IAM que você especificou é um perfil do IAM ou um usuário do IAM. A menos que você tenha um motivo específico para determinar seu próprio nome de usuário, recomendamos que não especifique um e deixe o Amazon EKS gerá-lo automaticamente para você. Se você especificar seu próprio nome de usuário:-
Não pode começar com
system:
,eks:
,aws:
,amazon:
ouiam:
. -
Se o nome de usuário for para um perfil do IAM, recomendamos que você adicione
{{SessionName}}
ao final do seu nome de usuário. Se você adicionar{{SessionName}}
ao seu nome de usuário, ele deverá incluir dois pontos antes de {{SessionName}}. Quando essa função é assumida, o nome da sessão especificado ao assumir a função é automaticamente passado para o cluster e aparecerá nos logs do CloudTrail. Por exemplo, não é possível ter um nome de usuáriojohn{{SessionName}}
. O nome de usuário teria que ser:john{{SessionName}}
oujo:hn{{SessionName}}
. Os dois pontos precisam vir antes de{{SessionName}}
. O nome de usuário gerado pelo Amazon EKS na tabela a seguir inclui um ARN. Como um ARN inclui dois pontos, ele atende a esse requisito. Os dois pontos não serão necessários se você não incluir{{SessionName}}
no seu nome de usuário. Vale ressaltar que o caractere especial “@” é substituído por “-” no nome da sessão.Tipo de entidade principal do IAM Tipo Valor do nome de usuário que o Amazon EKS define automaticamente Usuário
STANDARD
O ARN do usuário. Example:
arn:aws:iam::<111122223333>:user/<my-user>
Função
STANDARD
O STS ARN da função quando ela é assumida. O Amazon EKS anexa
{{SessionName}}
à função.Example:
arn:aws:sts::<111122223333>:assumed-role/<my-role>/{{SessionName}}
Se o ARN da função que você especificou contiver um caminho, o Amazon EKS o removerá no nome de usuário gerado.
Função
EC2_LINUX
ouEC2_Windows
system:node:{{EC2PrivateDNSName}}
Função
FARGATE_LINUX
system:node:{{SessionName}}
Função
HYBRID_LINUX
system:node:{{SessionName}}
Você poderá alterar o nome de usuário depois que a entrada de acesso for criada.
-
-
Se o tipo de entrada de acesso for
STANDARD
e você quiser usar a autorização RBAC do Kubernetes, poderá adicionar um ou mais nomes de grupos à entrada de acesso. Depois de criar uma entrada de acesso, você pode adicionar e remover nomes de grupos. Para que a entidade principal do IAM tenha acesso aos objetos do Kubernetes em seu cluster, você deve criar e gerenciar objetos de autorização baseada em funções (RBAC) do Kubernetes. Crie objetosRoleBinding
ouClusterRoleBinding
do Kubernetes em seu cluster que especifiquem o nome do grupo como umsubject
parakind: Group
. O Kubernetes autoriza o acesso da entidade principal do IAM a qualquer objeto de cluster que você especificou em um objetoRole
ClusterRole
do Kubernetes que você também especificou noroleRef
da vinculação. Se você especificar nomes de grupo, convém familiarizar-se com os objetos de autorização com base em função (RBAC) do Kubernetes. Para mais informações, consulte Using RBAC Authorization(Usar autorização RBAC) na documentação do Kubernetes. Importante
O Amazon EKS não confirma que nenhum objeto RBAC do Kubernetes existente no seu cluster inclua nenhum dos nomes de grupos que você especificar. Por exemplo, se você criar uma entrada de acesso para um grupo que ainda não existe, o EKS criará o grupo em vez de retornar um erro.
Em vez de, ou além de, o Kubernetes autorizar o acesso da entidade principal do IAM aos objetos do Kubernetes em seu cluster, você pode associar as políticas de acesso do Amazon EKS a uma entrada de acesso. O Amazon EKS autoriza as entidades principais do IAM a acessar objetos do Kubernetes em seu cluster com as permissões na política de acesso. Você pode definir o escopo das permissões de uma política de acesso aos namespaces do Kubernetes que você especificar. O uso de políticas de acesso não exige que você gerencie objetos RBAC do Kubernetes. Para ter mais informações, consulte Associar políticas de acesso a entradas de acesso.
-
Se você criar uma entrada de acesso com o tipo
EC2_LINUX
ouEC2_Windows
, a entidade principal do IAM que criou a entrada de acesso deverá ter a permissãoiam:PassRole
. Para obter mais informações, consulte Conceder permissões ao usuário para passar uma função a um produto da AWS no Guia do usuário do IAM. -
Semelhante ao comportamento padrão do IAM, a criação e as atualizações de entradas de acesso acabam sendo consistentes e podem levar alguns segundos para serem efetivadas após o retorno bem-sucedido da chamada inicial de API. Suas aplicações devem ser projetadas para levar em conta esses possíveis atrasos. Recomendamos que você não inclua criações ou atualizações de entrada de acesso nos caminhos de código críticos de alta disponibilidade da sua aplicação. Em vez disso, faça alterações do em uma rotina de inicialização ou de configuração separada que você executa com menos frequência. Além disso, certifique-se de verificar se as alterações foram propagadas antes que os fluxos de trabalho de produção dependam delas.
-
As entradas de acesso não oferecem suporte para perfis vinculados ao serviço. Não é possível criar entradas de acesso nas quais o ARN da entidade principal corresponde a um perfil vinculado ao serviço. É possível identificar perfis vinculados ao serviço pelo ARN deles, que está no formato
arn:aws:iam::*:role/aws-service-role/*
.
Você pode criar uma entrada de acesso usando o AWS Management Console ou a AWS CLI.
AWS Management Console
-
Abra o console do Amazon EKS
. -
Escolha o nome do cluster em que você deseja criar uma entrada de acesso.
-
Escolha a guia Acesso.
-
Selecione Criar entrada de acesso.
-
Para a entidade principal do IAM, selecione um perfil ou usuário do IAM existente. As práticas recomendadas do IAM sugerem que você acesse o cluster usando perfis do IAM que têm credenciais de curto prazo, em vez de usuários do IAM que têm credenciais de longo prazo. Para obter mais informações, consulte Exigir que os usuários humanos usem a federação com um provedor de identidade para acessar a AWS usando credenciais temporárias no Guia do usuário do IAM.
-
Em Tipo, se a entrada de acesso for para a função de nó usada para nós autogerenciados do Amazon EC2, selecione EC2 Linux ou EC2 Windows. Caso contrário, aceite o padrão (Padrão).
-
Se o Tipo escolhido for Padrão e você quiser especificar um nome de usuário, insira o nome de usuário.
-
Se o Tipo escolhido for Padrão e você quiser usar a autorização RBAC do Kubernetes para a entidade principal do IAM, especifique um ou mais nomes para Grupos. Se você não especificar nenhum nome de grupo e quiser usar a autorização do Amazon EKS, poderá associar uma política de acesso em uma etapa posterior ou após a criação da entrada de acesso.
-
(Opcional) Para Tags, atribua rótulos à entrada de acesso. Por exemplo, para facilitar a localização de todos os recursos com a mesma tag.
-
Escolha Próximo.
-
Na página Adicionar política de acesso, se o tipo escolhido for Padrão e você quiser que o Amazon EKS autorize a entidade principal do IAM a ter permissões para os objetos do Kubernetes em seu cluster, execute as etapas a seguir. Caso contrário, escolha Next.
-
Em Nome da política, escolha uma política de acesso. Você não pode ver as permissões das políticas de acesso, mas elas incluem permissões semelhantes às dos objetos
ClusterRole
voltados para o usuário do Kubernetes. Para obter mais informações, consulte User-facing rolesna documentação do Kubernetes. -
Escolha uma das seguintes opções:
-
Cluster: escolha essa opção se quiser que o Amazon EKS autorize a entidade principal do IAM a ter as permissões na política de acesso para todos os objetos do Kubernetes em seu cluster.
-
Namespace do Kubernetes: escolha essa opção se quiser que o Amazon EKS autorize a entidade principal do IAM a ter as permissões na política de acesso para todos os objetos do Kubernetes em um namespace do Kubernetes específico em seu cluster. Em Namespace, insira o nome do namespace do Kubernetes no seu cluster. Se quiser adicionar mais namespaces, escolha Adicionar novo namespace e insira o nome do namespace.
-
-
Se você quiser adicionar mais políticas, escolha Adicionar política. Você pode definir o escopo de cada política de forma diferente, mas cada política só pode ser adicionada uma vez.
-
Escolha Próximo.
-
-
Revise a configuração da entrada de acesso. Se algo parecer errado, escolha Anterior para voltar às etapas anteriores e corrigir o erro. Se a configuração estiver correta, escolha Criar.
AWS CLI
-
Instale a AWS CLI, conforme descrito em Instalar, no Guia do usuário da AWS Command Line Interface.
-
Para criar uma entrada de acesso Você pode usar qualquer um dos exemplos a seguir para criar entradas de acesso:
-
Crie uma entrada de acesso para um grupo de nós autogerenciado do Amazon EC2 Linux. Substitua
my-cluster
pelo nome do cluster,111122223333
pelo ID da conta da AWS eEKS-my-cluster-self-managed-ng-1
pelo nome do perfil do IAM do nó. Caso seu grupo de nós seja um grupo de nós do Windows, substituaEC2_LINUX
porEC2_Windows
.aws eks create-access-entry --cluster-name my-cluster --principal-arn arn:aws:iam::111122223333:role/EKS-my-cluster-self-managed-ng-1 --type EC2_LINUX
Você não pode usar a opção
--kubernetes-groups
ao especificar um tipo diferente deSTANDARD
. Você não pode associar uma política de acesso a essa entrada de acesso porque seu tipo é um valor diferente deSTANDARD
. -
Crie uma entrada de acesso que permita um perfil do IAM que não é usado para um grupo de nós autogerenciado do Amazon EC2, com o qual você deseja que o Kubernetes autorize o acesso ao seu cluster. Substitua
my-cluster
pelo nome do cluster,111122223333
pela ID da conta AWS emy-role
pelo nome do perfil do IAM. SubstituaEspectadores
pelo nome de um grupo que você especificou em um objetoRoleBinding
ouClusterRoleBinding
do Kubernetes em seu cluster.aws eks create-access-entry --cluster-name my-cluster --principal-arn arn:aws:iam::111122223333:role/my-role --type STANDARD --user Viewers --kubernetes-groups Viewers
-
Crie uma entrada de acesso que permita que um usuário do IAM se autentique no seu cluster. Esse exemplo é fornecido porque isso é possível, embora as práticas recomendadas do IAM sugiram acessar seu cluster usando perfis do IAM que têm credenciais de curto prazo, em vez de usuários do IAM que têm credenciais de longo prazo. Para obter mais informações, consulte Exigir que os usuários humanos usem a federação com um provedor de identidade para acessar a AWS usando credenciais temporárias no Guia do usuário do IAM.
aws eks create-access-entry --cluster-name my-cluster --principal-arn arn:aws:iam::111122223333:user/my-user --type STANDARD --username my-user
Se quiser que esse usuário tenha mais acesso ao seu cluster do que as permissões nas funções de descoberta da API do Kubernetes, você precisará associar uma política de acesso à entrada de acesso, já que a opção
--kubernetes-groups
não é usada. Para obter mais informações, consulte Associar políticas de acesso a entradas de acesso e API discovery rolesna documentação do Kubernetes.
-