Desafio 4: IAM Capability Role para ArgoCD
Criar a IAM Role necessária para habilitar o ArgoCD como EKS Capability, seguindo o princípio de least-privilege.
O ArgoCD EKS Capability não roda nos seus worker nodes - ele roda no control plane gerenciado pela AWS. Para isso, a AWS precisa assumir uma role na sua conta. Essa role é chamada de IAM Capability Role e é o ponto de entrada de segurança de toda a integração.
Diferente de uma role comum, ela usa um service principal específico: capabilities.eks.amazonaws.com. Sem a trust policy correta, o ArgoCD simplesmente não consegue ser habilitado no cluster.
Além da trust policy, as permissões da role determinam o que o ArgoCD pode acessar: repositórios no CodeCommit, segredos no Secrets Manager, charts no ECR. O princípio é conceder apenas o que for necessário para o seu caso de uso.
- Trust policy com o service principal
capabilities.eks.amazonaws.com - Permissão para leitura de um repositório específico no CodeCommit (não wildcard)
- Permissão para leitura de segredos no Secrets Manager (usar a managed policy correta)
- Permissão para pull de charts no ECR
Crie a IAM Role ArgoCD-Capability-Role com as permissões mínimas descritas acima. Em seguida, habilite o ArgoCD Capability no seu cluster EKS usando essa role.
Dica: A trust policy precisa do sts:AssumeRole para o service principal correto. Consulte a documentação de segurança das EKS Capabilities para o formato exato.
- Avaliar se Secrets Manager é necessário ou se Kubernetes Secrets são suficientes para o seu caso de uso
- Revisar as policies automáticas criadas pelo EKS no Access Entry e ajustar se necessário
- Explorar o desafio de Cross-account para entender como a Capability Role é usada em deployments multi-conta