

 **Ayude a mejorar esta página** 

Para contribuir a esta guía del usuario, elija el enlace **Edit this page on GitHub** que se encuentra en el panel derecho de cada página.

# Administración de secretos de aplicaciones con AWS Secrets Manager
<a name="integration-secrets-manager"></a>

 [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/) lo ayuda a administrar credenciales, claves de API y otros secretos durante su ciclo de vida, acceder a ellos y rotarlos. Con Secrets Manager, puede proteger y administrar los secretos utilizados para acceder a los recursos en AWS, en servicios de terceros y en las instalaciones. Para obtener más información, consulte la [Guía del usuario de AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html).

Al utilizar la capacidad de EKS para Argo CD, Secrets Manager proporciona una forma segura de almacenar y recuperar las credenciales de repositorios de Git sin necesidad de codificar información confidencial en la configuración y los recursos de Argo CD. Esta integración es particularmente útil para administrar los tokens de acceso a repositorios privados y las claves de SSH que utiliza Argo CD para sincronizar aplicaciones de los repositorios de Git.

## Uso de AWS Secrets Manager con Argo CD
<a name="integration-secrets-manager-use"></a>

Al utilizar la capacidad de EKS para Argo CD, puede almacenar las credenciales de repositorios de Git en Secrets Manager y configurar Argo CD para recuperarlas. Este enfoque es más seguro que almacenar las credenciales directamente en la configuración de Argo CD o utilizar tokens de acceso personal de larga duración.

 **Requisitos previos** 
+ Un clúster de Amazon EKS con la capacidad de Argo CD activada
+ Credenciales de repositorios de Git almacenadas en AWS Secrets Manager
+ Permisos de IAM configurados para que Argo CD acceda a Secrets Manager

 **Configuración de Argo CD para que utilice Secrets Manager como credenciales de repositorios** 

1. Almacene credenciales de Git en Secrets Manager. Por ejemplo, haga lo siguiente para almacenar un token de acceso personal de GitHub:

   ```
   aws secretsmanager create-secret \
     --name argocd/github-token \
     --secret-string '{"username":"git","password":"ghp_xxxxxxxxxxxx"}'
   ```

1. Asegúrese de que el rol de capacidad de Argo CD tenga permisos para recuperar el secreto:

   ```
   {
     "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**  
El permiso de descifrado de KMS es obligatorio porque Secrets Manager cifra todos los secretos mediante AWS KMS. La condición restringe el descifrado solo a los secretos con el prefijo `argocd/`. Si utiliza la clave administrada de AWS predeterminada para Secrets Manager, este permiso es suficiente. En el caso de las claves de KMS administradas por el cliente, actualice el campo `Resource` con el ARN de clave específico.

1. Configure Argo CD para que utilice las credenciales de Secrets Manager. Para obtener información sobre cómo sincronizar los secretos de Secrets Manager con los secretos de Kubernetes a los que Argo CD puede hacer referencia, consulte [Secret Management](https://argo-cd.readthedocs.io/en/stable/operator-manual/secret-management/) en la documentación de Argo CD.

1. Cree una configuración de repositorios de Argo CD que haga referencia al ARN de secreto:

   ```
   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 obtener más información sobre cómo configurar el acceso al repositorio con Argo CD, consulte [Configuración del acceso al repositorio](argocd-configure-repositories.md).