AzureKeyVault@2: Azure Key Vault v2-Aufgabe

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

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.

Eingaben

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


KeyVaultName - Schlüsseltresor
string. Erforderlich.

Der Name der Azure-Key Vault, die die herunterzuladenden Geheimnisse enthält.


SecretsFilter - Geheimnisfilter
string. Erforderlich. Standardwert. *.

Lädt Geheimnisnamen entsprechend dem eingegebenen Wert herunter. Der Wert kann der Standardwert zum Herunterladen aller Geheimnisse aus dem ausgewählten Schlüsseltresor oder eine durch Trennzeichen getrennte Liste von Geheimnisnamen sein.


RunAsPreJob - Geheimnisse für den gesamten Auftrag verfügbar machen
boolean. Standardwert. false.

Führt den Task aus, bevor die Auftragsausführung beginnt. Macht Geheimnisse für alle Aufgaben im Auftrag verfügbar, nicht nur für Aufgaben, die dieser Aufgabe folgen.


Aufgabensteuerungsoptionen

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

Ausgabevariablen

Keine.

Hinweise

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

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

Beim Abrufen von Anmeldeinformationen von Azure Key Vault erhalte ich eine forbidden Fehlermeldung für Pipelines.

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

Voraussetzungen

Für die Aufgabe gelten die folgenden Voraussetzungen:

Sie können einen Schlüsseltresor erstellen:

Hinzufügen von Geheimnissen zu einem Schlüsseltresor:

  • Mithilfe des PowerShell-Cmdlets Set-AzureKeyVaultSecret. Wenn das Geheimnis nicht vorhanden ist, wird es von diesem Cmdlet erstellt. Wenn das Geheimnis bereits vorhanden ist, erstellt dieses Cmdlet eine neue Version dieses Geheimnisses.

  • Mithilfe der Azure-Befehlszeilenschnittstelle (Azure CLI) Um einem Schlüsseltresor ein Geheimnis hinzuzufügen, z. B. ein Geheimnis namens SQLPassword mit dem Wert PlaceholderPassword, geben Sie Folgendes ein:

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

Wenn Sie auf Geheimnisse zugreifen möchten:

  • Stellen Sie sicher, dass die Azure-Dienstverbindung mindestens über die Berechtigungen Get und List für den Tresor verfügt. Sie können diese Berechtigungen im Azure-Portal festlegen:

    • Öffnen Sie das Blatt Einstellungen für den Tresor, wählen Sie Zugriffsrichtlinien und dann Neu hinzufügen aus.
    • Wählen Sie auf dem Blatt Zugriffsrichtlinie hinzufügen die Option Prinzipal auswählen und dann den Dienstprinzipal für Ihr Clientkonto aus.
    • Wählen Sie auf dem Blatt Zugriffsrichtlinie hinzufügendie Option Geheimnisberechtigungen aus, und stellen Sie sicher, dass Get und List aktiviert (markiert) sind.
    • Wählen Sie OK aus, um die Änderungen zu speichern.

Hinweis

Wenn Sie einen von Microsoft gehosteten Agent verwenden, müssen Sie Ihrer Firewall den IP-Adressbereich des von Microsoft gehosteten Agents hinzufügen. Rufen Sie die wöchentliche Liste der IP-Adressbereiche aus der wöchentlichen JSON-Datei ab, die jeden Mittwoch veröffentlicht wird. Die neuen IP-Adressbereiche treten am folgenden Montag in Kraft. Weitere Informationen finden Sie unter Von Microsoft gehostete Agents. Um die IP-Adressbereiche zu ermitteln, die für Ihre Azure DevOps-Organisation erforderlich sind, informieren Sie sich über das Ermitteln der möglichen IP-Adressbereiche für von Microsoft gehostete Agents.

Hinweis

Werte werden als Zeichenfolgen abgerufen. Wenn beispielsweise ein Geheimnis mit dem Namen connectionString vorhanden ist, wird eine Aufgabenvariable connectionString mit dem neuesten Wert des jeweiligen Geheimnisses erstellt, der aus Azure Key Vault abgerufen wurde. Diese Variable ist dann in nachfolgenden Aufgaben verfügbar.

Wenn der aus dem Tresor abgerufene Wert ein Zertifikat ist (z. B. eine PFX-Datei), enthält die Aufgabenvariable den Inhalt der PFX im Zeichenfolgenformat. Sie können den folgenden PowerShell-Code verwenden, um die PFX-Datei aus der Aufgabenvariablen 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.

Anforderungen

Anforderung BESCHREIBUNG
Pipelinetypen YAML, Klassischer Build, klassisches Release
Wird ausgeführt auf Agent, DeploymentGroup
Forderungen Keine
Capabilities Diese Aufgabe erfüllt keine Anforderungen an nachfolgende Aufgaben im Auftrag.
Befehlseinschränkungen Any
Setzbare Variablen Any
Agent-Version 2.182.1 oder höher
Aufgabenkategorie Bereitstellen