Considerações sobre o Argo CD - 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.

Considerações sobre o Argo CD

Neste tópico, são apresentadas as principais considerações para usar a funcionalidade do EKS para o Argo CD, incluindo planejamento, permissões, autenticação e padrões de implantação em vários clusters.

Planejamento

Antes de implantar o Argo CD, considere o seguinte:

Estratégia de repositório: determine o local em que os manifestos das suas aplicações serão armazenados (por exemplo, CodeCommit, GitHub, GitLab ou Bitbucket). Planeje a estrutura do repositório e a estratégia de ramificação para diferentes ambientes.

Estratégia de RBAC: defina quais equipes ou usuários terão acesso como administrador, editor ou visualizador. Relacione essas permissões aos grupos do Centro de Identidade da AWS ou aos perfis do Argo CD.

Arquitetura de vários clusters: determine se você gerenciará vários clusters usando uma única instância do Argo CD. Avalie a possibilidade de empregar um cluster de gerenciamento dedicado para o Argo CD.

Organização das aplicações: planeje como você estruturará Applications e ApplicationSets. Avalie a utilização de projetos para estruturar as aplicações de acordo com a equipe ou o ambiente.

Políticas de sincronização: defina se as aplicações serão sincronizadas automaticamente ou se precisarão de aprovação manual. A sincronização automática é comum em ambientes de desenvolvimento, e a manual em ambientes de produção.

Permissões

Para obter informações detalhadas sobre os perfis de funcionalidades do IAM, as políticas de confiança e as práticas recomendadas de segurança, consulte Perfil do IAM para a funcionalidade do Amazon EKS e Considerações sobre segurança para funcionalidades do EKS.

Visão geral do perfil da funcionalidade do IAM

Ao criar um recurso de funcionalidade do Argo CD, você fornece um perfil da funcionalidade do IAM. Diferentemente do ACK, o Argo CD gerencia principalmente recursos do Kubernetes e não recursos da AWS diretamente. No entanto, o perfil de funcionalidade do IAM é necessário para:

  • Acessar repositórios do Git privados no CodeCommit

  • Integrar-se ao Centro de Identidade da AWS para autenticação

  • Acessar segredos no AWS Secrets Manager (se configurado)

  • Realizar implantações entre clusters para outros clusters de EKS

Integração com o CodeCommit

Se você estiver usando repositórios do CodeCommit, anexe uma política com permissões de leitura:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecommit:GitPull" ], "Resource": "*" } ] }
Importante

Para uso em ambientes de produção, restrinja o campo Resource a ARNs específicos de repositórios, em vez de usar "*".

Exemplo:

"Resource": "arn:aws:codecommit:us-west-2:111122223333:my-app-repo"

Isso limita o acesso à funcionalidade do Argo CD somente aos repositórios necessários para gerenciamento.

Integração do Secrets Manager

Se você estiver armazenando credenciais de repositório no Secrets Manager, anexe a política gerenciada para acesso de leitura:

arn:aws:iam::aws:policy/AWSSecretsManagerClientReadOnlyAccess

Essa política inclui as permissões necessárias: secretsmanager:GetSecretValue, secretsmanager:DescribeSecret e perissões de descriptografia do KMS.

Configuração básica

Para a funcionalidade básica do CD Argo com repositórios do Git públicos, nenhuma política do IAM adicional é necessária além da política de confiança.

Autenticação

Integração com o Centro de Identidade da AWS

A funcionalidade gerenciada do Argo CD integra-se diretamente ao Centro de Identidade da AWS (anteriormente AWS SSO), possibilitando o uso do provedor de identidade atual para autenticação.

Ao configurar a integração com o Centro de Identidade da AWS:

  1. Os usuários acessam a interface do usuário do Argo CD por meio do console do EKS

  2. A autenticação é realizada por meio do Centro de Identidade da AWS (que pode ser federado ao seu provedor de identidades corporativo)

  3. O Centro de Identidade da AWS fornece informações de usuários e grupos ao Argo CD

  4. O Argo CD mapeia usuários e grupos para perfis de RBAC com base na sua configuração

  5. Os usuários visualizam somente as aplicações e os recursos aos quais têm permissão de acessar

Simplificação do acesso com conjuntos de permissões do Centro de Identidade

O Centro de Identidade da AWS fornece dois caminhos distintos de autenticação ao trabalhar com o Argo CD:

Autenticação da API do Argo CD: o Centro de Identidade fornece autenticação de SSO para a interface do usuário do Argo CD e para a API. Essa configuração é realizada por meio dos mapeamentos de perfis de RBAC da funcionalidade do Argo CD.

Acesso ao cluster de EKS: a funcionalidade do Argo CD usa o perfil do IAM fornecido pelo cliente para se autenticar com clusters de EKS por meio de entradas de acesso. Essas entradas de acesso podem ser configuradas manualmente para conceder ou revogar permissões.

É possível usar conjuntos de permissões do Centro de Identidade para simplificar o gerenciamento de identidades, ao permitir que uma única identidade tenha acesso ao Argo CD e aos clusters de EKS. Isso reduz o esforço operacional, pois você precisa gerenciar apenas uma identidade nos dois sistemas, em vez de manter credenciais distintas para o acesso ao Argo CD e ao cluster.

Mapeamentos de perfis de RBAC

O Argo CD tem perfis integrados que você pode mapear para usuários e grupos do Centro de Identidade da AWS:

ADMIN: acesso total a todas as aplicações e configurações. Pode criar, atualizar e excluir aplicações. Pode gerenciar a configuração do Argo CD.

EDITOR: pode criar e modificar aplicações. Não pode alterar as configurações do Argo CD nem excluir aplicações.

VIEWER: acesso somente leitura às aplicações. Pode visualizar o status e o histórico das aplicações. Não pode fazer alterações.

nota

Os nomes dos perfis diferenciam maiúsculas de minúsculas e devem estar em letras maiúsculas (ADMIN, EDITOR e VIEWER).

Importante

A integração das funcionalidades do EKS com o Centro de Identidade da AWS fornece suporte para até mil identidades por funcionalidade do Argo CD. Uma identidade pode ser um usuário ou um grupo.

Implantações em vários clusters

A funcionalidade gerenciada do Argo CD fornece suporte a implantações em vários clusters, possibilitando o gerenciamento de aplicações em clusters de desenvolvimento, preparação e produção usando uma única instância do Argo CD.

Funcionamento da estratégia de vários clusters

Ao registrar clusters adicionais com o Argo CD:

  1. Você cria segredos de cluster que fazem referência aos clusters de destino do EKS pelo ARN

  2. Você cria Applications ou ApplicationSets direcionados a diferentes clusters

  3. O Argo CD estabelece conexão com cada cluster para implantar e monitorar os recursos

  4. Você visualiza e gerencia todos os clusters usando uma única interface do usuário do Argo CD

Pré-requisitos para a estratégia de vários clusters

Antes de registrar clusters adicionais:

  • Crie uma entrada de acesso no cluster de destino para o perfil da funcionalidade para o Argo CD

  • Garanta a conectividade de rede entre a funcionalidade do Argo CD e os clusters de destino

  • Verifique as permissões do IAM para acessar os clusters de destino

Registro de um cluster

Registre clusters usando o Kubernetes Secrets no namespace argocd.

Obtenha o ARN do cluster de destino. Substitua region-code pela região da AWS em que seu cluster de destino está e substitua target-cluster pelo nome do cluster de destino.

aws eks describe-cluster \ --region region-code \ --name target-cluster \ --query 'cluster.arn' \ --output text

Crie um segredo de cluster usando o ARN do cluster:

apiVersion: v1 kind: Secret metadata: name: target-cluster namespace: argocd labels: argocd.argoproj.io/secret-type: cluster type: Opaque stringData: name: target-cluster server: arn:aws:eks:us-west-2:111122223333:cluster/target-cluster project: default
Importante

Use o ARN do cluster de EKS no campo server, e não o URL do servidor da API do Kubernetes. A funcionalidade gerenciada requer ARNs para identificar os clusters de destino.

Execute a aplicação do segredo:

kubectl apply -f cluster-secret.yaml

Configuração de uma entrada de acesso no cluster de destino

O cluster de destino deve ter uma entrada de acesso que conceda ao perfil da funcionalidade para o Argo CD permissão para implantar aplicações. Substitua region-code pela região da AWS em que seu cluster de destino está, substitua target-cluster pelo nome do cluster de destino e substitua o ARN pelo ARN do perfil da funcionalidade para o Argo CD.

aws eks create-access-entry \ --region region-code \ --cluster-name target-cluster \ --principal-arn arn:aws:iam::[.replaceable]111122223333:role/ArgoCDCapabilityRole \ --type STANDARD \ --kubernetes-groups system:masters
nota

Para uso em ambientes de produção, considere usar grupos do Kubernetes mais restritivos em vez de system:masters.

Acesso a clusters privados

A funcionalidade gerenciada do Argo CD pode ser implantada em clusters de EKS totalmente privados, sem exigir emparelhamento da VPC ou configurações de rede especializadas. A AWS gerencia automaticamente a conectividade entre a funcionalidade do Argo CD e os clusters remotos privados. Certifique-se de que seus controles de acesso ao repositório e as políticas RBAC do Argo CD estejam configurados corretamente.

Implantação entre contas

Para implantações entre contas, adicione o perfil da funcionalidade do IAM para o Argo CD proveniente da conta de origem à entrada de acesso do cluster de EKS da conta de destino:

  1. Na conta de destino, crie uma entrada de acesso no cluster de destino do EKS

  2. Use o ARN do perfil da funcionalidade do IAM para o Argo CD da conta de origem como a entidade principal

  3. Configure as permissões apropriadas de RBAC do Kubernetes para a entrada de acesso

  4. Registre o cluster de destino no Argo CD usando o ARN do cluster de EKS

Não é necessária a criação de perfis do IAM adicionais nem a configuração de política de confiança. As entradas de acesso do EKS gerenciam o acesso entre contas.

Práticas recomendadas

Use fontes declarativas como a fonte da verdade: armazene todos os manifestos das suas aplicações em fontes declarativas (repositórios do Git, registros do Helm ou imagens OCI), permitindo controle de versão, trilhas de auditoria e colaboração.

Implemente o RBAC adequado: use a integração com o Centro de Identidade da AWS para definir quem tem permissão para acessar e gerenciar aplicações no Argo CD. O Argo CD oferece controle de acesso detalhado para recursos dentro das Applications (Deployments, Pods, ConfigMaps e Secrets).

Use ApplicationSets para realizar implantações em diversos ambientes: use ApplicationSets para implantar aplicações em vários clusters ou namespaces com configurações diferentes.

Gerenciamento de ciclo de vida

Políticas de sincronização de aplicações

Defina como o Argo CD deve sincronizar as aplicações:

Sincronização manual: as aplicações exigem aprovação manual para sincronizar alterações. Recomendado para ambientes de produção.

Sincronização automática: as aplicações são sincronizadas automaticamente quando alterações no Git são detectadas. Comum em ambientes de desenvolvimento e de preparação.

Autorreparação: reverte automaticamente alterações manuais feitas no cluster. Garante que o estado do cluster corresponda ao do Git.

Supressão: exclui automaticamente recursos removidos do Git. Use com cautela, pois isso pode excluir recursos.

Integridade da aplicação

O Argo CD monitora continuamente a integridade das aplicações:

  • Íntegro: todos os recursos estão funcionando conforme esperado

  • Em progresso: os recursos estão sendo criados ou atualizados

  • Degradado: alguns recursos não são íntegros

  • Suspenso: a aplicação está pausada

  • Ausente: os recursos estão ausentes no cluster

Janelas de sincronização

Configure as janelas de sincronização para gerenciar os períodos em que as aplicações podem ser sincronizadas:

  • Permitir sincronizações apenas durante janelas de manutenção

  • Bloquear sincronizações durante o horário comercial

  • Agendar sincronizações automáticas para horários específicos

  • Use janelas de sincronização em situações em que você precise fazer alterações e interromper qualquer sincronização (cenários de quebra de vidro)

Configuração de webhooks para sincronizações mais ágeis

Por padrão, o Argo CD consulta os repositórios do Git a cada seis minutos para detectar alterações. Para tornar as implantações mais responsivas, configure webhooks do Git que acionam sincronizações imediatamente quando houver alterações.

Os webhooks oferecem vários benefícios, como:

  • Resposta imediata de sincronização quando o código é enviado (segundos em vez de minutos)

  • Redução da sobrecarga da sondagem e melhor performance do sistema

  • Uso mais eficiente dos limites de taxa da API

  • Melhoria na experiência do usuário com feedback mais rápido

Endpoint do webhook

O URL do webhook segue o padrão ${serverUrl}/api/webhook, onde serverUrl é o URL do seu servidor de Argo CD.

Por exemplo, se o URL do seu servidor de Argo CD é https://abc123.eks-capabilities.us-west-2.amazonaws.com, o URL de webhook será:

https://abc123.eks-capabilities.us-west-2.amazonaws.com/api/webhook

Configuração de webhooks por provedor do Git

GitHub: nas configurações do repositório, adicione um webhook com o URL do webhook do Argo CD. Defina o tipo de conteúdo como application/json e selecione “Just the push event”.

GitLab: nas configurações do projeto, adicione um webhook com o URL do webhook do Argo CD. Ative “Push events” e, opcionalmente, “Tag push events”.

Bitbucket: nas configurações do repositório, adicione um webhook com o URL do webhook do Argo CD. Selecione “Repository push” como o acionador.

CodeCommit: crie uma regra do Amazon EventBridge que seja acionada por alterações no estado do repositório do CodeCommit e envie notificações para o endpoint do webhook do Argo CD.

Para obter instruções detalhadas de configuração do webhook, consulte Argo CD Webhook Configuration.

nota

Webhooks funcionam como complemento para a sondagem, mas não a substituem. O Argo CD continua a consultar os repositórios como mecanismo de fallback, caso as notificações do webhook não sejam recebidas.

Próximas etapas