AzureKeyVault@2 - Azure Key Vault v2-taak
Gebruik deze taak om geheimen te downloaden, zoals verificatiesleutels, opslagaccountsleutels, gegevensversleutelingssleutels. PFX-bestanden en wachtwoorden van een Azure Key Vault exemplaar. De taak kan worden gebruikt om de meest recente waarden van alle of een subset geheimen op te halen uit de kluis en deze in te stellen als variabelen die kunnen worden gebruikt in volgende taken van een pijplijn. De taak is gebaseerd op knooppunten en werkt met agents in Linux, macOS en Windows.
Syntaxis
# 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.
Ingangen
azureSubscription
-
Azure-abonnement
Invoeralias: ConnectedServiceName
.
string
. Vereist.
Selecteer de serviceverbinding voor het Azure-abonnement met het Azure Key Vault-exemplaar of maak een nieuwe verbinding. Meer informatie.
KeyVaultName
-
Key Vault-
string
. Vereist.
De naam van de Azure Key Vault die de geheimen bevat die u wilt downloaden.
SecretsFilter
-
Geheimen-filter
string
. Vereist. Standaardwaarde: *
.
Downloadt geheime namen op basis van de ingevoerde waarde. De waarde kan de standaardwaarde zijn voor het downloaden van alle geheimen uit de geselecteerde sleutelkluis of een door komma's gescheiden lijst met geheime namen.
RunAsPreJob
-
geheimen beschikbaar maken voor de hele taak
boolean
. Standaardwaarde: false
.
Hiermee wordt de taak uitgevoerd voordat de taak wordt uitgevoerd. Geheimen beschikbaar maken voor alle taken in de taak, niet alleen taken die volgen op deze.
Opties voor taakbeheer
Alle taken hebben besturingsopties naast hun taakinvoer. Zie Opties en algemene taakeigenschappenvoor meer informatie.
Uitvoervariabelen
Geen.
Opmerkingen
Wat is er nieuw in versie 2.0: er is ondersteuning toegevoegd voor %3B, %5D in geheimen.
Gebruik deze taak om geheimen te downloaden, zoals verificatiesleutels, opslagaccountsleutels, gegevensversleutelingssleutels. PFX-bestanden en wachtwoorden van een Azure Key Vault exemplaar. De taak kan worden gebruikt om de meest recente waarden van alle of een subset geheimen op te halen uit de kluis en deze in te stellen als variabelen die kunnen worden gebruikt in volgende taken van een pijplijn. De taak is gebaseerd op knooppunten en werkt met agents in Linux, macOS en Windows.
Ik krijg een forbidden
fout bij pijplijnen op het moment van het ophalen van referenties uit Azure Key Vault
Dit gebeurt als de vereiste machtigingen ontbreken in de Azure-sleutelkluis. Als u het probleem wilt oplossen, een toegangsbeleid met de juiste machtigingentoevoegen.
Voorwaarden
De taak heeft de volgende vereisten:
- Een Azure-abonnement dat is gekoppeld aan Azure Pipelines of Team Foundation Server met behulp van de Azure Resource Manager-serviceverbinding.
- Een Azure Key Vault- met de geheimen.
U kunt een sleutelkluis maken:
- In de Azure-portal
- Met behulp van Azure PowerShell-
- Met behulp van de Azure CLI-
Geheimen toevoegen aan een sleutelkluis:
Met behulp van de PowerShell-cmdlet Set-AzKeyVaultSecret. Als het geheim niet bestaat, maakt deze cmdlet het. Als het geheim al bestaat, maakt deze cmdlet een nieuwe versie van dat geheim.
Met behulp van de Azure CLI. Als u een geheim wilt toevoegen aan een sleutelkluis, bijvoorbeeld een geheim met de naam SQLPassword met de waarde PlaceholderPassword, typt u:
az keyvault secret set --vault-name 'ContosoKeyVault' --name 'SQLPassword' --value 'PlaceholderPassword'
Wanneer u toegang wilt krijgen tot geheimen:
Zorg ervoor dat de Azure-serviceverbinding ten minste Get en List machtigingen voor de kluis heeft. U kunt deze machtigingen instellen in de Azure Portal:
- Open de blade Instellingen voor de kluis, kies Toegangsbeleiden Nieuwetoevoegen.
- Kies op de blade Toegangsbeleid toevoegenPrincipal selecteren en selecteer de service-principal voor uw clientaccount.
- Kies op de blade Toegangsbeleid toevoegenMachtigingen voor geheim en zorg ervoor dat ophalen en Lijst zijn ingeschakeld (aangevinkt).
- Kies OK- om de wijzigingen op te slaan.
Notitie
Als u een door Microsoft gehoste agent gebruikt, moet u het IP-bereik van de door Microsoft gehoste agent toevoegen aan uw firewall. Haal de wekelijkse lijst met IP-bereiken op uit het wekelijksE JSON-bestand, dat elke woensdag wordt gepubliceerd. De nieuwe IP-bereiken worden de volgende maandag van kracht. Zie door Microsoft gehoste agentsvoor meer informatie. Als u de IP-bereiken wilt vinden die vereist zijn voor uw Azure DevOps-organisatie, leert u hoe u de mogelijke IP-bereiken voor door Microsoft gehoste agentsidentificeren.
Notitie
Waarden worden opgehaald als tekenreeksen. Als er bijvoorbeeld een geheim is met de naam connectionString, wordt er een taakvariabele connectionString
gemaakt met de meest recente waarde van het respectieve geheim dat is opgehaald uit de Azure-sleutelkluis. Deze variabele is vervolgens beschikbaar in volgende taken.
Als de waarde die is opgehaald uit de kluis een certificaat is (bijvoorbeeld een PFX-bestand), bevat de taakvariabele de inhoud van de PFX in tekenreeksindeling. U kunt de volgende PowerShell-code gebruiken om het PFX-bestand op te halen uit de taakvariabele:
$kvSecretBytes = [System.Convert]::FromBase64String("$(PfxSecret)")
$certCollection = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2Collection
$certCollection.Import($kvSecretBytes,$null,[System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable)
Als het certificaatbestand lokaal op de computer wordt opgeslagen, is het raadzaam het te versleutelen met een wachtwoord:
#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)
Zie Aan de slag met Azure Key Vault-certificatenvoor meer informatie.
Voorbeelden
quickstart: Geheimen uit Azure Key Vault (klassiek/YAML) gebruiken
Zelfstudie: Azure Key Vault-geheimen gebruiken in uw YAML-pijplijn
Eisen
Eis | Beschrijving |
---|---|
Pijplijntypen | YAML, klassieke build, klassieke release |
Wordt uitgevoerd op | Agent, DeploymentGroup |
eisen | Geen |
mogelijkheden | Deze taak voldoet niet aan de vereisten voor volgende taken in de taak. |
opdrachtbeperkingen | Enig |
variabelen instellen | Enig |
Agentversie | 2.182.1 of hoger |
Taakcategorie | Implementeren |