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:
- Ein Azure-Abonnement, das mit Azure Pipelines oder Team Foundation Server verknüpft ist, mithilfe der Azure Resource Manager-Dienstverbindung.
- Ein Azure Key Vault, das die geheimen Schlüssel enthält.
Sie können einen Schlüsseltresor erstellen:
- Im Azure-Portal
- Mithilfe von Azure PowerShell-
- Mithilfe der Azure CLI-
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
Schnellstart: Verwenden von geheimen Schlüsseln aus azure Key Vault (Classic/YAML)
Lernprogramm: Verwenden von geheimen Azure Key Vault-Schlüsseln in Ihrer YAML-Pipeline
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 |