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:AssumeRolepara 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.
-
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação à esquerda, escolha Funções.
-
Pesquise na lista de perfis pelo nome do perfil da funcionalidade (por exemplo,
ACKCapabilityRoleouArgoCDCapabilityRole). -
Se um perfil existir, selecione-o para visualizar as políticas anexadas e a relação de confiança.
-
Escolha Relações de confiança e, em seguida, escolha Editar política de confiança.
-
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.
-
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
-
-
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
Escolha Roles (Funções) e, em seguida, Create Role (Criar função).
-
Em Tipo de entidade confiável, selecione Política de confiança personalizada.
-
Copie e cole a política de confiança da funcionalidade no editor de política de confiança.
-
Escolha Próximo.
-
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.
-
Escolha Próximo.
-
Em Nome do perfil, insira um nome exclusivo para o seu perfil, como
ACKCapabilityRole,ArgoCDCapabilityRoleoukroCapabilityRole. -
Em Description (Descrição), insira um texto descritivo, como
Amazon EKS - ACK capability role. -
Selecione Criar perfil.
-
- AWS CLI
-
-
Copie a política de confiança da funcionalidade para um arquivo chamado
capability-trust-policy.json. -
Crie a função. Substitua
ACKCapabilityRolepelo nome de perfil desejado.aws iam create-role \ --role-name ACKCapabilityRole \ --assume-role-policy-document file://capability-trust-policy.json -
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:
-
O perfil existe na mesma conta que o cluster
-
A política de confiança corresponde à política de confiança da funcionalidade
-
Você conta com a permissão
iam:PassRolepara o perfil
-
- 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
AmazonEKSSecretReaderPolicycom 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.