Perfil do IAM para a funcionalidade do Amazon EKS - Amazon EKS

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.

Perfil do IAM para a funcionalidade do Amazon EKS

As funcionalidades do EKS exigem a configuração de um perfil do IAM para a funcionalidade (ou perfil da funcionalidade). As funcionalidades usam esse perfil para realizar ações em serviços da AWS e para acessar recursos do Kubernetes no cluster por meio de entradas de acesso criadas automaticamente.

Antes que você possa especificar um perfil da funcionalidade durante a criação desta, é necessário criar o perfil do IAM com a política de confiança e as permissões adequadas ao tipo de funcionalidade. Assim que este perfil do IAM for criado, ele poderá ser reaproveitado para qualquer quantidade de recursos da funcionalidade.

Requisitos do perfil da funcionalidade

O perfil da funcionalidade deve atender aos seguintes requisitos:

  • O perfil deve estar na mesma conta da AWS que o cluster e o recurso da funcionalidade

  • O perfil deve ter uma política de confiança que permita ao serviço de funcionalidades do EKS assumir o perfil

  • O perfil deve ter permissões apropriadas para o tipo de funcionalidade e para os requisitos do caso de uso (consulte Permissões por tipo de funcionalidade)

Política de confiança para perfis da funcionalidade

Todos os perfis da funcionalidade devem incluir a seguinte política de confiança:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "capabilities.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] }

Esta política de confiança autoriza o EKS a:

  • Assumir o perfil para executar operações de API da AWS

  • Marcar sessões para fins de auditoria e rastreamento

Permissões por tipo de funcionalidade

As permissões do IAM exigidas variam conforme a funcionalidade que você usa e o modelo de implantação.

nota

Para implantações em ambientes de produção usando seletores de perfil do IAM com o ACK, ou ao usar o kro ou o Argo CD sem integração com serviços da AWS, o perfil da funcionalidade talvez não requeira permissões do IAM além da política de confiança.

kro (Kube Resource Orchestrator)

Não são necessárias permissões do IAM. É possível criar um perfil da funcionalidade sem políticas vinculadas. O kro requer apenas permissões de RBAC do Kubernetes para a criação e o gerenciamento de recursos do Kubernetes.

AWS Controlllers for Kubernetes (ACK) da)

O ACK fornece suporte a dois modelos de permissão:

  • Configuração simples para ambientes de desenvolvimento e teste: adicione permissões para os serviços da AWS diretamente ao perfil da funcionalidade. Esta opção é ideal para começar a usar, em implantações realizadas em uma única conta ou quando todos os usuários necessitam das mesmas permissões.

  • Prática recomendada para ambientes de produção: use seletores de perfil do IAM para implementar o acesso de privilégio mínimo. Com essa abordagem, o perfil da funcionalidade precisa apenas da permissão sts:AssumeRole para assumir perfis específicos de serviço. Você não adiciona permissões de serviços da AWS (como o S3 ou o RDS) diretamente ao perfil da funcionalidade. Essas permissões são concedidas a perfis do IAM individuais que são mapeados para namespaces específicos.

    Os seletores de perfil do IAM permitem:

    • Isolamento de permissões em nível de namespace

    • Gerenciamento de recursos entre contas

    • Perfis do IAM exclusivos para cada equipe

    • Modelo de segurança com privilégio mínimo

      Exemplo de política de perfil da funcionalidade para a abordagem de seletor de perfil do IAM:

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": [ "arn:aws:iam::111122223333:role/ACK-S3-Role", "arn:aws:iam::111122223333:role/ACK-RDS-Role", "arn:aws:iam::444455556666:role/ACKCrossAccountRole" ] } ] }

      Para obter detalhes sobre a configuração de permissões do ACK, incluindo os seletores de perfil do IAM, consulte Configuração das permissões do ACK.

Argo CD

Por padrão, nenhuma permissão do IAM é necessária. Entretanto, permissões adicionais podem ser exigidas para:

  • AWS Secrets Manager: se estiver usando o Secrets Manager para armazenar credenciais de repositório do Git

  • AWS CodeConnections: se usar o CodeConnections para realizar autenticação em repositórios do Git

    Exemplo de política para o Secrets Manager e para o CodeConnections:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "arn:aws:secretsmanager:region:account-id:secret:argocd/*" }, { "Effect": "Allow", "Action": [ "codeconnections:UseConnection", "codeconnections:GetConnection" ], "Resource": "arn:aws:codeconnections:region:account-id:connection/*" } ] }

    Para obter detalhes sobre os requisitos da permissão do Argo CD, consulte Considerações sobre o Argo CD.

Verificação da existência de um perfil da funcionalidade

Você pode usar o procedimento apresentado a seguir para verificar se a conta já tem um perfil do IAM para a funcionalidade que seja adequado ao seu caso de uso.

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

  2. No painel de navegação à esquerda, escolha Funções.

  3. Pesquise na lista de perfis pelo nome do perfil da funcionalidade (por exemplo, ACKCapabilityRole ou ArgoCDCapabilityRole).

  4. Se um perfil existir, selecione-o para visualizar as políticas anexadas e a relação de confiança.

  5. Escolha Relações de confiança e, em seguida, escolha Editar política de confiança.

  6. Verifique se a relação de confiança corresponde à política de confiança da funcionalidade. Se não houver correspondência, atualize a política de confiança.

  7. Selecione a guia Permissões e valide se o perfil conta com as permissões adequadas ao seu tipo de funcionalidade e às necessidades do caso de uso.

Criação de um perfil do IAM para a funcionalidade

É possível usar o Console de gerenciamento da AWS ou a AWS CLI para a criação de um perfil da funcionalidade.

Console de gerenciamento da AWS
  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 Política de confiança personalizada.

  4. Copie e cole a política de confiança da funcionalidade no editor de política de confiança.

  5. Escolha Próximo.

  6. Na guia Adicionar permissões, selecione ou crie as políticas apropriadas para o seu tipo de funcionalidade (consulte Permissões por tipo de funcionalidade). Para o kro, você pode pular esta etapa.

  7. Escolha Próximo.

  8. Em Nome do perfil, insira um nome exclusivo para o seu perfil, comoACKCapabilityRole, ArgoCDCapabilityRole ou kroCapabilityRole.

  9. Em Description (Descrição), insira um texto descritivo, como Amazon EKS - ACK capability role.

  10. Selecione Criar perfil.

AWS CLI
  1. Copie a política de confiança da funcionalidade para um arquivo chamado capability-trust-policy.json.

  2. Crie a função. Substitua ACKCapabilityRole pelo nome de perfil desejado.

    aws iam create-role \ --role-name ACKCapabilityRole \ --assume-role-policy-document file://capability-trust-policy.json
  3. Anexe as políticas do IAM necessárias ao perfil. Para o ACK, anexe as políticas dos serviços da AWS que você deseja gerenciar. Para o Argo CD, anexe políticas para o Secrets Manager ou CodeConnections, se necessário. Para o kro, você pode pular esta etapa.

    Exemplo para o ACK com permissões de S3:

    aws iam put-role-policy \ --role-name ACKCapabilityRole \ --policy-name S3Management \ --policy-document file://s3-policy.json

Solução de problemas em perfis da funcionalidade

Criação da funcionalidade apresentou falhas com o erro “Perfil do IAM inválido”

Verificar se:

Funcionalidade apresenta erros de permissão

Verificar se:

  • O perfil tem as permissões do IAM necessárias para o tipo de funcionalidade

  • A entrada de acesso existe no cluster para o perfil

  • As permissões adicionais do Kubernetes estão configuradas, se necessário (consulte Permissões adicionais do Kubernetes)

Recursos do ACK apresentam falhas com erros de “Permissão negada”

Verificar se:

  • O perfil tem as permissões do IAM necessárias para o caso de uso

  • Para controladores do ACK que referenciam segredos, certifique-se de ter associado a política de entrada de acesso AmazonEKSSecretReaderPolicy com escopo para os namespaces apropriados.

Para obter mais orientações sobre a solução de problemas, consulte Considerações sobre segurança para funcionalidades do EKS.