Verwenden von Geheimnissen aus Azure Key Vault in Ihrer Pipeline
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Mit Azure Key Vault können Sie Ihre vertraulichen Informationen wie Kennwörter, API-Schlüssel, Zertifikate usw. sicher speichern und verwalten. Mit Azure Key Vault können Sie ganz einfach Verschlüsselungsschlüssel erstellen und verwalten, um Ihre Daten zu verschlüsseln. Azure Key Vault kann auch zum Verwalten von Zertifikaten für alle Ihre Ressourcen verwendet werden. In diesem Artikel lernen Sie Folgendes:
- Erstellen Sie eine Azure Key Vault-Instanz.
- Konfigurieren Sie Ihre Key Vault-Berechtigungen.
- Erstellen Sie eine neue Dienstverbindung.
- Fragen Sie geheime Schlüssel aus Ihrer Azure-Pipeline ab.
Voraussetzungen
- Eine Azure DevOps-Organisation. Wenn Sie noch nicht über ein Projekt verfügen, erstellen Sie es kostenlos.
- Ihr Projekt. Erstellen Sie ein Projekt, wenn Sie noch keines haben.
- Ihr eigenes Repository. Erstellen Sie ein neues Git Repo , falls Sie noch keinen besitzen.
- Ein Azure-Abonnement. Erstellen Sie ein kostenloses Azure-Konto, wenn Sie noch keines besitzen.
Erstellen einer Azure Key Vault-Instanz
Navigieren Sie zum Azure-Portal.
Wählen Sie links im Navigationsbereich Ressource erstellen aus.
Suchen Sie nach Key Vault, und klicken Sie dann auf die EINGABETASTE.
Wählen Sie Erstellen aus, um einen neuen Azure Key Vault zu erstellen.
Wählen Sie Ihr Abonnement aus , und fügen Sie dann eine neue Ressourcengruppe hinzu. Geben Sie einen Schlüsseltresornamen ein, und wählen Sie eine Region und einen Tarif aus. Wenn Sie fertig sind, wählen Sie Überprüfen + Erstellen aus.
Wählen Sie Zu Ressource wechseln aus, wenn die Bereitstellung Ihrer neuen Ressource abgeschlossen ist.
Erstellen eines Dienstprinzipals
In diesem Schritt erstellen wir einen neuen Dienstprinzipal in Azure, sodass wir unseren Azure Key Vault aus Azure-Pipelines abfragen können.
Navigieren Sie zum Azure-Portal.
Wählen Sie in der Menüleiste das Symbol >_ aus, um die Cloud Shell zu öffnen.
Wählen Sie PowerShell aus, oder belassen Sie es bei Bash, je nachdem, was Sie bevorzugen.
Führen Sie den folgenden Befehl aus, um einen neuen Dienstprinzipal zu erstellen:
az ad sp create-for-rbac --name YOUR_SERVICE_PRINCIPAL_NAME
Die Ausgabe sollte mit dem folgenden Beispiel übereinstimmen. Kopieren Sie unbedingt die Ausgabe des Befehls, da sie zum Erstellen der Dienstverbindung im nächsten Schritt erforderlich ist.
{ "appId": "p951q3e2-8e5r-z697-e9q52aviu8a2", "displayName": "MyServicePrincipal", "password": "***********************************", "tenant": "85wes2u6-63sh-95zx-2as3-qw58wex269df" }
Key Vault-Zugangsberechtigungen konfigurieren
Navigieren Sie zum Azure-Portal.
Der Namen des im vorherigen Schritt erstellten Schlüsseltresors.
Klicken Sie auf Zugriffsrichtlinien.
Wählen Sie Zugriffsrichtlinie hinzufügen aus, um eine neue Richtlinie hinzuzufügen.
Fügen Sie die Berechtigungen Get und List zu Geheimnis hinzu.
Wählen Sie unter Prinzipal auswählen die Option aus, um einen Dienstprinzipal hinzuzufügen, und wählen Sie den aus, den Sie zuvor erstellt haben.
Wählen Sie Speichern aus, wenn Sie fertig sind.
Hinweis
Azure Key Vaults, die die rollenbasierte Zugriffssteuerung (Azure RBAC) verwenden, werden nicht unterstützt.
Erstellen einer neuen Dienstverbindung
Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie dann zu Ihrem Projekt.
Wählen Sie
"Projekteinstellungen" und dann "Dienstverbindungen" aus.
Wenn Sie zum ersten Mal eine Dienstverbindung in Ihrem Projekt einrichten, wählen Sie Dienstverbindung erstellen aus. Wenn Sie bereits zuvor Dienstverbindungen hergestellt haben, wählen Sie "Neue Dienstverbindung aus.
Wählen Sie Azure Resource Manager und dann Weiter aus.
Wählen Sie Dienstprinzipal (manuell) und dann Weiter aus.
Wählen Sie Abonnement für dieBereichsebene aus, und füllen Sie die erforderlichen Felder mit Informationen aus dem zuvor erstellten Dienstprinzipal aus. Wählen Sie Überprüfen aus, wenn Sie fertig sind:
- Dienstprinzipal-ID: Ihre Dienstprinzipal-App-Id.
- Dienstprinzipalschlüssel: Ihr Dienstprinzipalkennwort.
- Mandanten-ID: Ihr Dienstprinzipalmandant.
Geben Sie einen Namen für Ihre Dienstverbindung ein, und aktivieren Sie dann das Kontrollkästchen Allen Pipelines die Zugriffsberechtigung gewähren.
Wählen Sie Überprüfen und Speichern aus, wenn Sie fertig sind.
Abfragen und Verwenden von Geheimnissen in Ihrer Pipeline
Mithilfe der Azure Key Vault-Aufgabe können wir den Wert unseres Geheimnisses abrufen und in nachfolgenden Aufgaben in unserer Pipeline verwenden. Beachten Sie unter anderem, dass Geheimnisse explizit der env-Variablen zugeordnet werden müssen, wie im folgenden Beispiel gezeigt.
pool:
vmImage: 'ubuntu-latest'
steps:
- task: AzureKeyVault@1
inputs:
azureSubscription: 'repo-kv-demo' ## YOUR_SERVICE_CONNECTION_NAME
KeyVaultName: 'kv-demo-repo' ## YOUR_KEY_VAULT_NAME
SecretsFilter: 'secretDemo' ## YOUR_SECRET_NAME. Default value: *
RunAsPreJob: false ## Make the secret(s) available to the whole job
- task: DotNetCoreCLI@2
inputs:
command: 'build'
projects: '**/*.csproj'
- task: DotNetCoreCLI@2
inputs:
command: 'run'
projects: '**/*.csproj'
env:
mySecret: $(secretDemo)
- bash: |
echo "Secret Found! $MY_MAPPED_ENV_VAR"
env:
MY_MAPPED_ENV_VAR: $(mySecret)
Die Ausgabe dieses Befehls sollte wie folgt aussehen:
Secret Found! ***
Hinweis
Wenn Sie mehrere Geheimnisse aus Ihrem Azure-Key Vault abfragen möchten, verwenden Sie das SecretsFilter
Argument, um eine durch Trennzeichen getrennte Liste von Geheimnisnamen zu übergeben: "secret1, secret2".
Verwandte Artikel
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für