Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los secretos de nivel de aplicación son valores de configuración que el código de función y los enlaces consumen en tiempo de ejecución. A diferencia de las claves de acceso de Functions, que protegen los puntos de conexión HTTP, los secretos de nivel de aplicación son las credenciales que la aplicación necesita para conectarse a otros servicios.
Algunos ejemplos habituales:
-
Conexiones de infraestructura -
AzureWebJobsStoragecadenas de conexión, activadores y enlaces para Event Hubs, Service Bus, Cosmos DB y SQL. - Credenciales empresariales : claves de API de terceros, contraseñas de base de datos, tokens de plataforma SaaS.
- Configuración personalizada – cualquier valor confidencial que lea el código de las variables de entorno.
Elección de una opción de almacenamiento
Azure Container Apps ofrece dos maneras de almacenar secretos de nivel de aplicación:
| Option | Más adecuado para | Administración centralizada | Rotación automática | Registro de auditoría |
|---|---|---|---|---|
| Secretos de Container Apps | Desarrollo y pruebas, cargas de trabajo sencillas de aplicación única | No: limitado a una sola aplicación | No | Solo registros de actividad |
| Referencias de Key Vault | Producción, multiaplicación, cumplimiento | Sí: en todas las aplicaciones | Sí (URI sin versión) | Diagnóstico completo de Key Vault |
Tip
Comience con los secretos de Container Apps para simplificar. Utilice referencias de Key Vault cuando necesite la administración centralizada, la rotación automática o la auditoría de nivel de cumplimiento.
Prerequisites
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- CLI de Azure versión 2.40.0 o posterior.
- Una aplicación Azure Functions existente en Container Apps o permisos para crear una.
Uso de secretos de Container Apps
Container Apps almacena secretos en la matriz de configuration.secrets la aplicación y cifra los valores en reposo. Puede hacer referencia a secretos en variables de entorno, reglas de escalado, montajes de volúmenes y componentes de Dapr.
Almacenar un secreto
Vaya a la aplicación contenedora de Functions en el portal Azure.
En Configuración, seleccione Secretos.
Seleccione Agregar y escriba los valores siguientes:
Propiedad Value Nombre Un nombre secreto como database-password. Utilice solo letras minúsculas, números y guiones.Type Secretos de Container Apps Valor Su valor secreto. Selecciona Agregar.
Hacer referencia al secreto en una variable de entorno
Después de almacenar un secreto, haga referencia a él en una variable de entorno para que el código de función pueda leerlo.
En la aplicación contenedora de Functions, en Aplicación, seleccione Revisiones y réplicas.
Seleccione Crear nueva revisión.
En la pestaña Contenedor , seleccione el contenedor y, a continuación, seleccione Editar.
Seleccione la pestaña Variables de entorno y, a continuación, seleccione Agregar.
Escriba los siguientes valores:
Propiedad Value Nombre DATABASE_PASSWORDFuente Hacer referencia a un secreto Valor database-passwordSeleccione Guardar y, a continuación, seleccione Crear para implementar la nueva revisión.
Comprobación del secreto
Confirme que la función puede leer el valor del secreto invocando la función y comprobando que se ejecuta sin errores relacionados con la configuración que falta.
curl "https://<FUNCTIONS_APP_URL>/api/<FUNCTION_NAME>"
Importante
Container Apps inserta el valor secreto en la variable de entorno en tiempo de ejecución. El código lee la variable de entorno y no accede directamente al almacén de secretos.
Limitaciones
Los secretos de Container Apps tienen las siguientes limitaciones:
- Sin centralización : cada aplicación de contenedor almacena sus propios secretos por separado.
- Sin rotación automática : debe actualizar los valores de secreto manualmente.
- Sin expiración : los secretos no expiran automáticamente.
- Auditoría limitada : solo registros de actividad básicos; no se ha detallado la auditoría de acceso a secretos.
- Sin control de versiones : ningún historial de versiones secreto integrado.
- Comportamiento de actualización : cambiar un secreto no desencadena una nueva revisión. Debe crear una nueva revisión o reiniciar las revisiones existentes para recoger los cambios.
Uso de referencias de Key Vault
Key Vault referencias permiten que la aplicación contenedora extraiga secretos directamente de Azure Key Vault mediante una identidad administrada. Este enfoque proporciona administración centralizada, rotación automática y auditoría de nivel de cumplimiento.
Paso 1: Configuración de la identidad administrada
La aplicación contenedora necesita una identidad administrada para autenticarse en Key Vault sin credenciales.
Vaya a la aplicación contenedora de Functions en el portal Azure.
En Configuración, seleccione Identidad.
En la pestaña Asignado por el sistema , establezca Estado en Activado.
Seleccione Guardar y, a continuación, seleccione Sí para confirmar.
Paso 2: Concesión de acceso Key Vault
Asigne el rol Key Vault Secrets User a la identidad administrada para que pueda leer secretos.
Vaya al Key Vault en el portal Azure.
En Configuración, seleccione Control de acceso (IAM).
Seleccione Agregar>Agregar asignación de rol.
En la pestaña Role, seleccione Usuario de secretos de Key Vault.
Seleccione Siguiente.
En la pestaña Miembros, seleccione Identidad administrada y, a continuación, seleccione Seleccionar miembros.
En el panel Seleccionar identidades administradas , seleccione la suscripción, elija Aplicación contenedora para el tipo de identidad administrada, seleccione la aplicación contenedora de Functions y, a continuación, seleccione Seleccionar.
Seleccione Revisar y asignar.
Paso 3: Almacenar un secreto en Key Vault
En el Key Vault, en Objects, seleccione Secrets.
Seleccione Generar/Importar.
Escriba los siguientes valores:
Propiedad Value Opciones de carga Manual Nombre Un nombre de secreto, por ejemplo DatabasePassword, .Valor Su valor secreto. Selecciona Crear.
Seleccione el secreto recién creado y, a continuación, seleccione la versión actual.
Copie el URI del Secret Identifier. Use el URI sin versión (sin el segmento de versión final) para habilitar la rotación automática.
Paso 4: Hacer referencia al secreto de Key Vault en Container Apps
Cree un secreto de Container Apps que haga referencia al secreto de Key Vault y, a continuación, vincule a una variable de entorno.
Vaya a la aplicación contenedora de Functions. En Configuración, seleccione Secretos.
Selecciona Agregar.
En Agregar secreto, escriba los valores siguientes:
Propiedad Value Nombre database-passwordType Referencia de Key Vault URL de secreto de Key Vault URI del identificador secreto que copió. Identidad Identidad asignada por el sistema (o la identidad asignada por el usuario). Selecciona Agregar.
En Aplicación, seleccione Revisiones y réplicas. Cree una nueva revisión con la variable
DATABASE_PASSWORDde entorno que hace referencia aldatabase-passwordsecreto.
Paso 5: Comprobar la referencia de Key Vault
Invoque la función y confirme que se ejecuta sin errores relacionados con la configuración que falta.
curl "https://<FUNCTIONS_APP_URL>/api/<FUNCTION_NAME>"
Rotación automática de secretos
Al hacer referencia a un secreto de Key Vault con un URI sin versión, Container Apps recupera automáticamente la versión más reciente:
-
URI sin versión fija:
https://myvault.vault.azure.net/secrets/mysecretsiempre utiliza la versión más reciente. -
URI versionado:
https://myvault.vault.azure.net/secrets/mysecret/ec96f020...- anclado a una versión específica.
Con los URI sin versión, Container Apps comprueba si hay nuevas versiones en un plazo de 30 minutos y reinicia automáticamente las revisiones activas para seleccionar el nuevo valor.