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.
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:
- Subskrypcja platformy Azure połączona z usługą Azure Pipelines lub serwerem Team Foundation Server przy użyciu połączenia usługi Azure Resource Manager.
- usługi Azure Key Vault zawierające wpisy tajne.
Magazyn kluczy można utworzyć:
- W witrynie Azure Portal
- Przy użyciu programu Azure PowerShell
- Przy użyciu interfejsu wiersza polecenia platformy Azure
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
Szybki start: używanie wpisów tajnych z usługi Azure Key Vault (klasyczny/YAML)
samouczek : używanie wpisów tajnych usługi Azure Key Vault w potoku YAML
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ć |