Freigeben über


AzureKeyVault@2 – Azure Key Vault v2-Aufgabe

Verwenden Sie diese Aufgabe, um geheime Schlüssel herunterzuladen, z. B. Authentifizierungsschlüssel, Speicherkontoschlüssel, Datenverschlüsselungsschlüssel. PFX-Dateien und Kennwörter aus einer Azure Key Vault Instanz. Die Aufgabe kann verwendet werden, um die neuesten Werte aller oder einer Teilmenge geheimer Schlüssel aus dem Tresor abzurufen und als Variablen festzulegen, die in nachfolgenden Aufgaben einer Pipeline verwendet werden können. Die Aufgabe ist nodebasiert und arbeitet mit Agents unter Linux, macOS und Windows zusammen.

Syntax

# Azure Key Vault v2
# Download Azure Key Vault secrets.
- task: AzureKeyVault@2
  inputs:
    azureSubscription: # string. Alias: ConnectedServiceName. Required. Azure subscription. 
    KeyVaultName: # string. Required. Key vault. 
    SecretsFilter: '*' # string. Required. Secrets filter. Default: *.
    #RunAsPreJob: false # boolean. Make secrets available to whole job. Default: false.

Eingänge

azureSubscription - Azure-Abonnement
Eingabealias: ConnectedServiceName. string. Erforderlich.

Wählen Sie die Dienstverbindung für das Azure-Abonnement aus, das die Azure Key Vault-Instanz enthält, oder erstellen Sie eine neue Verbindung. Erfahren Sie mehr.


KeyVaultName - Key Vault-
string. Erforderlich.

Der Name des Azure Key Vault, der die geheimen Schlüssel enthält, die heruntergeladen werden sollen.


SecretsFilter - Filter "Geheime Schlüssel"
string. Erforderlich. Standardwert: *.

Lädt geheime Namen gemäß dem eingegebenen Wert herunter. Der Wert kann der Standardwert sein, um alle geheimen Schlüssel aus dem ausgewählten Schlüsseltresor oder eine durch Trennzeichen getrennte Liste mit geheimen Namen herunterzuladen.


RunAsPreJob - Geheime Schlüssel für den gesamten Auftrag verfügbar machen
boolean. Standardwert: false.

Führt die Aufgabe aus, bevor die Auftragsausführung beginnt. Macht geheime Schlüssel für alle Aufgaben im Auftrag verfügbar, nicht nur Aufgaben, die diesem Auftrag folgen.


Aufgabensteuerungsoptionen

Alle Aufgaben verfügen zusätzlich zu ihren Aufgabeneingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerelementoptionen und allgemeinen Aufgabeneigenschaften.

Ausgabevariablen

Nichts.

Bemerkungen

Neuerungen in Version 2.0: Unterstützung für %3B, %5D in geheimen Schlüsseln hinzugefügt.

Verwenden Sie diese Aufgabe, um geheime Schlüssel herunterzuladen, z. B. Authentifizierungsschlüssel, Speicherkontoschlüssel, Datenverschlüsselungsschlüssel. PFX-Dateien und Kennwörter aus einer Azure Key Vault Instanz. Die Aufgabe kann verwendet werden, um die neuesten Werte aller oder einer Teilmenge geheimer Schlüssel aus dem Tresor abzurufen und als Variablen festzulegen, die in nachfolgenden Aufgaben einer Pipeline verwendet werden können. Die Aufgabe ist nodebasiert und arbeitet mit Agents unter Linux, macOS und Windows zusammen.

Ich erhalte einen forbidden Fehler bei Pipelines zum Zeitpunkt des Abrufens von Anmeldeinformationen aus Azure Key Vault

Dies tritt auf, wenn die erforderlichen Berechtigungen im Azure Key Vault fehlen. Um das Problem zu beheben, eine Zugriffsrichtlinie mit den richtigen Berechtigungenhinzufügen.

Voraussetzungen

Die Aufgabe weist die folgenden Voraussetzungen auf:

Sie können einen Schlüsseltresor erstellen:

Hinzufügen von Geheimschlüsseln zu einem Schlüsseltresor:

  • Mithilfe des PowerShell-Cmdlets Set-AzKeyVaultSecret. Wenn der geheime Schlüssel nicht vorhanden ist, erstellt es dieses Cmdlet. Wenn der geheime Schlüssel bereits vorhanden ist, erstellt dieses Cmdlet eine neue Version dieses geheimen Schlüssels.

  • Mithilfe der Azure CLI. Wenn Sie einem Schlüsseltresor einen geheimen Schlüssel hinzufügen möchten, z. B. einen geheimen Schlüssel namens SQLPassword- mit dem Wert PlaceholderPassword-, geben Sie Folgendes ein:

    az keyvault secret set --vault-name 'ContosoKeyVault' --name 'SQLPassword' --value 'PlaceholderPassword'
    

Wenn Sie auf geheime Schlüssel zugreifen möchten:

  • Stellen Sie sicher, dass die Azure-Dienstverbindung mindestens Abrufen von und Listenberechtigungen für den Tresor verfügt. Sie können diese Berechtigungen im Azure-Portalfestlegen:

    • Öffnen Sie das Blatt Einstellungen Für den Tresor, wählen Sie Access-Richtlinienund dann Neuenhinzufügen.
    • Wählen Sie auf dem Blatt Blatt "Zugriffsrichtlinie hinzufügen""Prinzipal auswählen" aus, und wählen Sie den Dienstprinzipal für Ihr Clientkonto aus.
    • Wählen Sie im Blatt Blatt "Zugriffsrichtlinie hinzufügen""Geheime Berechtigungen" aus, und stellen Sie sicher, dass Get und List aktiviert sind (markiert).
    • Wählen Sie OK aus, um die Änderungen zu speichern.

Anmerkung

Wenn Sie einen von Microsoft gehosteten Agent verwenden, müssen Sie den IP-Bereich des von Microsoft gehosteten Agents zu Ihrer Firewall hinzufügen. Rufen Sie die wöchentliche Liste der IP-Bereiche aus der wöchentlichen JSON-Dateiab, die jeden Mittwoch veröffentlicht wird. Die neuen IP-Bereiche werden am folgenden Montag wirksam. Weitere Informationen finden Sie unter von Microsoft gehosteten Agents. Um die IP-Bereiche zu finden, die für Ihre Azure DevOps-Organisation erforderlich sind, erfahren Sie, wie Sie die möglichen IP-Bereiche für von Microsoft gehostete Agentsidentifizieren .

Anmerkung

Werte werden als Zeichenfolgen abgerufen. Wenn beispielsweise ein Geheimschlüssel mit dem Namen connectionStringvorhanden ist, wird eine Aufgabenvariable connectionString mit dem neuesten Wert des jeweiligen geheimen Schlüssels erstellt, der aus dem Azure Key Vault abgerufen wird. Diese Variable ist dann in nachfolgenden Vorgängen verfügbar.

Wenn der vom Tresor abgerufene Wert ein Zertifikat ist (z. B. eine PFX-Datei), enthält die Aufgabenvariable den Inhalt des PFX im Zeichenfolgenformat. Sie können den folgenden PowerShell-Code verwenden, um die PFX-Datei aus der Aufgabenvariable abzurufen:

$kvSecretBytes = [System.Convert]::FromBase64String("$(PfxSecret)")
$certCollection = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2Collection
$certCollection.Import($kvSecretBytes,$null,[System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable)

Wenn die Zertifikatdatei lokal auf dem Computer gespeichert wird, empfiehlt es sich, sie mit einem Kennwort zu verschlüsseln:

 #Get the file created
$password = 'your password'
$protectedCertificateBytes = $certCollection.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Pkcs12, $password)
$pfxPath = [Environment]::GetFolderPath("Desktop") + "\MyCert.pfx"
[System.IO.File]::WriteAllBytes($pfxPath, $protectedCertificateBytes)

Weitere Informationen finden Sie unter Erste Schritte mit Azure Key Vault-Zertifikaten.

Beispiele

Anforderungen

Anforderung Beschreibung
Pipelinetypen YAML, Classic Build, Classic Release
Läuft auf Agent, DeploymentGroup
Anforderungen Nichts
Funktionen Dieser Vorgang erfüllt keine Anforderungen für nachfolgende Vorgänge im Auftrag.
Befehlseinschränkungen Jegliche
Settable-Variablen Jegliche
Agentversion 2.182.1 oder höher
Vorgangskategorie Aufstellen