Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Azure Developer CLI (azd) unterstützt das Verweisen auf geheime Azure Key Vault-Schlüssel in Ihrer Projektumgebung (die .env Datei). Dies bietet eine sichere Option zum Arbeiten mit vertraulichen Daten in Ihren azd Projekten. Diese geheimen Schlüssel lassen sich in verschiedene azd Features integrieren, z. B. Hooks und CI/CD-Pipelinekonfigurationen.
Voraussetzungen
- Azure Developer CLI installiert.
- Eine Azure Key Vault-Instanz , auf die Sie Zugriff haben, oder Berechtigungen zum Erstellen einer Instanz.
Festlegen eines Schlüsseltresorgeheimnisses
Um ein Schlüsseltresor-Geheimnis festzulegen, führen Sie den azd env set-secret <name> Befehl aus, wobei <name> der Schlüssel in der Umgebung ist, der auf das Schlüsseltresor-Geheimnis verweist. Nachdem Sie das Geheimnis festgelegt haben, ruft azd den Wert in den folgenden Szenarien automatisch aus dem Key Vault ab.
Bicep-Parameter
Führen Sie die folgenden Schritte aus, um einen Bicep-Parameter dem Wert eines geheimen Azure Key Vault-Schlüssels zuzuordnen:
- Kommentieren Sie den Bicep-Parameter mithilfe des
@secure()Schlüsselworts als gesichert. - Erstellen Sie eine Zuordnung in der
main.parameters.jsonDatei, die den Bicep-Parameter mit dem entsprechenden Schlüsselnamen in der Umgebung verknüpft, die auf den geheimen Azure Key Vault-Schlüssel verweist.
Hinweis
Umgebungsgeheimnisse werden derzeit nicht unterstützt, wenn Sie Bicep-Parameterdateien (.bicepparam) verwenden.
Beispiel
Führen Sie in einem azd-Projekt azd env set-secret MY_SECRET aus und folgen Sie den Eingabeaufforderungen, um entweder ein vorhandenes Geheimnis des Azure Key Vault auszuwählen oder ein neues zu erstellen. Nach Abschluss des Befehls enthält der Schlüssel MY_SECRET einen Verweis auf ein Key Vault-Geheimnis. Fügen Sie den Bicep-Parameter hinzu, mit dem Sie den Wert verwenden möchten, oder wählen Sie ihn als sicher aus:
@secure()
param secureParameter string
Erstellen Sie die Zuordnung in der main.parameters.json Datei:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"secureParameter": {
"value": "${MY_SECRET}"
}
}
}
Wenn Sie das nächste Mal ausführen azd up oder azd provision, azd verwendet den geheimen Azure Key Vault-Schlüssel als Wert für Ihren Parameter.
Hooks
azd kann automatisch Azure Key Vault-Geheimnisse abrufen, wenn ein Hook ausgeführt wird. Standardmäßig werden beim Ausführen eines Hooks azd alle Schlüssel-Wert-Paare aus der Projektumgebung (der .env Datei) in der Umgebung des Hooks festgelegt. Verweise auf Key Vault-Geheimnisse werden jedoch nicht automatisch in ihre entsprechenden geheimen Werte aufgelöst.
Führen Sie die folgenden Schritte aus, um diese Verweise zu beheben:
- Erstellen Sie eine Zuordnung vom Schlüssel in der Umgebung zu einem neuen Schlüssel, bei dem das Geheimnis im Schlüsseltresor aufgelöst wird.
- Verwenden Sie das
secretsFeld in der Hookdefinition, um diese Zuordnung zu erstellen.
Beispiel
Führen Sie in einem azd Projekt azd env set-secret MY_SECRET aus und folgen Sie den Anweisungen, um entweder ein vorhandenes Azure Key Vault Geheimnis auszuwählen oder ein neues zu erstellen. Nach Abschluss des Befehls verweist der Schlüssel MY_SECRET auf ein Key Vault-Geheimnis. Erstellen Sie eine Hook-Definition, die für Ihr Betriebssystem geeignet ist.
hooks:
preprovision:
run: 'echo ".env value: $MY_SECRET \nResolved secret: $SECRET_RESOLVE"'
shell: sh
interactive: true
secrets:
SECRET_RESOLVE: MY_SECRET
Wenn Sie das nächste Mal azd provision ausführen, wird der preprovision-Hook ausgeführt und löst MY_SECRET in SECRET_RESOLVE auf.
Pipeline-Konfiguration
azd vereinfacht den Prozess der Einrichtung einer kontinuierlichen Integration (Continuous Integration, CI) für Ihre Anwendung. Unabhängig davon, ob Sie GitHub oder Azure DevOps verwenden, führen Sie azd pipeline config aus und folgen Sie den geführten Schritten, um CI/CD zu konfigurieren.
Im Rahmen der automatischen Konfiguration azd werden geheime Schlüssel und Variablen für Ihren CI/CD-Bereitstellungsworkflow erstellt. Sie können auch eigene Variablen und geheime Schlüssel mithilfe der pipeline Konfiguration in azure.yamldefinieren. Die namen, die Sie definieren, entsprechen Schlüsseln in Ihrer azd Umgebung (.env). Wenn ein Schlüssel einen geheimen Verweis enthält (akvs), azd wendet ein anderes Verhalten an, je nachdem, ob Sie ihn als Variable oder einen geheimen Schlüssel hinzufügen:
| Vorgehensweise | CI/CD-Wert gespeichert | Geheimnisrotation | Am besten geeignet für: |
|---|---|---|---|
variables |
Key Vault Referenz (akvs://...) |
Automatisch – Pipeline liest immer den neuesten Wert aus Key Vault. | Wenn der CI/CD-Dienstprinzipal über Lesezugriff auf Key Vault verfügt. |
secrets |
Tatsächlicher geheimer Wert | Manuell – wiederholen azd pipeline config Sie den Vorgang nach der Drehung. |
Wenn Sie dem Dienstprinzipal keinen Lesezugriff auf Key Vault zuweisen können. |
Hinweis
Wenn Sie variables verwenden, versucht azd, dem Dienstprinzipal, der vom CI/CD-Workflow verwendet wird, eine Lesezugriffsrolle zuzuweisen. Sollten Sie nicht über ausreichende Berechtigungen verfügen, um die Leserolle für den Key Vault zuzuweisen, schlägt der Vorgang fehl. Verwenden Sie stattdessen secrets.
Beispiel
Führen Sie in einem initialisierten azd Projekt azd env set-secret SECURE_KEY aus und folgen Sie den Anweisungen. Nach Abschluss des Befehls wird azd env get-values der Verweis angezeigt:
SECURE_KEY="akvs://faa080af-c1d8-40ad-9cce-000000000000/vivazqu-kv/SECURE-KEY-kv-secret"
Fügen Sie SECURE_KEY entweder der variables-Liste oder der secrets-Liste in azure.yaml hinzu.
# 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
Wenn Sie azd pipeline config ausführen, wird SECURE_KEY als CI/CD-Variable mit dem Key Vault-Verweis als Wert gesetzt. Wenn SECURE_KEY auch einem Bicep-Eingabeparameter oder einer Hookdefinition zugeordnet ist, wird azd den geheimen Wert zur Laufzeit automatisch auflösen.