Azure Key Vault: gestión centralizada de secretos y certificados
Azure Key Vault es el servicio de Azure para gestionar secretos, claves criptográficas y certificados. Centraliza lo que de otro modo estaría disperso por variables de entorno, archivos de configuración y bases de datos — con auditoría completa de cada acceso.
Crear un Key Vault y añadir secretos
az keyvault create \
--name kv-bconcepts-prod \
--resource-group rg-shared \
--location westeurope \
--enable-rbac-authorization true # RBAC en lugar de Access Policies (recomendado)
az keyvault secret set \
--vault-name kv-bconcepts-prod \
--name "SqlConnectionString" \
--value "Server=sqlprod.database.windows.net;..."
Control de acceso con RBAC
az role assignment create \
--role "Key Vault Secrets User" \
--assignee <managed-identity-principal-id> \
--scope /subscriptions/.../vaults/kv-bconcepts-prod
Acceder a secretos en Python
from azure.identity import DefaultAzureCredential
from azure.keyvault.secrets import SecretClient
credential = SecretClient(
vault_url="https://kv-bconcepts-prod.vault.azure.net/",
credential=DefaultAzureCredential()
)
conn_str = credential.get_secret("SqlConnectionString").value
Referencias en App Service / Function App
Configure referencias directas en el portal en Application Settings:
@Microsoft.KeyVault(SecretUri=https://kv-bconcepts-prod.vault.azure.net/secrets/SqlConnectionString/)
La aplicación lee el valor como si fuera una variable de entorno normal — el Key Vault es transparente.
Soft Delete y Purge Protection
Active siempre --enable-soft-delete (por defecto en vaults nuevos) y --enable-purge-protection. Un secreto eliminado accidentalmente puede recuperarse dentro del periodo de retención (7-90 días).
Conclusión
Key Vault es indispensable en cualquier arquitectura Azure de producción. Sustituye todas las demás formas de almacenar secretos, ofrece auditoría completa e se integra de forma nativa con Managed Identities para autenticación sin credenciales.