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.
Configuración 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 de la base de datos, las claves de API y otros secretos, incluidos los tokens de OAuth, 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 mediante las API de Secrets Manager, lo que elimina la necesidad de codificar 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
-
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 en la API web ASP.NET principal (.NET 6):
-
Agregue el siguiente NuGet paquete a la API web ASP.NET principal.
AWSSDK.SecretsManager.Caching -
En el
Program.csarchivo, realice los siguientes cambios.-
Añada el espacio de
Amazon.SecretsManagernombres (1).using Amazon.SecretsManager; -
Registre el servicio (2).
builder.Services.AddScoped<IAmazonSecretsManager>(x => new AmazonSecretsManagerClient(RegionEndpoint.EUWest2) );
-
-
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
GetSecretmé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.
nota
secretNamehace 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 desecretNameforma dinámica o desde variables de entorno. No codifique este valor en entornos de producción. -