

 **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
<a name="integration-secrets-manager"></a>

 O [AWS Secrets Manager](https://aws.amazon.com/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](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html).

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
<a name="integration-secrets-manager-use"></a>

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"}'
   ```

1. 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.

1. 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](https://argo-cd.readthedocs.io/en/stable/operator-manual/secret-management/) na documentação do Argo CD.

1. 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](argocd-configure-repositories.md).