AzureKeyVault@2 - Tugas Azure Key Vault v2
Gunakan tugas ini untuk mengunduh rahasia, seperti kunci autentikasi, kunci akun penyimpanan, kunci enkripsi data, . File PFX, dan kata sandi dari instans Azure Key Vault. Tugas dapat digunakan untuk mengambil nilai terbaru dari semua atau subset rahasia dari vault dan mengaturnya sebagai variabel yang dapat digunakan dalam tugas alur berikutnya. Tugas ini berbasis Node dan bekerja dengan agen di Linux, macOS, dan Windows.
Sintaks
# 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.
Input
azureSubscription
- Langganan Azure
Alias input: ConnectedServiceName
. string
. Wajib diisi.
Pilih koneksi layanan untuk langganan Azure yang berisi instans Azure Key Vault, atau buat koneksi baru. Pelajari lebih lanjut.
KeyVaultName
- Brankas kunci
string
. Wajib diisi.
Nama Key Vault Azure yang berisi rahasia untuk diunduh.
SecretsFilter
- Filter rahasia
string
. Wajib diisi. Nilai default: *
.
Mengunduh nama rahasia sesuai dengan nilai yang dimasukkan. Nilai dapat menjadi nilai default untuk mengunduh semua rahasia dari brankas kunci yang dipilih, atau daftar nama rahasia yang dipisahkan koma.
RunAsPreJob
- Membuat rahasia tersedia untuk seluruh pekerjaan
boolean
. Nilai default: false
.
Menjalankan tugas sebelum eksekusi pekerjaan dimulai. Mengekspos rahasia ke semua tugas dalam pekerjaan, bukan hanya tugas yang mengikuti yang satu ini.
Opsi kontrol tugas
Semua tugas memiliki opsi kontrol selain input tugasnya. Untuk informasi selengkapnya, lihat Opsi kontrol dan properti tugas umum.
Variabel output
Tidak ada.
Keterangan
Apa yang baru dalam Versi 2.0: Menambahkan dukungan untuk %3B, %5D dalam rahasia.
Gunakan tugas ini untuk mengunduh rahasia, seperti kunci autentikasi, kunci akun penyimpanan, kunci enkripsi data, . File PFX, dan kata sandi dari instans Azure Key Vault. Tugas dapat digunakan untuk mengambil nilai terbaru dari semua atau subset rahasia dari vault dan mengaturnya sebagai variabel yang dapat digunakan dalam tugas alur berikutnya. Tugas ini berbasis Node dan bekerja dengan agen di Linux, macOS, dan Windows.
Saya mendapatkan forbidden
kesalahan pada alur pada titik mendapatkan kredensial dari Azure Key Vault
Ini terjadi jika izin yang diperlukan hilang di brankas kunci Azure. Untuk mengatasi masalah ini, tambahkan kebijakan akses dengan izin yang benar.
Prasyarat
Tugas ini memiliki Prasyarat berikut:
- Langganan Azure yang ditautkan ke Azure Pipelines atau Team Foundation Server menggunakan koneksi layanan Azure Resource Manager.
- Azure Key Vault yang berisi rahasia.
Anda dapat membuat brankas kunci:
- Di portal Microsoft Azure
- Dengan menggunakan Azure PowerShell
- Dengan menggunakan Azure CLI
Tambahkan rahasia ke brankas kunci:
Dengan menggunakan cmdlet PowerShell Set-AzureKeyVaultSecret. Jika rahasia tidak ada, cmdlet ini membuatnya. Jika rahasia sudah ada, cmdlet ini membuat versi baru rahasia tersebut.
Dengan menggunakan Azure CLI. Untuk menambahkan rahasia ke brankas kunci, misalnya rahasia bernama SQLPassword dengan nilai PlaceholderPassword, ketik:
az keyvault secret set --vault-name 'ContosoKeyVault' --name 'SQLPassword' --value 'PlaceholderPassword'
Saat Anda ingin mengakses rahasia:
Pastikan koneksi layanan Azure memiliki setidaknya izin Dapatkan dan Daftar di vault. Anda dapat mengatur izin ini di portal Azure:
- Buka bilah Pengaturan untuk vault, pilih Kebijakan akses, lalu Tambahkan baru.
- Di bilah Tambahkan kebijakan akses , pilih Pilih utama dan pilih perwakilan layanan untuk akun klien Anda.
- Di bilah Tambahkan kebijakan akses , pilih Izin rahasia dan pastikan bahwa Dapatkan dan Daftar dicentang (dicentang).
- Pilih OK untuk menyimpan perubahan.
Catatan
Jika Anda menggunakan agen yang dihosting Microsoft, Anda harus menambahkan rentang IP agen yang dihosting Microsoft ke firewall Anda. Dapatkan daftar mingguan rentang IP dari file JSON mingguan, yang diterbitkan setiap hari Rabu. Rentang IP baru mulai berlaku pada hari Senin berikutnya. Untuk informasi selengkapnya, lihat agen yang dihosting Microsoft. Untuk menemukan rentang IP yang diperlukan untuk organisasi Azure DevOps Anda, pelajari cara mengidentifikasi kemungkinan rentang IP untuk agen yang dihosting Microsoft.
Catatan
Nilai diambil sebagai string. Misalnya, jika ada rahasia bernama connectionString, variabel connectionString
tugas dibuat dengan nilai terbaru dari rahasia masing-masing yang diambil dari brankas kunci Azure. Variabel ini kemudian tersedia dalam tugas berikutnya.
Jika nilai yang diambil dari vault adalah sertifikat (misalnya, file PFX), variabel tugas akan berisi konten PFX dalam format string. Anda dapat menggunakan kode PowerShell berikut untuk mengambil file PFX dari variabel tugas:
$kvSecretBytes = [System.Convert]::FromBase64String("$(PfxSecret)")
$certCollection = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2Collection
$certCollection.Import($kvSecretBytes,$null,[System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable)
Jika file sertifikat akan disimpan secara lokal di komputer, ada baiknya untuk mengenkripsinya dengan kata sandi:
#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)
Untuk informasi selengkapnya, lihat Mulai menggunakan sertifikat Azure Key Vault.
Persyaratan
Persyaratan | Deskripsi |
---|---|
Jenis alur | YAML, Build klasik, Rilis klasik |
Berjalan pada | Agen, DeploymentGroup |
Permintaan | Tidak ada |
Kemampuan | Tugas ini tidak memenuhi tuntutan apa pun untuk tugas berikutnya dalam pekerjaan. |
Pembatasan perintah | Apa pun |
Variabel yang dapat diatur | Apa pun |
Versi agen | 2.182.1 atau lebih tinggi |
Kategori tugas | Sebarkan |