Udostępnij za pośrednictwem


AzureKeyVault@2 — zadanie usługi Azure Key Vault w wersji 2

To zadanie służy do pobierania wpisów tajnych, takich jak klucze uwierzytelniania, klucze konta magazynu, klucze szyfrowania danych, . Pliki PFX i hasła z wystąpienia usługi Azure Key Vault. Zadanie może służyć do pobierania najnowszych wartości wszystkich lub podzestawu wpisów tajnych z magazynu i ustawiania ich jako zmiennych, które mogą być używane w kolejnych zadaniach potoku. Zadanie jest oparte na węźle i współpracuje z agentami w systemach Linux, macOS i Windows.

Składnia

# 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.

Wejścia

subskrypcji platformy Azure
Alias wejściowy: ConnectedServiceName. string. Wymagane.

Wybierz połączenie usługi dla subskrypcji platformy Azure zawierającej wystąpienie usługi Azure Key Vault lub utwórz nowe połączenie. Dowiedz się więcej.


Key Vault
string. Wymagane.

Nazwa usługi Azure Key Vault, która zawiera wpisy tajne do pobrania.


filtr SecretsFilter - Wpisy tajne
string. Wymagane. Wartość domyślna: *.

Pobiera nazwy wpisów tajnych zgodnie z wprowadzoną wartością. Wartość może być wartością domyślną, aby pobrać wszystkie wpisy tajne z wybranego magazynu kluczy lub rozdzieloną przecinkami listę nazw wpisów tajnych.


RunAsPreJob - Udostępnianie wpisów tajnych dla całego zadania
boolean. Wartość domyślna: false.

Uruchamia zadanie przed rozpoczęciem wykonywania zadania. Uwidacznia wpisy tajne we wszystkich zadaniach w zadaniu, a nie tylko zadania, które są zgodne z tym zadaniem.


Opcje sterowania zadaniami

Wszystkie zadania mają opcje sterowania oprócz danych wejściowych zadań podrzędnych. Aby uzyskać więcej informacji, zobacz opcje kontroli i typowe właściwości zadań.

Zmienne wyjściowe

Żaden.

Uwagi

Co nowego w wersji 2.0: dodano obsługę %3B, %5D w wpisach tajnych.

To zadanie służy do pobierania wpisów tajnych, takich jak klucze uwierzytelniania, klucze konta magazynu, klucze szyfrowania danych, . Pliki PFX i hasła z wystąpienia usługi Azure Key Vault. Zadanie może służyć do pobierania najnowszych wartości wszystkich lub podzestawu wpisów tajnych z magazynu i ustawiania ich jako zmiennych, które mogą być używane w kolejnych zadaniach potoku. Zadanie jest oparte na węźle i współpracuje z agentami w systemach Linux, macOS i Windows.

Otrzymuję błąd forbidden potoków w momencie pobierania poświadczeń z usługi Azure Key Vault

Dzieje się tak, jeśli w magazynie kluczy platformy Azure brakuje wymaganych uprawnień. Aby rozwiązać ten problem, dodać zasady dostępu z odpowiednimi uprawnieniami.

Warunki wstępne

Zadanie ma następujące wymagania wstępne:

Magazyn kluczy można utworzyć:

Dodawanie wpisów tajnych do magazynu kluczy:

  • Za pomocą polecenia cmdlet programu PowerShell Set-AzKeyVaultSecret. Jeśli wpis tajny nie istnieje, to polecenie cmdlet go utworzy. Jeśli wpis tajny już istnieje, to polecenie cmdlet tworzy nową wersję tego wpisu tajnego.

  • Za pomocą interfejsu wiersza polecenia platformy Azure. Aby dodać wpis tajny do magazynu kluczy, na przykład wpis tajny o nazwie SQLPassword z wartością PlaceholderPassword, wpisz:

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

Jeśli chcesz uzyskać dostęp do wpisów tajnych:

  • Upewnij się, że połączenie usługi platformy Azure ma co najmniej uprawnienia Pobierz i Lista w magazynie. Te uprawnienia można ustawić w witrynie Azure Portal:

    • Otwórz blok Ustawienia dla magazynu, wybierz pozycję zasady dostępu , a następnie Dodaj nowy.
    • W bloku Dodaj zasady dostępu wybierz pozycję Wybierz jednostkę główną i wybierz jednostkę usługi dla konta klienta.
    • W bloku Dodaj zasady dostępu wybierz pozycję Uprawnienia wpisu tajnego i upewnij się, że Pobierz i Lista są zaznaczone (zaznaczone).
    • Wybierz pozycję OK, aby zapisać zmiany.

Nuta

Jeśli używasz agenta hostowanego przez firmę Microsoft, musisz dodać zakres adresów IP agenta hostowanego przez firmę Microsoft do zapory. Pobierz cotygodniową listę zakresów adresów IP z cotygodniowego pliku JSON, który jest publikowany co środę. Nowe zakresy adresów IP staną się skuteczne w następujący poniedziałek. Aby uzyskać więcej informacji, zobacz agentów hostowanych przez firmę Microsoft. Aby znaleźć zakresy adresów IP wymagane dla organizacji usługi Azure DevOps, dowiedz się, jak zidentyfikować możliwe zakresy adresów IP dla agentów hostowanych przez firmę Microsoft.

Nuta

Wartości są pobierane jako ciągi. Jeśli na przykład istnieje wpis tajny o nazwie connectionString, zostanie utworzona zmienna zadania connectionString z najnowszą wartością odpowiedniego wpisu tajnego pobranego z usługi Azure Key Vault. Ta zmienna jest następnie dostępna w kolejnych zadaniach.

Jeśli wartość pobrana z magazynu to certyfikat (na przykład plik PFX), zmienna zadania będzie zawierać zawartość pliku PFX w formacie ciągu. Aby pobrać plik PFX ze zmiennej zadania, możesz użyć następującego kodu programu PowerShell:

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

Jeśli plik certyfikatu będzie przechowywany lokalnie na maszynie, dobrym rozwiązaniem jest szyfrowanie go hasłem:

 #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)

Aby uzyskać więcej informacji, zobacz Rozpoczynanie pracy z certyfikatami usługi Azure Key Vault.

Przykłady

Wymagania

Wymaganie Opis
Typy potoków YAML, klasyczna kompilacja, wersja klasyczna
Działa na Agent, DeploymentGroup
Wymagania Żaden
możliwości To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu.
ograniczenia poleceń Jakikolwiek
zmienne ustawiane Jakikolwiek
Wersja agenta 2.182.1 lub nowsza
Kategoria zadań Wdrożyć