

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# ¿Configurando AWS Secrets Manager
<a name="configure-asm"></a>

AWS Secrets Manager le ayuda a proteger los secretos que necesita para acceder a sus aplicaciones, servicios y recursos de TI. El servicio almacena, administra, cifra y rota de forma segura las credenciales de las bases de datos, las claves de API y otros secretos, incluidos los OAuth tokens, y proporciona una integración nativa con Amazon Relational Database Service (Amazon RDS), Amazon Redshift y Amazon DocumentDB. Los usuarios y las aplicaciones recuperan los secretos llamando a Secrets Manager APIs, lo que elimina la necesidad de codificar la información confidencial en texto plano. Secrets Manager incluye permisos de control de acceso detallados y proporciona una ubicación centralizada para auditar la rotación de secretos en entornos Nube de AWS locales y de terceros.

## Requisitos previos para usar Secrets Manager con aplicaciones.NET Framework
<a name="configure-asm-prereq"></a>
+ Un activo Cuenta de AWS
+ [Microsoft Visual Studio](https://visualstudio.microsoft.com/downloads/), instalado
+ AWS Command Line Interface (AWS CLI) versión 2, instalada y configurada para acceder a su Cuenta de AWS (consulte [las instrucciones](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html))
+ AWS Toolkit for Visual Studio, configurado (consulte [las instrucciones](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/setup.html))
+ Un secreto creado y recuperado mediante la consola Secrets Manager o AWS CLI (consulte [las instrucciones](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html))

## Ejemplo
<a name="configure-asm-example"></a>

Para acceder a los secretos de Secrets Manager en la API web ASP.NET Core (.NET 6):

1. Agregue el siguiente NuGet paquete a la API web de ASP.NET Core.

   ```
   AWSSDK.SecretsManager.Caching
   ```

1. En el `Program.cs` archivo, realice los siguientes cambios.
   + Añada el espacio de `Amazon.SecretsManager` nombres (1).

     ```
     using Amazon.SecretsManager;
     ```
   + Registre el servicio (2).

     ```
     builder.Services.AddScoped<IAmazonSecretsManager>(x =>
           new AmazonSecretsManagerClient(RegionEndpoint.EUWest2)
        );
     ```  
![\[Cambios en el archivo Program.cs para acceder a Secrets Manager\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/modernization-net-applications-security/images/asm-program-cs.png)

1. Para recuperar los secretos de Secrets Manager, realice los siguientes cambios en el archivo de clases del controlador (por ejemplo,`ValuesController.cs`). 
   + Añada el constructor (1).

     ```
     private readonly IAmazonSecretsManager _secretsManager;
     
     public SecretsController(IAmazonSecretsManager secretsManager)
     {
         _secretsManager = secretsManager;
     }
     ```
   + Implemente el `GetSecret` método (2).

     ```
     string secretName = "arn:aws:secretsmanager:eu-west-2:111122223333:secret:dev/myapp/tenant-gSj6qd";
     GetSecretValueRequest request = new GetSecretValueRequest();
     request.SecretId = secretName;
     request.VersionStage = "AWSCURRENT";
     Task<GetSecretValueResponse> response = _secretsManager.GetSecretValueAsync(request);
     return Ok(new { Secret = response.Result.SecretString });
     ```

     donde *111122223333* se refiere al ID de la cuenta.  
![\[Cambios en el archivo de clases del controlador para recuperar los secretos de Secrets Manager\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/modernization-net-applications-security/images/asm-controller-class.png)
**nota**  
`secretName`hace referencia al nombre o al nombre de recurso de Amazon (ARN) del secreto. Tras crear un secreto, este valor se puede recuperar de la consola de Secrets Manager. Debe llamar de `secretName` forma dinámica o desde variables de entorno. No codifique este valor en entornos de producción. 