Compartir vía


Uso de Azure Key Vault para proteger secretos en tiempo de producción

Sugerencia

Este contenido es un extracto del libro electrónico, ".NET Microservices Architecture for Containerized .NET Applications" (Arquitectura de microservicios de .NET para aplicaciones de .NET contenedorizadas), disponible en Documentación de .NET o como un PDF descargable y gratuito que se puede leer sin conexión.

Miniatura de la portada del libro electrónico 'Arquitectura de microservicios de .NET para aplicaciones .NET contenedorizadas'.

Los secretos almacenados como variables de entorno o almacenados por la herramienta Secret Manager siguen almacenados localmente y sin cifrar en el equipo. Una opción más segura para almacenar secretos es Azure Key Vault, que proporciona una ubicación segura y central para almacenar claves y secretos.

El paquete Azure.Extensions.AspNetCore.Configuration.Secrets permite que una aplicación ASP.NET Core lea la información de configuración de Azure Key Vault. Para empezar a usar secretos desde una instancia de Azure Key Vault, siga estos pasos:

  1. Registre la aplicación como una aplicación de Azure AD. (Azure AD administra el acceso a los almacenes de claves). Esto se puede hacer a través del Portal de administración de Azure.\

    Como alternativa, si quiere que la aplicación se autentique mediante un certificado en lugar de una contraseña o un secreto de cliente, puede usar el cmdlet new-AzADApplication de PowerShell. El certificado que se registra en Azure Key Vault solo necesita la clave pública. La aplicación usará la clave privada.

  2. Proporcione a la aplicación registrada acceso a la bóveda de claves mediante la creación de un nuevo principal de servicio. Puede hacerlo con los siguientes comandos de PowerShell:

    $sp = New-AzADServicePrincipal -ApplicationId "<Application ID guid>"
    Set-AzKeyVaultAccessPolicy -VaultName "<VaultName>" -ServicePrincipalName $sp.ServicePrincipalNames[0] -PermissionsToSecrets all -ResourceGroupName "<KeyVault Resource Group>"
    
  3. Incluya el almacén de claves como origen de configuración en la aplicación mediante una llamada al método de extensión AzureKeyVaultConfigurationExtensions.AddAzureKeyVault al crear una IConfigurationRoot instancia.

Tenga en cuenta que, al llamar a AddAzureKeyVault necesitará el Id. de la aplicación registrada y a la que se concedió acceso al almacén de claves en los pasos anteriores. O bien, primero puede ejecutar el comando de la CLI de Azure az login y, después, usar una sobrecarga de AddAzureKeyVault que toma un objeto DefaultAzureCredential en lugar del cliente.

Importante

Se recomienda registrar Azure Key Vault como último proveedor de configuración, por lo que puede invalidar los valores de configuración de los proveedores anteriores.

Recursos adicionales