Zugreifen auf einen privaten Schlüsseltresor über Ihre Pipeline

Azure Key Vault bietet eine sichere Möglichkeit zum Verwalten von Anmeldeinformationen, einschließlich Schlüsseln, geheimen Schlüsseln und Zertifikaten. Mithilfe von Azure Pipelines können Sie den Prozess des Zugriffs auf und die Verwendung von Schlüsseltresorn zum Speichern und Abrufen von Anmeldeinformationen optimieren.

In bestimmten Szenarien räumen Organisationen der Sicherheit Priorität ein, indem sie den Zugriff auf Schlüsseltresore ausschließlich auf bestimmte virtuelle Azure-Netzwerke beschränken. Diese Einschränkung stellt die höchste Sicherheitsstufe für kritische Anwendungen sicher. In diesem Lernprogramm erfahren Sie, wie Sie die Authentifizierung einrichten und eingehenden Zugriff konfigurieren, damit Ihre Pipeline Daten aus einer privaten Azure Key Vault abfragen und abrufen kann.

Voraussetzungen

Produkt Requirements
Azure DevOps - Eine Azure DevOps organization.
- Ein Azure DevOps project.
-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.
Azure – Ein Azure-Abonnement.
- Ein Azure Key Vault.

Zugreifen auf einen privaten Schlüsseltresor

Entwickler können Azure Pipelines verwenden, um einen Azure Key Vault mit einer Variablengruppe zu verknüpfen und ausgewählte Vault-Geheimnisse zuzuordnen. Auf einen Key Vault, der als Variablengruppe verwendet wird, kann wie folgt zugegriffen werden:

  • Aus Azure DevOps während der Konfiguration der Variablengruppe.
  • Von einem selbstgehosteten Agenten zur Laufzeit eines Pipelineauftrags.

Diagramm, das die beiden verschiedenen Pfade für den Zugriff auf einen privaten Schlüsseltresor zeigt.

Führen Sie die folgenden Schritte aus, um den Zugriff auf Ihren privaten Schlüsseltresor einzurichten:

  1. Erstellen Sie einen Dienstprinzipal für die Authentifizierung bei Azure-Ressourcen.
  2. Erstellen Sie in Azure DevOps mithilfe des Serviceprinzipals eine Azure Resource Manager-Dienstverbindung.
  3. Erstellen Sie eine Verbundanmeldeinformation für Ihren Dienstprinzipal in Azure.

Erstellen eines Serviceprincipals

Erstellen Sie einen Dienstprinzipal für die Authentifizierung bei Azure-Ressourcen:

  1. Öffnen Sie das Azure-Portal.

  2. Öffnen Sie im oberen Menü Azure Cloud Shell, und wählen Sie dann Bash aus.

  3. Führen Sie den folgenden Befehl aus, um einen neuen Dienstprinzipal zu erstellen:

    az ad sp create-for-rbac --name YOUR_SERVICE_PRINCIPAL_NAME
    
  4. Kopieren Sie die Befehlsausgabe. Sie benötigen diese Werte im nächsten Schritt, wenn Sie die Dienstverbindung erstellen.

Erstellen einer Dienstverbindung

Verwenden Sie nach dem Erstellen des Dienstprinzipals die Ausgabewerte, um eine Azure Resource Manager-Dienstverbindung in Azure DevOps zu erstellen.

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

  2. Wählen Sie Projekteinstellungen>Dienstverbindungen>Neue Dienstverbindung aus.

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

  4. Wählen Sie für den Identitätstyp im Dropdownmenü die App-Registrierung (automatisch) aus.

  5. Lassen Sie für Anmeldeinformationen den als Standard empfohlenen Wert als Workload-Identitätsverbund.

  6. Wählen Sie für Bereichsebene"Abonnement" und dann Im Dropdownmenü Ihr Abonnement aus.

  7. Wählen Sie eine Ressourcengruppe aus, wenn Sie den Zugriff nur auf die angegebene Ressourcengruppe beschränken möchten.

  8. Geben Sie einen Namen für Ihre Dienstverbindung ein, und aktivieren Sie dann das Kontrollkästchen "Zugriffsberechtigung für alle Pipelines erteilen", damit alle Pipelines diese Dienstverbindung verwenden können.

  9. Wählen Sie "Speichern" aus.

    Screenshot, das zeigt, wie Sie eine Azure Resource Manager-Dienstverbindung für einen Dienstprinzipal konfigurieren.

Erstellen einer Verbundanmeldeinformation

Nachdem Sie Ihre Dienstverbindung gespeichert haben, konfigurieren Sie in Azure eine Verbundanmeldeinformation, um eine Vertrauensstellung zwischen Ihrem Dienstprinzipal und Azure DevOps herzustellen.

  1. Wechseln Sie zum portal Azure, geben Sie die Client-ID Ihres Dienstprinzipals in die Suchleiste ein, und wählen Sie dann Ihre Anwendung aus.

  2. Wählen Sie unter Verwalten die Option Zertifikate & GeheimnisseVerbundanmeldeinformationen.

  3. Wählen Sie Anmeldeinformationen hinzufügen aus und wählen Sie dann beim VerbundanmeldeinformationsszenarioAndere Aussteller aus.

  4. Fügen Sie für Aussteller die folgende URL ein, um den Platzhalter durch die GUID Ihrer Organisation zu ersetzen. Sie finden Ihre Organisations-ID, indem Sie zu Organization settings>Microsoft Entra wechseln. Laden Sie die Liste der Azure DevOps Organisationen herunter, die mit Ihrem Verzeichnis verbunden sind.

    https://login.microsoftonline.com/<TENANT_ID>/v2.0
    
  5. Fügen Sie für den Betreffbezeichner die folgende URL ein. Ersetzen Sie die Platzhalter durch den Namen Ihrer Organisation, den Projektnamen und den Dienstverbindungsnamen.

    ENTRA_PREFIX/sc/ORGANIZATION_NAME/PROJECT_NAME/SERVICE_CONNECTION_NAME
    
  6. Geben Sie einen Namen für Ihre Verbundanmeldeinformationen ein, und wählen Sie dann "Hinzufügen" aus.

Erstellen einer Dienstverbindung

Verwenden Sie nach dem Erstellen des Dienstprinzipals die Ausgabewerte, um eine Azure Resource Manager-Dienstverbindung in Azure DevOps zu erstellen.

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

  2. Wählen Sie Projekteinstellungen>Dienstverbindungen>Neue Dienstverbindung aus.

  3. Wählen Sie Azure Resource Manager>Next und dann Service principal (manual)>Next aus.

  4. Wählen Sie für UmgebungAzure Cloud und für Scope-EbeneAbonnement aus. Geben Sie dann Ihre Abonnement-ID und Ihren Abonnementnamen ein.

  5. Geben Sie Ihre Dienstprinzipalinformationen ein, und wählen Sie anschließend Überprüfen aus.

  6. Benennen Sie nach erfolgreicher Überprüfung Ihre Dienstverbindung, fügen Sie eine Beschreibung hinzu, und aktivieren Sie dann das Kontrollkästchen "Zugriffsberechtigung für alle Pipelines erteilen ". Klicken Sie auf Verify and save.

Tipp

Wenn Sie Ihre Dienstprinzipalverbindung nicht überprüfen können, weisen Sie dem Dienstprinzipal die Rolle Leser für Ihr Abonnement zu.

Zugriff auf einen privaten Key Vault über Azure DevOps.

In diesem Abschnitt werden zwei Methoden für den Zugriff auf einen privaten Schlüsseltresor aus Azure DevOps behandelt.

Die erste Methode verwendet variable Gruppen, um geheime Schlüssel aus Ihrem Schlüsseltresor zu verknüpfen und zuzuordnen, gefolgt von der Einrichtung des eingehenden Zugriffs, indem statische IP-Bereiche zugelassen werden. Azure Pipelines verwendet beim Abrufen eines Schlüsseltresors aus einer Variablengruppe die öffentliche IP-Adresse von Azure DevOps, daher müssen Sie diese IP-Adressbereiche in der Firewall des Schlüsseltresors zulassen.

Die zweite Methode fügt die IP-Adresse des von Microsoft gehosteten Agents dynamisch zu Beginn der Pipeline zur Firewall-Zulassungsliste des Schlüsseltresors hinzu, fragt den Schlüsseltresor ab und entfernt die IP schließlich wieder. Diese Methode dient nur zu Demonstrationszwecken und wird nicht für den Produktionseinsatz empfohlen.

Schritt 1: Zuordnen von Key Vault-Geheimnissen mit einer Variablengruppe

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

  2. Wählen Sie Pipelines>Bibliothek und anschließend + Variablengruppe aus.

  3. Benennen Sie die Variablegruppe, und aktivieren Sie die Option Geheimnisse aus einem Azure Key Vault als Variable verknüpfen.

  4. Wählen Sie die zuvor erstellte Dienstverbindung aus, wählen Sie Ihren Schlüsseltresor und dann "Autorisieren" aus.

  5. Wählen Sie unter "Variablen" die Option "Hinzufügen" aus, um Ihren geheimen Schlüssel hinzuzufügen, und wählen Sie dann " Speichern" aus.

Hinweis

Stellen Sie sicher, dass Ihre Dienstverbindung über die Berechtigungen Get und List verfügt und dass Ihrem Dienstprinzipal die Rolle "Benutzer von Key Vault-Geheimnissen" in Ihrem privaten Key Vault zugewiesen ist.

Schritt 1.1: Einrichten der Dienstverbindungsberechtigungen

  1. Wechseln Sie zu Ihrem Azure Key Vault, und wählen Sie dann Access-Richtlinien aus.

  2. Wählen Sie "Erstellen", und fügen Sie unter Geheimnissberechtigungen die Berechtigungen Abrufen und Auflisten hinzu, und wählen Sie dann Weiter aus.

  3. Fügen Sie Ihre Dienstverbindung in der Suchleiste hinzu, wählen Sie sie aus, und wählen Sie dann "Weiter" aus.

  4. Wählen Sie "Weiter" aus, überprüfen Sie Ihre Einstellungen, und wählen Sie dann "Überprüfen+ erstellen" aus.

Schritt 1.2: Einrichten der Dienstprinzipalberechtigungen

  1. Wechseln Sie zu Ihrem Azure Key Vault, und wählen Sie dann Zugriffskontrolle (IAM) aus.

  2. Wählen Sie "> und dann die Registerkarte "Rolle" aus.

  3. Wählen Sie die Rolle Key Vault Secrets User und dann Next.

  4. Wählen Sie Mitglieder auswählen, fügen Sie Ihren Dienstprinzipal hinzu, und wählen Auswählen aus.

  5. Wählen Sie "Überprüfen+ Zuweisen" aus.

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

  2. Wählen Sie Pipelines>Bibliothek und anschließend + Variablengruppe aus.

  3. Benennen Sie die Variablegruppe, und aktivieren Sie die Option Geheimnisse aus einem Azure Key Vault als Variable verknüpfen.

  4. Wählen Sie die Azure Dienstverbindung aus, die Sie zuvor im Dropdownmenü erstellt haben, und wählen Sie dann Ihren Schlüsseltresor aus.

    Screenshot, das zeigt, wie eine Variablegruppe mit einem Azure Key Vault verknüpft wird, mit einer Fehlermeldung, die auf fehlende Get- und List-Berechtigungen hinweist.

  5. Möglicherweise wird die Fehlermeldung "Die angegebene Azure-Dienstverbindung muss die Verwaltungsberechtigungen 'Abrufen, Auflisten' für Geheimnisse im ausgewählten Schlüsseltresor haben." angezeigt. Wechseln Sie zu Ihrem Schlüsseltresor im Azure-Portal und wählen Sie Access Control (IAM)>Rollenzuweisung hinzufügen>Benutzer von Schlüsseltresor-Geheimnissen>Weiter. Fügen Sie Ihren Dienstprinzipal hinzu, und wählen Sie dann "Überprüfen+ Zuweisen" aus.

    Screenshot, der zeigt, wie Sie einen Dienstprinzipal als geheimen Benutzer für einen Azure Key Vault.

  6. Fügen Sie Ihre geheimen Schlüssel hinzu, und wählen Sie dann "Speichern" aus.

Schritt 2: Konfigurieren des eingehenden Zugriffs von Azure DevOps

Nachdem Sie Ihre Variablengruppe konfiguriert haben, können Sie den eingehenden Zugriff von Azure DevOps zu Ihrem Schlüsseltresor zulassen, indem Sie die statischen IP-Bereiche für die geografische Region Ihrer Organisation hinzufügen.

  1. Melden Sie sich bei Ihrer Azure DevOps-Organisation an.

  2. Wählen Sie Organisationseinstellungen aus.

  3. Wechseln Sie zur Übersicht , um den geografischen Standort zu finden.

    Screenshot, der zeigt, wie Sie den geografischen Standort Ihrer Azure DevOps Organisation finden.

  4. Ermitteln Sie Ihre geografischen IPv4-Bereiche.

    Wichtig

    Stellen Sie sicher, dass für eingehende Verbindungen in die Vereinigten Staaten die IP-Bereiche für alle US-Regionen hinzugefügt werden.

  5. Konfigurieren Sie Ihren Schlüsseltresor, um Zugriff über statische IP-Bereiche zu ermöglichen.

Schritt 3: Abfragen eines privaten Key Vaults mit einer Variablengruppe

Wenn Ihre Variablengruppe verknüpft und der eingehende Zugriff konfiguriert ist, verwenden Sie die folgende Pipeline, um Ihren privaten Schlüsseltresor abzufragen und das abgerufene Geheimnis zu kopieren. Azure Pipelines die öffentliche IP verwendet, um den Schlüsseltresor aus einer Variablengruppe abzufragen. Stellen Sie daher sicher, dass Sie den eingehenden Zugriff konfiguriert haben bevor Sie die Pipeline ausführen.

variables:
-  group: mySecret-VG

steps:
- task: CmdLine@2
  inputs:
    script: 'echo $(mySecret) > secret.txt'

- task: CopyFiles@2
  inputs:
    Contents: secret.txt
    targetFolder: '$(Build.ArtifactStagingDirectory)'

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'drop'
    publishLocation: 'Container'

Alternative Methode: Dynamisches Zulassen der IP-Adresse des von Microsoft gehosteten Agents

Bei diesem Ansatz fragt die Pipeline die ip des Microsoft gehosteten Agents beim Start ab, fügt sie der Zulassungsliste der Schlüsseltresorfirewall hinzu, führt die Aufgaben im Schlüsseltresor aus und entfernt dann die IP, bevor die Pipeline abgeschlossen ist.

Hinweis

Dieser Ansatz dient nur zu Demonstrationszwecken. Wir empfehlen diesen Ansatz für Azure Pipelines nicht.

- task: AzurePowerShell@5
  displayName: 'Allow agent IP'
  inputs:
    azureSubscription: 'YOUR_SERVICE_CONNECTION_NAME'
    azurePowerShellVersion: LatestVersion
    ScriptType: InlineScript
    Inline: |
     $ip = (Invoke-WebRequest -uri "http://ifconfig.me/ip").Content
     Add-AzKeyVaultNetworkRule -VaultName "YOUR_KEY_VAULT_NAME" -ResourceGroupName "YOUR_RESOURCE_GROUP_NAME" -IpAddressRange $ip
     echo "##vso[task.setvariable variable=agentIP]ip"

- task: AzureKeyVault@2
  inputs:
    azureSubscription: 'YOUR_SERVICE_CONNECTION_NAME'
    KeyVaultName: 'YOUR_KEY_VAULT_NAME'
    SecretsFilter: '*'
    RunAsPreJob: false

- task: AzurePowerShell@5
  displayName: 'Remove agent IP'
  inputs:
    azureSubscription: 'YOUR_SERVICE_CONNECTION_NAME'
    azurePowerShellVersion: LatestVersion
    ScriptType: InlineScript
    Inline: |
     $ipRange = $env:agentIP + "/32"
     Remove-AzKeyVaultNetworkRule -VaultName "YOUR_KEY_VAULT_NAME" -IpAddressRange $ipRange
  condition: succeededOrFailed()

Wichtig

Stellen Sie sicher, dass der Dienstprinzipal, den Sie für den Zugriff auf Ihren Schlüsseltresor aus Ihrer Pipeline verwenden, die Rolle Key Vault-Mitwirkender innerhalb der Zugriffskontrolle (IAM) Ihres Key Vault besitzt.

Zugreifen auf einen privaten Schlüsseltresor über einen selbstgehosteten Agent

Um von einem Azure Pipelines-Agent auf einen privaten Schlüsseltresor zuzugreifen, verwenden Sie entweder einen selbst gehosteten Agent (Windows, Linux<> oder Mac) oder Virtual Machine Scale Sets Agents. Von Microsoft gehostete Agenten sind, wie andere allgemeine Computedienste, nicht in der Key Vault-Liste der vertrauenswürdigen Dienste enthalten.

Um die Konnektivität zu Ihrem privaten Schlüsseltresor herzustellen, konfigurieren Sie einen privaten Endpunkt für den Line-of-Sight-Zugriff. Dieser Endpunkt muss routingfähig sein, und sein privater DNS-Name muss vom selbst gehosteten Pipeline-Agent aufgelöst werden können.

Schritt 1: Konfigurieren des eingehenden Zugriffs von einem selbst gehosteten Agent

  1. Befolgen Sie die Anweisungen zum Erstellen eines virtuellen Netzwerks.

  2. Verwenden Sie im Azure-Portal die Suchleiste oben auf der Seite, um Ihren Azure Schlüsseltresor zu finden.

  3. Wählen Sie Ihren Schlüsseltresor aus und gehen Sie dann zu Einstellungen>Netzwerkeinstellungen.

  4. Wählen Sie Private Endpunktverbindungen und anschließend Erstellen aus, um einen neuen privaten Endpunkt zu erstellen.

    Screenshot, der zeigt, wie man eine neue private Endpunktverbindung für einen Azure Key Vault erstellt.

  5. Wählen Sie die Ressourcengruppe aus, in der das virtuelle Netzwerk gehostet wird, das Sie zuvor erstellt haben. Geben Sie einen Namen und einen Netzwerkschnittstellennamen für Ihre Instanz ein, und stellen Sie sicher, dass Sie dieselbe Region wie das zuvor erstellte virtuelle Netzwerk auswählen. Wählen Sie Weiteraus.

    Screenshot, der zeigt, wie Sie die Registerkarte

  6. Wählen Sie für Connection-MethodeVerbinden mit einer Azure Ressource in meinem Verzeichnis aus. Wählen Sie für Resource-TypMicrosoft.KeyVault/vaults aus dem Dropdownmenü aus. Wählen Sie Ihre Ressource aus dem Dropdownmenü aus. Zielunterressource wird automatisch mit dem Wert Vault ausgefüllt. Wählen Sie Weiteraus.

    Screenshot, der zeigt, wie Sie die Registerkarte "Ressource" konfigurieren, wenn Sie eine neue private Endpunktinstanz für Ihren Azure Key Vault.

  7. Wählen Sie auf der Registerkarte Virtual Network die virtual network und das Subnetz aus, das Sie zuvor erstellt haben, und lassen Sie die restlichen Felder als Standard. Wählen Sie Weiteraus.

  8. Übernehmen Sie die Standardeinstellungen auf den Registerkarten DNS und Tags . Wählen Sie auf der Registerkarte Überprüfen + erstellen die Option Erstellen aus.

  9. Nachdem Ihre Ressource bereitgestellt wurde, wechseln Sie zu Ihrem Schlüsseltresor und wählen Sie Einstellungen>Netzwerk>Private Endpunktverbindungen aus. Ihr privater Endpunkt sollte mit dem Verbindungsstatus als genehmigt aufgeführt werden. Wenn Sie eine Verknüpfung mit einer Azure Ressource in einem anderen Verzeichnis herstellen, müssen Sie warten, bis der Ressourcenbesitzer Ihre Verbindungsanforderung genehmigt.

    Screenshot einer genehmigten privaten Endpunktverbindung

Schritt 2: Zulassen Ihres virtuellen Netzwerks

Nachdem der private Endpunkt konfiguriert wurde, lassen Sie in den Firewalleinstellungen von Key Vault das virtuelle Netzwerk zu, auf dem Ihr selbstgehosteter Agent gehostet wird.

  1. Wechseln Sie zum Azure-Portal, und suchen Sie dann Ihren Azure-Schlüsseltresor.

  2. Wählen Sie "Netzwerkeinstellungen">aus, und stellen Sie sicher, dass Sie sich auf der Registerkarte "Firewalls" und "Virtuelle Netzwerke " befinden.

  3. Wählen Sie Virtuelles Netzwerk hinzufügen>Vorhandene virtuelle Netzwerke hinzufügen aus.

  4. Wählen Sie Ihr Abonnement im Dropdownmenü aus, wählen Sie das virtuelle Netzwerk aus, das Sie zuvor erstellt haben, und wählen Sie dann Ihre Subnetze aus.

  5. Wählen Sie Hinzufügen und scrollen Sie dann zum Ende der Seite und wählen Sie Übernehmen aus, um Ihre Änderungen zu speichern.

    Screenshot, der zeigt, wie Sie der Schlüsseltresor-Firewall ein vorhandenes virtuelles Netzwerk hinzufügen.

Schritt 3: Abfragen eines privaten Key Vault über einen selbstgehosteten Agent

Wenn das virtuelle Netzwerk zugelassen ist, verwenden Sie die folgende Pipeline, um den privaten Schlüsseltresor über die verknüpfte Variablengruppe mithilfe eines selbstgehosteten Agents abzufragen:

pool: Self-hosted-pool

variables:
  group: mySecret-VG

steps:
- task: CmdLine@2
  inputs:
    script: 'echo $(mySecret) > secret.txt'

- task: CopyFiles@2
  inputs:
    Contents: secret.txt
    targetFolder: '$(Build.ArtifactStagingDirectory)'

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'drop'
    publishLocation: 'Container'

Wenn Sie Azure DevOps eingehenden Zugriff auf Ihren privaten Schlüsseltresor nicht gewähren möchten, verwenden Sie die Aufgabe AzureKeyVault, um den Schlüsseltresor direkt abzufragen. Stellen Sie in diesem Fall sicher, dass das virtuelle Netzwerk, das Ihren selbstgehosteten Agent hostet, in den Firewalleinstellungen von Key Vault zugelassen ist.

pool: Self-hosted-pool

steps:
- task: AzureKeyVault@2
  inputs:
    azureSubscription: '$(SERVICE_CONNECTION_NAME)'
    keyVaultName: $(KEY_VAULT_NAME)
    SecretsFilter: '*'

- task: CmdLine@2
  inputs:
    script: 'echo $(mySecret) > secret.txt'

- task: CopyFiles@2
  inputs:
    Contents: secret.txt
    targetFolder: '$(Build.ArtifactStagingDirectory)'

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'drop'
    publishLocation: 'Container'

Problembehandlung

Verwenden Sie die folgenden Anweisungen, um häufige Zugriffsfehler auf den Schlüsseltresor zu beheben:

  • Public network access is disabled and request is not from a trusted service nor via an approved private link.

    Dieser Fehler weist darauf hin, dass der öffentliche Zugriff deaktiviert ist, aber weder ein privater Endpunkt noch die erforderlichen Firewall-Ausnahmen konfiguriert sind. Wählen Sie je nach Szenario die Schritte unter Eingehenden Zugriff von einem selbstgehosteten Agent konfigurieren oder Eingehenden Zugriff von Azure DevOps konfigurieren aus, um den Zugriff auf Ihren privaten Schlüsseltresor einzurichten.

  • Request was not allowed by NSP rules and the client address is not authorized and caller was ignored because bypass is set to None Client address: <x.x.x.x>

    Dieser Fehler weist darauf hin, dass der öffentliche Zugriff deaktiviert ist, Vertrauenswürdigen Microsoft-Diensten erlauben, diese Firewall zu umgehen nicht aktiviert ist und sich die IP-Adresse des Clients nicht in der Firewall-Zulassungsliste des Schlüsselspeichers befindet. Wechseln Sie im Azure-Portal zu Ihrem Schlüsseltresor, wählen Sie Settings>Networking aus, und fügen Sie die Client-IP zur Liste der Zugelassenen Firewalls hinzu.

  • Error: Client address is not authorized and caller is not a trusted service.

    Stellen Sie sicher, dass die IPv4-Bereiche Ihrer Geografie zur Zulassungsliste für den Schlüsseltresor hinzugefügt werden. Weitere Informationen finden Sie unter Eingehenden Zugriff aus Azure DevOps konfigurieren.

    Alternativ können Sie Dynamically allow Microsoft-hosted agent IP verwenden, um die Client-IP zur Laufzeit zur Key Vault-Firewall hinzuzufügen.