Azure Key Vault görevi
Azure hizmet bağlantısının kasada en az Get ve List izinlerine sahip olduğundan emin olun. Bu izinleri aşağıdaki Azure portal:
- Kasanın Ayarlar dikey penceresi açın, Erişim ilkeleri'ne ve ardındanYeni ekle'ye tıklayın.
- Erişim ilkesi ekle dikey penceresinde Sorumlu seç'i seçin ve istemci hesabınız için hizmet sorumlularını seçin.
- Erişim ilkesi ekle dikey penceresinde Gizli izinler'i seçin ve Al ve Liste'nin işaretli olduğundan emin olun (işaretlenir).
- Değişiklikleri kaydetmek için Tamam'ı seçin.
Not
Microsoft tarafından barındırılan bir aracı kullanıyorsanız, Güvenlik duvarınıza Microsoft tarafından barındırılan aracının IP aralığını eklemeniz gerekir. Her Çarşamba yayımlanan haftalık JSON dosyasındanIP aralıklarının haftalık listesini al. Yeni IP aralıkları bir sonraki Pazartesi günü geçerli olacak. Daha fazla bilgi için bkz. Microsoft tarafından barındırılan aracılar. Kuruluş için gereken IP aralıklarını bulmak Azure DevOps Microsoft tarafından barındırılan aracılar için olası IP aralıklarını belirlemeyi öğrenin.
YAML kod parçacığı
# Azure Key Vault
# Download Azure Key Vault secrets
- task: AzureKeyVault@2
inputs:
connectedServiceName: # Azure subscription
keyVaultName: # Name of existing key vault
secretsFilter: '*' # Downloads all secrets for the key vault
runAsPreJob: true # Runs before the job starts
Bağımsız değişkenler
| Parametre | Açıklama |
|---|---|
connectedServiceNameAzure Aboneliği |
(Gerekli) Azure Key Vault örneğini içeren Azure aboneliğinin hizmet bağlantısını seçin veya yeni bir bağlantı oluşturun. Daha fazla bilgi edinin |
keyVaultNameKey Vault |
(Gerekli) Gizli dizilerin indir Azure Key Vault dosyanın adını seçin. |
secretsFilterGizli dizi filtresi |
(Gerekli) İndirilecek veya seçilen anahtar kasasında yer alan tüm gizli dizileri indirmek için * virgülle ayrılmış gizli dizi adları listesi. Varsayılan değer: * |
runAsPreJobGizli dizileri işin tamamı için kullanılabilir yapma |
(Gerekli) İş yürütme başlamadan önce görevi çalıştırın. Gizli dizileri yalnızca bunu takip etmeyen görevleri değil, işteki tüm görevlere gösterir. Varsayılan değer: false |
| Parametre | Açıklama |
|---|---|
connectedServiceNameAzure Aboneliği |
(Gerekli) Azure Key Vault örneğini içeren Azure aboneliğinin hizmet bağlantısını seçin veya yeni bir bağlantı oluşturun. Daha fazla bilgi edinin |
keyVaultNameKey Vault |
(Gerekli) Gizli dizilerin indir Azure Key Vault dosyanın adını seçin. |
secretsFilterGizli dizi filtresi |
(Gerekli) İndirilecek veya seçilen anahtar kasasında yer alan tüm gizli dizileri indirmek için * virgülle ayrılmış gizli dizi adları listesi. Varsayılan değer: * |
Not
Değerler dize olarak alınır. Örneğin, connectionStringadlı bir gizli dizi varsa, Azure Key Vault'tan alınan ilgili gizli dizinin en son değeriyle bir görev değişkeni oluşturulur. Bu değişken daha sonra sonraki görevlerde kullanılabilir.
Kasadan alınan değer bir sertifika (örneğin, PFX dosyası) ise, görev değişkeni PFX'in içeriğini dize biçiminde içerir. Görev değişkenlerinden PFX dosyasını almak için aşağıdaki PowerShell kodunu kullanabilirsiniz:
$kvSecretBytes = [System.Convert]::FromBase64String($(PfxSecret))
$certCollection = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2Collection
$certCollection.Import($kvSecretBytes,$null,[System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable)
Sertifika dosyası makinede yerel olarak depolanıyorsa parolayla şifrelemek iyi bir uygulamadır:
#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)
Daha fazla bilgi için bkz. Kullanmaya başlayın ile Azure Key Vault sertifikaları.
Açık kaynak
Bu görev, üzerinde açık kaynak GitHub. Geri bildirim ve katkılar açıktır.
SSS
İşlem forbidden hatlarından kimlik bilgilerini alma noktasında bir hata Azure Key Vault
Azure Key Vault'ta gerekli izinler eksikse bu durum oluşur. Sorunu çözmek için doğru izinlere sahip bir erişim ilkesi ekleyin.
Bir aracıya ihtiyacım var mı?
Derlemenizi veya yayınını çalıştırmak için en az bir aracı gerekir.
Sorunlarımız var. Bunları nasıl gidererim?
Bkz. Derleme ve Sürüm Sorunlarını Giderme.
Varsayılan aracı havuzunu seçe değilim ve derlememi veya sürümümi kuyruğa ala bilmiyorum. Nasıl yaparım? düzeltebilir misiniz?
Bkz. Aracı havuzları.
My NuGet görev şu hatayla başarısız oluyor: "Hata: yerel sertifikayı verdiremiyor". Bunu nasıl düzeltebilirim?
Bu, güvenilen bir kök sertifika ekerek düzeltilmiştir. Ortam değişkenini derleme NODE_EXTRA_CA_CERTS=file aracınıza ekleyebilir veya görev değişkenini işlem NODE.EXTRA.CA.CERTS=file hattınıza ebilirsiniz. Bu Node.js hakkında daha fazla bilgi için bkz.Node.js belgeleri. İşlem hattınıza değişken ayarlama hakkında yönergeler için bkz. İşlem hattında değişken ayarlama.
Key Vault'den Azure DevOps.
Bu durum Key Vault güvenlik duvarı düzgün yapılandırılmamışsa gerçekleşir. Aracı havuzunun ve Veri Merkezi'nin (TFS) anahtar kasasına erişe olduğundan emin olun. Microsoft tarafından barındırılan aracılar için aracı IP aralıklarına izin verili olduğundan emin olmak.
Azure Pipelines
Genel Bakış
Kimlik doğrulama anahtarları, depolama hesabı anahtarları, veri şifreleme anahtarları, gibi gizli dizileri indirmek için bu görevi kullanın. Bir Azure Key Vault örneğinden PFX dosyaları ve parolalar. Görev, tüm gizli dizilerin veya gizli dizilerin bir alt kümesinin en son değerlerini kasadan getirmek ve bunları bir işlem hattının sonraki görevlerde kullanılmaktadır değişken olarak ayarlamak için kullanılabilir. Bu görev Node tabanlıdır ve Linux, macOS ve Windows.
Önkoşullar
Görev aşağıdaki Önkoşullara sahip:
- Azure Resource Manager hizmeti bağlantısını kullanarak Azure Pipelines veya Team Foundation Server bağlı bir Azure aboneliği.
- Gizli Azure Key Vault içeren bir dosya.
Anahtar kasası oluşturabilirsiniz:
- Azure portal
- Azure PowerShell
- Azure CLI kullanarak
Anahtar kasasına gizli diziler ekleyin:
Set-AzureKeyVaultSecretPowerShell cmdlet'ini kullanarak. Gizli dosya yoksa, bu cmdlet onu oluşturur. Gizli dosya zaten varsa, bu cmdlet bu gizli anın yeni bir sürümünü oluşturur.
Azure CLI kullanarak. Anahtar kasasına bir gizli anahtar eklemek için, örneğin Pa$$w 0rddeğerine sahip SQLPassword adlı bir gizli anahtar yazın:
az keyvault secret set --vault-name 'ContosoKeyVault' --name 'SQLPassword' --value 'Pa$$w0rd'
Gizli dizilere erişmek istediğiniz zaman: