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.

Dane wejściowe

azureSubscription - Subskrypcja 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.


KeyVaultName - Magazyn kluczy
string. Wymagane.

Nazwa Key Vault platformy Azure, która zawiera wpisy tajne do pobrania.


SecretsFilter - Filtr wpisów tajnych
string. Wymagane. Wartość domyślna: *.

Pobiera nazwy wpisów tajnych zgodnie z wprowadzoną wartością. Wartość może być wartością domyślną do pobrania wszystkich wpisów tajnych z wybranego magazynu kluczy lub rozdzielanej przecinkami listy nazw wpisów tajnych.


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

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


Opcje sterowania zadaniami

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

Zmienne wyjściowe

Brak.

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ę forbidden błąd w potokach 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, dodaj zasady dostępu z odpowiednimi uprawnieniami.

Wymagania 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-AzureKeyVaultSecret. 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'
    

Gdy chcesz uzyskać dostęp do wpisów tajnych:

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

    • Otwórz blok Ustawienia magazynu, wybierz pozycję Zasady dostępu, a następnie dodaj nowy.
    • W bloku Dodawanie zasad dostępu wybierz pozycję Wybierz jednostkę i wybierz jednostkę usługi dla konta klienta.
    • W bloku Dodawanie zasad dostępu wybierz pozycję Uprawnienia wpisu tajnego i upewnij się, że pole Wyboru i lista jest zaznaczone (zaznaczone).
    • Wybierz przycisk OK , aby zapisać zmiany.

Uwaga

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 stają się skuteczne w następujący poniedziałek. Aby uzyskać więcej informacji, zobacz Agenci hostowani 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.

Uwaga

Wartości są pobierane jako ciągi. Jeśli na przykład istnieje wpis tajny o nazwie connectionString, zmienna connectionString zadań zostanie utworzona 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 jest certyfikatem (na przykład plikiem PFX), zmienna zadania będzie zawierać zawartość pliku PFX w formacie ciągu. Aby pobrać plik PFX ze zmiennej zadań, 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 Wprowadzenie do certyfikatów usługi Azure Key Vault.

Wymagania

Wymaganie Opis
Typy potoków YAML, kompilacja klasyczna, wersja klasyczna
Działa na Agent, DeploymentGroup
Wymagania Brak
Możliwości To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu.
Ograniczenia poleceń Dowolne
Zmienne w formie tabeli settable Dowolne
Wersja agenta 2.182.1 lub nowsza
Kategoria zadania Wdrażanie