Gerenciamento de segredos de aplicações com o AWS Secrets Manager - 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.

Gerenciamento de segredos de aplicações com o AWS Secrets Manager

O AWS Secrets Manager permite gerenciar, acessar e rotacionar credenciais, chaves de API e outros segredos durante todo o ciclo de vida. Com o Secrets Manager, é possível proteger e gerenciar os segredos usados para acessar recursos na AWS, em serviços de terceiros e no ambiente on-premises. Para obter mais informações, consulte o Guia do usuário do AWS Secrets Manager.

Ao usar a funcionalidade do EKS para o Argo CD, o Secrets Manager fornece uma forma segura de armazenar e recuperar credenciais de repositórios do Git, sem a inclusão de dados sensíveis diretamente na configuração e nos recursos do Argo CD. Essa integração é particularmente vantajosa para gerenciar tokens de acesso a repositórios privados e chaves SSH que o Argo CD usa para sincronizar aplicações de repositórios do Git.

Uso do AWS Secrets Manager com o Argo CD

Ao usar a funcionalidade do EKS para o Argo CD, é possível armazenar credenciais de repositórios do Git no Secrets Manager e configurar o Argo CD para recuperá-las. Essa abordagem é mais segura do que armazenar credenciais diretamente na configuração do Argo CD ou usar tokens de acesso pessoal de longa duração.

Pré-requisitos

  • Um cluster do Amazon EKS com a funcionalidade para o Argo CD habilitada

  • Credenciais de repositórios do Git armazenadas no AWS Secrets Manager

  • Permissões do IAM configuradas para que o Argo CD acesse o Secrets Manager

Como configurar o Argo CD para usar o Secrets Manager para credenciais do repositório

  1. Armazene suas credenciais do Git no Secrets Manager. Por exemplo, para armazenar um token de acesso pessoal do GitHub:

    aws secretsmanager create-secret \ --name argocd/github-token \ --secret-string '{"username":"git","password":"ghp_xxxxxxxxxxxx"}'
  2. Certifique-se de que o perfil da funcionalidade para o Argo CD tenha permissões para recuperar o segredo:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "arn:aws:secretsmanager:region:account-id:secret:argocd/github-token*" }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:region:account-id:key/*", "Condition": { "StringLike": { "kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:region:account-id:secret:argocd/*", "kms:ViaService": "secretsmanager.*.amazonaws.com" } } } ] }
    nota

    A permissão de descriptografia do KMS é necessária porque o Secrets Manager criptografa todos os segredos usando o AWS KMS. A condição restringe a descriptografia apenas a segredos com o prefixo argocd/. Se você usar a chave gerenciada pela AWS padrão para o Secrets Manager, essa permissão será suficiente. Para chaves do KMS gerenciadas pelo cliente, atualize o campo Resource com o ARN correspondente.

  3. Configure o Argo CD para usar as credenciais do Secrets Manager. Para obter informações sobre a sincronização de segredos do Secrets Manager para os segredos do Kubernetes que o Argo CD pode referenciar, consulte Secret Management na documentação do Argo CD.

  4. Crie uma configuração de repositório do Argo CD que faça referência ao ARN do segredo:

    apiVersion: v1 kind: Secret metadata: name: private-repo namespace: argocd labels: argocd.argoproj.io/secret-type: repository stringData: type: git url: https://github.com/org/repo secretArn: arn:aws:secretsmanager:region:account-id:secret:argocd/github-token

Para obter mais informações sobre como configurar o acesso a repositórios com o Argo CD, consulte Configuração do acesso ao repositório.