Configurando AWS Secrets Manager - AWS Guía prescriptiva

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

AWS Secrets Manager le ayuda a proteger los secretos que necesita para acceder a sus aplicaciones, servicios y recursos de TI. El servicio almacena, gestiona, cifra y rota de forma segura las credenciales, API claves y otros datos secretos de la base de datos, incluidos los OAuth tokens, y proporciona una integración nativa con Amazon Relational Database Service (Amazon), Amazon Redshift y RDS Amazon DocumentDB. Los usuarios y las aplicaciones recuperan los secretos llamando a Secrets ManagerAPIs, 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. NETAplicaciones marco

  • Un activo Cuenta de AWS

  • Microsoft Visual Studio, instalado

  • AWS Command Line Interface (AWS CLI) versión 2, instalada y configurada para acceder a su Cuenta de AWS (consulte las instrucciones)

  • AWS Toolkit for Visual Studio, configurado (consulte las instrucciones)

  • Un secreto creado y recuperado mediante la consola Secrets Manager o AWS CLI (consulte las instrucciones)

Ejemplo

Para acceder a los secretos de Secrets Manager enASP. NETWeb básica API (. NET6):

  1. Añada el siguiente NuGet paquete alASP. NETWeb principalAPI.

    AWSSDK.SecretsManager.Caching
  2. 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
  3. 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
    nota

    secretNamehace referencia al nombre o al nombre del 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.