Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Developer CLI (azd) har stöd för att referera till Azure Key Vault-hemligheter i din projektmiljö ( .env filen). Detta ger ett säkert alternativ för att arbeta med känsliga data i dina azd projekt. Dessa hemligheter integreras med olika azd funktioner, till exempel krokar och CI/CD-pipelinekonfigurationer.
Förutsättningar
- Azure Developer CLI är installerat.
- En Azure Key Vault-instans som du har åtkomst till eller behörighet att skapa en.
Ange en Key Vault-hemlighet
Om du vill ange en Key Vault-hemlighet, kör kommandot azd env set-secret <name>, där <name> är nyckeln i miljön som hänvisar till Key Vault-hemligheten. När du har angett hemligheten azd hämtar automatiskt värdet från Key Vault i följande scenarier.
Bicep-parametrar
Följ dessa steg för att associera en Bicep-parameter med värdet för en Azure Key Vault-hemlighet:
- Kommentera parametern Bicep som skyddad med hjälp av nyckelordet
@secure(). - Skapa en mappning i
main.parameters.jsonfilen som länkar Bicep-parametern till motsvarande nyckelnamn i miljön som refererar till Azure Key Vault-hemligheten.
Anmärkning
Miljöhemligheter stöds för närvarande inte när du använder Bicep-parameterfiler (.bicepparam).
Exempel
Från ett azd projekt kör azd env set-secret MY_SECRET och följer du anvisningarna för att antingen välja en befintlig Azure Key Vault-hemlighet eller skapa en ny. När kommandot har slutförts innehåller nyckeln MY_SECRET en referens till en Key Vault-hemlighet. Lägg till eller välj den Bicep-parameter som du vill använda värdet med och ange det som säkert:
@secure()
param secureParameter string
Skapa mappningen i main.parameters.json filen:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"secureParameter": {
"value": "${MY_SECRET}"
}
}
}
Nästa gång du kör azd up eller azd provisionanvänder azd du Azure Key Vault-hemligheten som värde för parametern.
Hookar
azd kan automatiskt hämta Azure Key Vault-hemligheter när en krok körs. Som standard sätts alla nyckel/värde-par från projektmiljön (.env-filen) i krokens miljö när azd kör en krok. Referenser till Key Vault-hemligheter matchas dock inte automatiskt med motsvarande hemliga värden.
Lös dessa referenser genom att följa dessa steg:
- Skapa en mappning från nyckeln i miljön till en ny nyckel där Key Vault-hemligheten har lösts.
- Använd fältet
secretsi krokdefinitionen för att skapa den här mappningen.
Exempel
Från ett azd projekt kör azd env set-secret MY_SECRET och följer du anvisningarna för att antingen välja en befintlig Azure Key Vault-hemlighet eller skapa en ny. När kommandot har slutförts refererar nyckeln MY_SECRET till en Key Vault-hemlighet. Skapa en krokdefinition som är lämplig för operativsystemet.
hooks:
preprovision:
run: 'echo ".env value: $MY_SECRET \nResolved secret: $SECRET_RESOLVE"'
shell: sh
interactive: true
secrets:
SECRET_RESOLVE: MY_SECRET
Nästa gång du kör azd provision, kommer preprovision-hooken att köras och löser upp MY_SECRET till SECRET_RESOLVE.
Pipelinekonfiguration
azd förenklar processen med att konfigurera kontinuerlig integrering (CI) för ditt program. Oavsett om du använder GitHub eller Azure DevOps kör azd pipeline config och följer du de guidade stegen för att konfigurera CI/CD.
Som en del av den automatiska konfigurationen azd skapar du hemligheter och variabler för ditt CI/CD-distributionsarbetsflöde. Du kan också definiera dina egna variabler och hemligheter med hjälp av konfigurationen pipeline i azure.yaml. De namn som du definierar motsvarar nycklar i din azd miljö (.env). Om en nyckel innehåller en hemlig referens (akvs), azd tillämpas olika beteende beroende på om du lägger till den som en variabel eller en hemlighet:
| Tillvägagångssätt | Lagrat värde för CI/CD | Hemlig rotation | Bäst för |
|---|---|---|---|
variables |
referens till Key Vault (akvs://...) |
Automatisk – pipelinen läser alltid det senaste värdet från Key Vault. | När CI/CD-tjänstens huvudnamn har läsbehörighet för Key Vault. |
secrets |
Verkligt hemligt värde | Manuell – kör azd pipeline config igen efter rotation. |
När du inte kan tilldela Key Vault läsbehörighet till tjänstens huvudkonto. |
Anmärkning
När du använder variables, försöker azd tilldela en läsåtkomstroll till tjänstens huvudkonto som används av CI/CD-arbetsflödet. Om du inte har tillräcklig behörighet för att tilldela läsrollen för Nyckelvalvet misslyckas åtgärden. Använd secrets i stället.
Exempel
Från ett initierat azd projekt, kör azd env set-secret SECURE_KEY och följ anvisningarna. När kommandot har slutförts azd env get-values visar referensen:
SECURE_KEY="akvs://faa080af-c1d8-40ad-9cce-000000000000/vivazqu-kv/SECURE-KEY-kv-secret"
Lägg till SECURE_KEY i antingen variables listan eller secrets i 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
När du kör azd pipeline config anges SECURE_KEY som en CI/CD-variabel, där Key Vault-referensen utgör dess värde. Om SECURE_KEY även mappas till en Bicep-indataparameter eller en hook-definition, löser azd automatiskt det hemliga värdet vid körning.