Freigeben über


Verwenden von Geheimnissen aus Azure Key Vault in Ihrer Pipeline

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

  1. Melden Sie sich beim Azure-Portal an, und wählen Sie dann "Ressource erstellen" aus.

  2. Wählen Sie unter "Key Vault" die Option "Erstellen" aus, um einen neuen Azure Key Vault zu erstellen.

  3. 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.

  4. Klicken Sie nach Abschluss der Bereitstellung auf Zu Ressource wechseln.

Authentifizierung einrichten

Erstellen einer benutzerseitig zugewiesenen verwalteten Identität

  1. Melden Sie sich bei der Azure-Portal an, und suchen Sie dann in der Suchleiste nach dem Dienst für verwaltete Identitäten.

  2. 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.
  3. Wenn Sie fertig sind, wählen Sie Überprüfen + Erstellen aus.

  4. 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.

  5. 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

  1. Navigieren Sie zu Azure-Portal, und verwenden Sie die Suchleiste, um den zuvor erstellten Schlüsseltresor zu finden.

  2. Wählen Sie Access-Richtlinien und dann " Erstellen" aus, um eine neue Richtlinie hinzuzufügen.

  3. Aktivieren Sie unter "Geheime Berechtigungen" die Kontrollkästchen " Abrufen " und "Liste" .

  4. Wählen Sie "Weiter" aus, und fügen Sie dann die Client-ID der zuvor erstellten verwalteten Identität in die Suchleiste ein.

  5. Wählen Sie Ihre verwaltete Identität aus, wählen Sie "Weiter" und dann "Weiter" erneut aus.

  6. Überprüfen Sie Ihre neue Richtlinie, und wählen Sie dann "Erstellen" aus, wenn Sie fertig sind.

Erstellen einer Dienstverbindung

  1. Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie dann zu Ihrem Projekt.

  2. Wählen Sie "Project settings>Service connections" und dann "Neue Dienstverbindung" aus.

  3. Wählen Sie Azure Resource Manager und dann "Weiter" aus.

  4. Wählen Sie unter "Identitätstyp" im Dropdownmenü "Verwaltete Identität " aus.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. Wählen Sie Speichern aus, um die Dienstverbindung zu überprüfen und zu erstellen.

    Screenshot, der zeigt, wie Sie eine Verbindung mit verwalteten Identitäts-ARM-Diensten 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".