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.
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Mit Azure Key Vaults können Entwickler vertrauliche Informationen wie Kennwörter, API-Schlüssel und Zertifikate sicher speichern und verwalten. Dieser Artikel führt Sie durch das Abfragen und Verwenden von geheimen Schlüsseln aus einem Azure Key Vault in Ihrer Pipeline.
Voraussetzungen
Produkt | Anforderungen |
---|---|
Azure DevOps | - Ein Azure DevOps-Projekt. - Berechtigungen: – Um Zugriff auf alle Pipelines im Projekt zu gewähren: Sie müssen Mitglied der Gruppe "Projektadministratoren" sein. – Um Dienstverbindungen zu erstellen: Sie müssen über die Rolle "Administrator " oder " Ersteller " für Dienstverbindungen verfügen. |
GitHub (Englisch) | – Ein GitHub-Konto und ein GitHub-Repository. – Eine GitHub-Dienstverbindung zum Autorisieren von Azure Pipelines. |
Azurblau | – Ein Azure-Abonnement. |
Erstellen eines Schlüsseltresors
Melden Sie sich beim Azure-Portal an, und wählen Sie dann "Ressource erstellen" aus.
Wählen Sie unter "Key Vault" die Option "Erstellen" aus, um einen neuen Azure Key Vault zu erstellen.
Wählen Sie Im Dropdownmenü Ihr Abonnement aus, und wählen Sie dann eine vorhandene Ressourcengruppe aus, oder erstellen Sie eine neue. Geben Sie einen Schlüsseltresornamen ein, wählen Sie eine Region aus, wählen Sie eine Preisstufe und dann "Weiter" aus, wenn Sie zusätzliche Eigenschaften konfigurieren möchten. Wählen Sie andernfalls " Überprüfen+ erstellen " aus, um die Standardeinstellungen beizubehalten.
Klicken Sie nach Abschluss der Bereitstellung auf Zu Ressource wechseln.
Authentifizierung einrichten
Erstellen einer benutzerseitig zugewiesenen verwalteten Identität
Melden Sie sich bei der Azure-Portal an, und suchen Sie dann in der Suchleiste nach dem Dienst für verwaltete Identitäten.
Wählen Sie "Erstellen" aus, und füllen Sie die erforderlichen Felder wie folgt aus:
- Abonnement: Wählen Sie Ihr Abonnement im Dropdownmenü aus.
- Ressourcengruppe: Wählen Sie eine vorhandene Ressourcengruppe aus, oder erstellen Sie eine neue.
- Region: Wählen Sie im Dropdownmenü eine Region aus.
- Name: Geben Sie einen Namen für Ihre vom Benutzer zugewiesene verwaltete Identität ein.
Wenn Sie fertig sind, wählen Sie Überprüfen + Erstellen aus.
Nachdem die Bereitstellung abgeschlossen ist, wählen Sie "Zur Ressource wechseln" aus, und kopieren Sie dann die Abonnement - und Client-ID, die Sie in den nächsten Schritten benötigen.
Navigieren Sie zu "Einstellungseigenschaften>", und kopieren Sie die Mandanten-ID Ihrer verwalteten Identität, um sie später zu verwenden.
Zugriffsrichtlinien für den Schlüsseltresor einrichten
Navigieren Sie zu Azure-Portal, und verwenden Sie die Suchleiste, um den zuvor erstellten Schlüsseltresor zu finden.
Wählen Sie Access-Richtlinien und dann " Erstellen" aus, um eine neue Richtlinie hinzuzufügen.
Aktivieren Sie unter "Geheime Berechtigungen" die Kontrollkästchen " Abrufen " und "Liste" .
Wählen Sie "Weiter" aus, und fügen Sie dann die Client-ID der zuvor erstellten verwalteten Identität in die Suchleiste ein.
Wählen Sie Ihre verwaltete Identität aus, wählen Sie "Weiter" und dann "Weiter" erneut aus.
Überprüfen Sie Ihre neue Richtlinie, und wählen Sie dann "Erstellen" aus, wenn Sie fertig sind.
Erstellen einer Dienstverbindung
Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie dann zu Ihrem Projekt.
Wählen Sie "Project settings>Service connections" und dann "Neue Dienstverbindung" aus.
Wählen Sie Azure Resource Manager und dann "Weiter" aus.
Wählen Sie unter "Identitätstyp" im Dropdownmenü "Verwaltete Identität " aus.
Füllen Sie für Schritt 1: Details zur verwalteten Identität die Felder wie folgt aus:
Abonnement für verwaltete Identität: Wählen Sie das Abonnement aus, das Ihre verwaltete Identität enthält.
Ressourcengruppe für verwaltete Identität: Wählen Sie die Ressourcengruppe aus, in der Ihre verwaltete Identität gehostet wird.
Verwaltete Identität: Wählen Sie Ihre verwaltete Identität aus dem Dropdownmenü aus.
Füllen Sie für Schritt 2: Azure Scope die Felder wie folgt aus:
Bereichsebene für die Dienstverbindung: Abonnement auswählen.
Abonnement für Dienstverbindung: Wählen Sie das Abonnement aus, auf das Ihre verwaltete Identität zugreift.
Ressourcengruppe für Dienstverbindung: (Optional) Geben Sie dies an, wenn Sie den Zugriff auf eine bestimmte Ressourcengruppe einschränken möchten.
Für Schritt 3: Dienstverbindungsdetails:
Dienstverbindungsname: Geben Sie einen Namen für Ihre Dienstverbindung an.
Dienstverwaltungsreferenz: (Optional) Schließen Sie Kontextinformationen aus einer ITSM-Datenbank ein.
Beschreibung: (Optional) Fügen Sie eine Beschreibung hinzu.
Aktivieren Sie unter "Sicherheit" das Kontrollkästchen "Zugriffsberechtigung für alle Pipelines erteilen", damit alle Pipelines diese Dienstverbindung verwenden können. Wenn Sie dieses Kontrollkästchen deaktiviert lassen, müssen Sie den Zugriff für jede Pipeline manuell gewähren.
Wählen Sie Speichern aus, um die Dienstverbindung zu überprüfen und zu erstellen.
Abfragen und Verwenden von Geheimnissen in Ihrer Pipeline
Mithilfe der Azure Key Vault-Aufgabe können Sie jetzt geheime Schlüssel aus Azure Key Vault abfragen und abrufen und in nachfolgenden Aufgaben in Ihrer Pipeline verwenden. Beachten Sie, dass geheime Schlüssel explizit Umgebungsvariablen zugeordnet werden müssen, wie im folgenden Beispiel gezeigt:
pool:
vmImage: 'ubuntu-latest'
steps:
- task: AzureKeyVault@1
inputs:
azureSubscription: 'SERVICE_CONNECTION_NAME'
KeyVaultName: 'KEY_VAULT_NAME'
SecretsFilter: '*'
- bash: |
echo "Secret Found! $MY_MAPPED_ENV_VAR"
env:
MY_MAPPED_ENV_VAR: $(SECRET_NAME)
Die Ausgabe des letzten Bash-Schritts sollte wie folgt aussehen:
Secret Found! ***
Hinweis
Um mehrere geheime Schlüssel aus Ihrem Azure Key Vault abzufragen, verwenden Sie die SecretsFilter
Eingabe, und stellen Sie eine durch Trennzeichen getrennte Liste geheimer Namen bereit, z. B. "secret1, secret2".