Perfil do IAM em nós do Amazon EKS
O daemon kubelet
do nó do Amazon EKS chama as APIs da AWS em seu nome. Os nós recebem permissões para essas chamadas de API por meio de um perfil de instância do IAM e políticas associadas. Antes de iniciar os nós e registrá-los em um cluster, você deve criar um perfil do IAM para uso desses nós quando eles forem iniciados. Esse requisito se aplica a nós executados com a AMI otimizada para Amazon EKS fornecida pela Amazon ou com qualquer outra AMI do nó que você pretende usar. Além disso, este requisito se aplica tanto aos grupos de nós gerenciados quanto aos nós autogerenciados.
nota
Não é possível usar a mesma função usada para criar clusters.
Antes de criar os nós, é necessário criar um perfil do IAM com as seguintes permissões:
-
Permissões para que o
kubelet
descreva os recursos do Amazon EC2 na VPC, conforme fornecido pela políticaAmazonEKSWorkerNodePolicy
. Esta política também fornece as permissões para o Amazon EKS Pod Identity Agent. -
Permissões para que o
kubelet
use imagens de contêiner do Amazon Elastic Container Registry (Amazon ECR), como as fornecidas pela políticaAmazonEC2ContainerRegistryReadOnly
. As permissões para usar imagens de contêiner do Amazon Elastic Container Registry (Amazon ECR) são necessárias porque os complementos integrados para a rede executam pods que usam imagens de contêiner do Amazon ECR. -
(Opcional) Permissões para que o Amazon EKS Pod Identity Agent use a ação
eks-auth:AssumeRoleForPodIdentity
para recuperar credenciais para pods. Se você não usa o AmazonEKSWorkerNodePolicy, forneça esta permissão além das permissões do EC2 para usar o EKS Pod Identity. -
(Opcional) Se você não usa o IRSA ou o EKS Pod Identity para conceder permissões aos pods da VPC CNI, forneça permissões para a VPC CNI na função da instância. É possível usar tanto a política gerenciada
AmazonEKS_CNI_Policy
(caso você tenha criado o seu cluster com a famíliaIPv4
) ou uma política IPv6 criada por você (caso tenha criado o seu cluster com a famíliaIPv6
). Contudo, em vez de anexar a política à essa função, recomendamos que você anexe a política a uma função separada usada especificamente para o complemento CNI da Amazon VPC. Para obter mais informações sobre a criação de uma função separada para o complemento CNI da Amazon VPC, consulte Configuração do Amazon VPC CNI plugin for Kubernetes a fim de usar perfis do IAM para contas de serviço (IRSA).
nota
Antes de 3 de outubro de 2023, AmazonEKSWorkerNodePolicy
e AmazonEC2ContainerRegistryReadOnly
eram obrigatórios no perfil do IAM para cada grupo de nós gerenciados.
Os grupos de nós do Amazon EC2 devem ter uma função do IAM diferente do perfil do Fargate. Para obter mais informações, consulte Perfil do IAM para execução de Pod do Amazon EKS.
Verificar se há uma função existente do nó
Use o procedimento a seguir para verificar se a conta já tem a função de nó do Amazon EKS.
Para verificar a eksNodeRole
no console do IAM;
Abra o console IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação à esquerda, escolha Roles.
-
Procure
eksNodeRole
,AmazonEKSNodeRole
ouNodeInstanceRole
na lista de funções. Se não houver uma função com um desses nomes, consulte Criação de uma função para a função do IAM de nó do Amazon EKS para criar a função. Se houver uma função que contenhaeksNodeRole
,AmazonEKSNodeRole
ouNodeInstanceRole
, selecione-a para visualizar as políticas anexadas. -
Escolha Permissões.
-
Assegure-se de que as políticas gerenciadas AmazonEKSWorkerNodePolicy e AmazonEC2ContainerRegistryReadOnly estejam anexadas à função ou que uma política personalizada seja anexada com as permissões mínimas necessárias
nota
Se a AmazonEKS_CNI_Policy estiver anexada à função, recomendamos removê-la e anexá-la a um perfil do IAM mapeado para a conta do serviço do Kubernetes do
aws-node
. Para obter mais informações, consulte Configuração do Amazon VPC CNI plugin for Kubernetes a fim de usar perfis do IAM para contas de serviço (IRSA). -
Escolha Trust relationships (Relacionamentos de confiança) e, em seguida, escolha Edit trust policy (Editar política de confiança).
-
Verifique se o relacionamento de confiança contém a seguinte política: Se o relacionamento de confiança corresponder à seguinte política, escolha Cancel (Cancelar). Se o relacionamento de confiança não corresponder, copie a política para a janela Edit trust policy (Editar política de confiança) e escolha Update policy (Atualizar política).
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Criação de uma função para a função do IAM de nó do Amazon EKS
É possível criar a função do IAM de nós com o AWS Management Console ou a AWS CLI.