Perfil do IAM para execução de Pod do Amazon EKS - Amazon EKS

Perfil do IAM para execução de Pod do Amazon EKS

A perfil de execução do Amazon EKS Pod é necessária para executar o Pods na infraestrutura do AWS Fargate.

Quando o cluster cria Pods na infraestrutura do AWS Fargate, os componentes que estão em execução nessa infraestrutura do Fargate devem fazer as chamadas para as APIs da AWS em seu nome. Isso ocorre para que eles possam realizar ações como extrair imagens de contêiner do Amazon ECR ou encaminhar logs para outros serviços da AWS. A função de execução de Pod do Amazon EKS fornece as permissões do IAM para isso.

Ao criar um perfil do Fargate, é necessário especificar uma função de execução de Pod para os componentes do Amazon EKS que são executados na infraestrutura do Fargate usando o perfil. Essa função é adicionada ao Controle de acesso com base em função (RBAC) do Kubernetes do cluster para autorização. Isso permite que o kubelet que está sendo executado na infraestrutura do Fargate seja registrado no cluster do Amazon EKS para aparecer no cluster como um nó.

nota

O perfil do Fargate deve ter uma função do IAM diferente dos grupos de nós do Amazon EC2.

Importante

Os contêineres em execução no Pod do Fargate não podem assumir as permissões do IAM associadas a uma função de execução de Pod. Para conceder aos contêineres do seu Fargate Pod permissões de acesso a outros serviços da AWS, é necessário usar os perfis do IAM para as contas de serviço.

Antes de criar um perfil do Fargate, você deve criar um perfil do IAM com AmazonEKSFargatePodExecutionRolePolicy.

Verifique se existe uma função de execução de Pod configurada corretamente

É possível usar o procedimento a seguir para verificar se a conta já tem uma função de execução de Pod do Amazon EKS configurada corretamente. Para evitar um problema de segurança de representante confuso, é importante que a função restrinja o acesso com base no SourceArn. É possível modificar a função de execução conforme necessário de forma a incluir suporte para perfis do Fargate em outros clusters.

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

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

  3. Na página Roles (Funções), procure AmazonEKSFargatePodExecutionRole na lista de funções. Se a função não existir, consulte Criar a função de execução de Pod do Amazon EKS para criá-la. Se a função existir, escolha-a.

  4. Na página AmazonEKSFargatePodExecutionRole, faça o seguinte:

    1. Escolha Permissões.

    2. Certifique-se de que a política gerenciada pela Amazon AmazonEKSFargatePodExecutionRolePolicy esteja associada ao perfil.

    3. Escolha Relações de Confiança.

    4. Escolha Edit trust policy (Editar política de confiança).

  5. Na página Edit trust policy (Editar política de confiança), verifique se a relação de confiança contém a política a seguir e tem uma linha para perfis do Fargate no cluster. Em caso afirmativo, escolha Cancel (Cancelar).

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*" } }, "Principal": { "Service": "eks-fargate-pods.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

    Se a política corresponder, mas não tiver uma linha especificando os perfis do Fargate no seu cluster, será possível adicionar a seguinte linha sobre o objeto ArnLike. Substitua region-code pela região AWS em que seu cluster está, 111122223333 pelo ID da sua conta e my-cluster pelo nome do seu cluster.

    "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*",

    Se a política não corresponder, copie a política anterior completa para o formulário e escolha Atualizar política. Substitua region-code pela região da AWS em que seu cluster se encontra. Se você quiser usar o mesmo perfil em todas as regiões da AWS da sua conta, substitua region-code por *. Substitua 111122223333 pelo ID da sua conta e my-cluster pelo nome do seu cluster. Se quiser usar o mesmo perfil para todos os clusters da sua conta, substitua my-cluster por \*.

Criar a função de execução de Pod do Amazon EKS

Se você ainda não tiver o perfil de execução do Amazon EKS Pod para o seu cluster, poderá usar o AWS Management Console ou a AWS CLI para criá-la.

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

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

  3. Na página Roles (Funções), selecione Create role (Criar função).

  4. Na página Select trusted entity (Selecionar entidade confiável), faça o seguinte:

    1. Na seção Tipo de entidade confiável), escolha Service da AWS.

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

    3. Escolha EKS - Fargate Pod .

    4. Escolha Próximo.

  5. Na página Add permissions (Adicionar permissões), escolha Next (Próximo).

  6. Na página Name, review, and create (Nomear, revisar e criar), faça o seguinte:

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

    2. Em Adicionar tags (Opcional), adicione metadados ao perfil anexando tags como pares chave-valor. Para obter mais informações sobre o uso de tags no IAM, consulte Marcar recursos do IAM no Guia do usuário do IAM.

    3. Selecione Criar perfil.

  7. Na página Roles (Funções), procure AmazonEKSFargatePodExecutionRole na lista de funções. Selecione o perfil de .

  8. Na página AmazonEKSFargatePodExecutionRole, faça o seguinte:

    1. Escolha Relações de Confiança.

    2. Escolha Edit trust policy (Editar política de confiança).

  9. Na página Edit trust policy (Editar política de confiança), faça o seguinte:

    1. Copie e cole o conteúdo a seguir no formulário Edit trust policy (Editar política de confiança). Substitua region-code pela região da AWS em que seu cluster se encontra. Se você quiser usar o mesmo perfil em todas as regiões da AWS da sua conta, substitua region-code por *. Substitua 111122223333 pelo ID da sua conta e my-cluster pelo nome do seu cluster. Se quiser usar o mesmo perfil para todos os clusters da sua conta, substitua my-cluster por \*.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*" } }, "Principal": { "Service": "eks-fargate-pods.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Escolha Atualizar política.

AWS CLI
  1. Copie e cole o conteúdo a seguir em um arquivo denominado pod-execution-role-trust-policy.json. Substitua region-code pela região da AWS em que seu cluster se encontra. Se você quiser usar o mesmo perfil em todas as regiões da AWS da sua conta, substitua region-code por *. Substitua 111122223333 pelo ID da sua conta e my-cluster pelo nome do seu cluster. Se quiser usar o mesmo perfil para todos os clusters da sua conta, substitua my-cluster por \*.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*" } }, "Principal": { "Service": "eks-fargate-pods.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Crie um perfil do IAM de execução de Pod.

    aws iam create-role \ --role-name AmazonEKSFargatePodExecutionRole \ --assume-role-policy-document file://"pod-execution-role-trust-policy.json"
  3. Anexe a política de IAM gerenciada pelo Amazon EKS à função.

    aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy \ --role-name AmazonEKSFargatePodExecutionRole