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.
La CLI para desarrolladores de Azure (azd) admite la referencia a secretos de Azure Key Vault en el entorno del proyecto (el .env archivo). Esto proporciona una opción segura para trabajar con datos confidenciales en los azd proyectos. Estos secretos se integran con varias azd características, como enlaces y configuraciones de canalización de CI/CD.
Prerrequisitos
- Azure Developer CLI instalado.
- Una instancia de Azure Key Vault a la que tiene acceso o permisos para crear una.
Configure un secreto de Key Vault
Para establecer un secreto de Key Vault, ejecute el azd env set-secret <name> comando , donde <name> es la clave en el entorno que hace referencia al secreto de Key Vault. Después de establecer el secreto, azd recupera automáticamente el valor de Key Vault en los escenarios siguientes.
Parámetros de Bicep
Para asociar un parámetro de Bicep con el valor de un secreto de Azure Key Vault, siga estos pasos:
- Anote el parámetro Bicep como protegido mediante la
@secure()palabra clave . - Cree una asignación en el
main.parameters.jsonarchivo que vincule el parámetro Bicep al nombre de clave correspondiente en el entorno que hace referencia al secreto de Azure Key Vault.
Nota:
Los secretos de entorno no se admiten actualmente cuando se usan archivos de parámetros de Bicep (.bicepparam).
Ejemplo
En un azd proyecto, ejecute azd env set-secret MY_SECRET y siga las indicaciones para seleccionar un secreto de Azure Key Vault existente o crear uno nuevo. Una vez completado el comando, la clave MY_SECRET contiene una referencia a un secreto de Key Vault. Agregue o seleccione el parámetro Bicep con el que desea usar el valor y así lo designe como seguro:
@secure()
param secureParameter string
Cree la asignación en el main.parameters.json archivo:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"secureParameter": {
"value": "${MY_SECRET}"
}
}
}
La próxima vez que ejecute azd up o azd provision, azd use el secreto de Azure Key Vault como valor del parámetro .
Hooks
azd puede recuperar automáticamente los secretos de Azure Key Vault cuando se ejecuta el hook. De forma predeterminada, cuando azd ejecuta un gancho, todos los pares clave-valor del entorno del proyecto (el archivo .env) se establecen en el entorno del gancho. Sin embargo, las referencias a secretos de Key Vault no se resuelven automáticamente en sus valores secretos correspondientes.
Para resolver estas referencias, siga estos pasos:
- Cree una asignación desde la clave del entorno a una nueva clave donde se resuelva el secreto de Key Vault.
- Use el
secretscampo de la definición de enlazador para crear este mapeo.
Ejemplo
En un azd proyecto, ejecute azd env set-secret MY_SECRET y siga las indicaciones para seleccionar un secreto de Azure Key Vault existente o crear uno nuevo. Una vez completado el comando, la clave MY_SECRET hace referencia a un secreto de Key Vault. Cree una definición de enlace adecuada para el sistema operativo.
hooks:
preprovision:
run: 'echo ".env value: $MY_SECRET \nResolved secret: $SECRET_RESOLVE"'
shell: sh
interactive: true
secrets:
SECRET_RESOLVE: MY_SECRET
La próxima vez que ejecute azd provision, el gancho preprovision se ejecuta y resuelve MY_SECRET en SECRET_RESOLVE.
Configuración de canalización
azd simplifica el proceso de configuración de la integración continua (CI) para la aplicación. Tanto si usa GitHub como Azure DevOps, ejecute azd pipeline config y siga los pasos guiados para configurar CI/CD.
Como parte de la configuración automática, azd crea secretos y variables para el flujo de trabajo de implementación de CI/CD. También puede definir sus propias variables y secretos usando la configuración pipeline en azure.yaml. Los nombres que defina se corresponden con las claves del azd entorno (.env). Si una clave contiene una referencia secreta (akvs), azd aplica un comportamiento diferente en función de si se agrega como una variable o un secreto:
| Enfoque | Valor de CI/CD almacenado | Rotación de secretos | Más adecuado para |
|---|---|---|---|
variables |
Referencia de Key Vault (akvs://...) |
Automático: la canalización siempre lee el valor más reciente de Key Vault. | Cuando la entidad de servicio de CI/CD tiene acceso de lectura a Azure Key Vault. |
secrets |
Valor secreto actual | Manual: vuelva a ejecutar azd pipeline config después de la rotación. |
Cuando no se puede asignar acceso de lectura de Key Vault a la entidad de servicio. |
Nota:
Cuando usas variables, azd intenta asignar un rol de acceso de lectura al principal de servicio utilizado por el flujo de trabajo de CI/CD. Si no tiene permisos suficientes para asignar el rol de lectura para Key Vault, se produce un error en la operación. Use secrets en su lugar.
Ejemplo
Desde un proyecto inicializado azd , ejecute azd env set-secret SECURE_KEY y siga las indicaciones. Una vez completado el comando, azd env get-values se muestra la referencia:
SECURE_KEY="akvs://faa080af-c1d8-40ad-9cce-000000000000/vivazqu-kv/SECURE-KEY-kv-secret"
Agregue SECURE_KEY a la lista de variables o secrets en azure.yaml:
# yaml-language-server: $schema=https://raw.githubusercontent.com/Azure/azure-dev/main/schemas/v1.0/azure.yaml.json
name: your-project-name
pipeline:
variables:
- SECURE_KEY
Cuando se ejecuta azd pipeline config, SECURE_KEY se establece como una variable de CI/CD con la referencia de Key Vault como su valor. Si SECURE_KEY también se asigna a un parámetro de entrada de Bicep o a una definición de enlace, azd resuelve automáticamente el valor del secreto en tiempo de ejecución.