Função do IAM do cluster do Amazon EKS - Amazon EKS

Função do IAM do cluster do Amazon EKS

Um perfil do IAM de cluster do Amazon EKS é necessário para cada cluster. Os clusters do Kubernetes gerenciados pelo Amazon EKS usam esse perfil para gerenciar nós, e o provedor de nuvem herdado usa esse perfil para criar balanceadores de carga com Elastic Load Balancing para serviços.

Antes de criar clusters do Amazon EKS, você deve criar uma função do IAM com uma das seguintes políticas do IAM:

  • AmazonEKSClusterPolicy

  • Uma política do IAM personalizada. As permissões mínimas a seguir permitem que o cluster Kubernetes gerencie nós, mas não permitem que o provedor de nuvem legado crie balanceadores de carga com o Elastic Load Balancing. Sua política do IAM personalizada deve ter pelo menos as seguintes permissões:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "ForAnyValue:StringLike": { "aws:TagKeys": "kubernetes.io/cluster/*" } } }, { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeAvailabilityZones", "ec2:DescribeInstanceTopology", "kms:DescribeKey" ], "Resource": "*" } ] }
nota

Antes de 3 de outubro de 2023, AmazoneksClusterPolicy era exigido no perfil do IAM para cada cluster.

Antes de 16 de abril de 2020, AmazonEKSServicePolicy e AmazonEKSClusterPolicy eram obrigatórios, e o nome sugerido para o perfil era eksServiceRole. Com o perfil vinculado ao serviço AWSServiceRoleForAmazonEKS, a política AmazonEKSServicePolicy não será mais necessária para clusters criados em ou após 16 de abril de 2020.

Verificar se há uma função de cluster existente

É possível usar o procedimento a seguir para verificar se a conta já tem a função do cluster do Amazon EKS.

  1. Abra o console do IAM, em https://console.aws.amazon.com/iam/.

  2. No painel de navegação à esquerda, escolha Roles.

  3. Pesquise eksClusterRole na lista de perfis. Se não houver uma função que inclua eksClusterRole, consulte Criar uma função para o cluster do Amazon EKS para criar a função. Se houver uma função que inclua eksClusterRole, selecione-a para visualizar as políticas anexadas.

  4. Escolha Permissões.

  5. Verifique se a política gerenciada AmazonEKSClusterPolicy está anexada à função. Se a política estiver anexada, a função do cluster do Amazon EKS estará configurada corretamente.

  6. Escolha Trust relationships (Relacionamentos de confiança) e, em seguida, escolha Edit trust policy (Editar política de confiança).

  7. 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": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Criar uma função para o cluster do Amazon EKS

Você pode usar o AWS Management Console ou a CLI AWS para criar o perfil de cluster.

AWS Management Console
  1. Abra o console do IAM, em https://console.aws.amazon.com/iam/.

  2. Escolha Roles (Funções) e, em seguida, Create Role (Criar função).

  3. Em Tipo de entidade confiável, selecione Serviço da AWS.

  4. Na lista suspensa Casos de uso para outros serviços AWS, escolha EKS.

  5. Escolha EKS - Cluster para o caso de uso e escolha Next (Próximo).

  6. Na guia Add permissions (Adicionar permissões), escolha Next (Próximo).

  7. Em Role name (Nome da função), insira um nome exclusivo para a função, como eksClusterRole.

  8. Em Description (Descrição), insira um texto descritivo, como Amazon EKS - Cluster role.

  9. Selecione Criar função.

AWS CLI
  1. Copie o conteúdo a seguir em um arquivo chamado cluster-trust-policy.json.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Crie a função. Você pode substituir eksClusterRole por qualquer nome que desejar.

    aws iam create-role \ --role-name eksClusterRole \ --assume-role-policy-document file://"cluster-trust-policy.json"
  3. Anexe a política do IAM necessária à função.

    aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy \ --role-name eksClusterRole