Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'interfaccia della riga di comando per sviluppatori di Azure (azd) supporta il riferimento ai segreti di Azure Key Vault all'interno dell'ambiente di progetto (il .env file). In questo modo è disponibile un'opzione sicura per l'uso di dati sensibili nei azd progetti. Questi segreti si integrano con varie azd funzionalità, ad esempio hook e configurazioni di pipeline CI/CD.
Prerequisiti
- Azure Developer CLI è stata installata.
- Istanza di Azure Key Vault a cui si ha accesso o autorizzazioni per crearne una.
Impostare un segreto di Key Vault
Per impostare un segreto di Key Vault, eseguire il comando azd env set-secret <name>, dove <name> è la chiave nell'ambiente che fa riferimento al segreto di Key Vault. Dopo aver impostato il segreto, azd recupera automaticamente il valore da Key Vault nei seguenti scenari.
Parametri Bicep
Per associare un parametro Bicep al valore di un segreto di Azure Key Vault, seguire questa procedura:
- Annotare il parametro Bicep come protetto usando la
@secure()parola chiave . - Creare un mapping nel
main.parameters.jsonfile che collega il parametro Bicep al nome della chiave corrispondente nell'ambiente che fa riferimento al segreto di Azure Key Vault.
Annotazioni
I segreti di configurazione dell'ambiente non sono al momento supportati quando si usano i file di parametri Bicep (.bicepparam).
Esempio
Da un azd progetto eseguire azd env set-secret MY_SECRET e seguire le istruzioni per selezionare un segreto di Azure Key Vault esistente o crearne uno nuovo. Al termine del comando, la chiave MY_SECRET contiene un riferimento a un segreto di Key Vault. Aggiungere o selezionare il parametro Bicep con cui si vuole usare il valore e designarlo come sicuro:
@secure()
param secureParameter string
Creare il mapping nel main.parameters.json file:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"secureParameter": {
"value": "${MY_SECRET}"
}
}
}
Alla successiva esecuzione di azd up o azd provision, azd usa il segreto di Azure Key Vault come valore per il tuo parametro.
Hook
azd può recuperare automaticamente i segreti di Azure Key Vault quando viene eseguito un hook. Per impostazione predefinita, quando azd esegue un hook, tutte le coppie chiave-valore dell'ambiente del progetto (il .env file) vengono impostate nell'ambiente dell'hook. Tuttavia, i riferimenti ai segreti di Key Vault non vengono risolti automaticamente nei loro valori corrispondenti.
Per risolvere questi riferimenti, seguire questa procedura:
- Creare una mappatura dalla chiave nell'ambiente a una nuova chiave in cui viene risolto il segreto nel Azure Key Vault.
- Usare il campo
secretsnella definizione dell'hook per creare questa mappatura.
Esempio
Da un azd progetto eseguire azd env set-secret MY_SECRET e seguire le istruzioni per selezionare un segreto di Azure Key Vault esistente o crearne uno nuovo. Al termine del comando, la chiave MY_SECRET fa riferimento a un segreto di Key Vault. Creare una definizione hook appropriata per il sistema operativo.
hooks:
preprovision:
run: 'echo ".env value: $MY_SECRET \nResolved secret: $SECRET_RESOLVE"'
shell: sh
interactive: true
secrets:
SECRET_RESOLVE: MY_SECRET
La prossima volta che esegui azd provision, l’hook preprovision verrà eseguito e risolverà MY_SECRET in SECRET_RESOLVE.
Configurazione della pipeline
azd semplifica il processo di configurazione dell'integrazione continua (CI) per l'applicazione. Sia che si usi GitHub o Azure DevOps, eseguire azd pipeline config e seguire la procedura guidata per configurare CI/CD.
Come parte della configurazione automatica, azd crea segreti e variabili per il flusso di lavoro di distribuzione CI/CD. È anche possibile definire variabili e segreti personalizzati usando la pipeline configurazione in azure.yaml. I nomi definiti corrispondono alle chiavi nell'ambiente azd (.env). Se una chiave contiene un riferimento segreto (akvs), azd applica un comportamento diverso a seconda che venga aggiunto come variabile o segreto:
| Avvicinarsi | Valore CI/CD archiviato | Rotazione dei segreti | Ideale per |
|---|---|---|---|
variables |
Informazioni di riferimento su Key Vault (akvs://...) |
Automatico: la pipeline legge sempre il valore più recente da Key Vault. | Quando l'entità del servizio CI/CD ha accesso in lettura a Azure Key Vault. |
secrets |
Valore effettivo del segreto | Manuale: rieseguire azd pipeline config dopo la rotazione. |
Quando non è possibile assegnare l'accesso in lettura a Key Vault all'entità servizio. |
Annotazioni
Quando si usa variables, azd tenta di assegnare un ruolo di accesso in lettura all'entità servizio usata dal flusso di lavoro CI/CD. Se non si dispone di autorizzazioni sufficienti per assegnare il ruolo di lettura per il Key Vault, l'operazione fallisce. Utilizzare invece secrets.
Esempio
Da un progetto inizializzato azd eseguire azd env set-secret SECURE_KEY e seguire le istruzioni. Al termine del comando, azd env get-values mostra il riferimento:
SECURE_KEY="akvs://faa080af-c1d8-40ad-9cce-000000000000/vivazqu-kv/SECURE-KEY-kv-secret"
Aggiungere SECURE_KEY all'elenco variables o secrets in 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
Quando si esegue azd pipeline config, SECURE_KEY viene impostato come variabile CI/CD con il riferimento a Key Vault come valore. Se SECURE_KEY viene eseguito anche il mapping a un parametro di input Bicep o a una definizione di hook, azd risolve automaticamente il valore segreto in fase di esecuzione.