Azure Pipelines’da Azure Key Vault Gizli Dizilerini Kullanma
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Azure Key Vault geliştiricilerin API anahtarları, kimlik bilgileri veya sertifikalar gibi gizli dizileri güvenli bir şekilde depolamasına ve yönetmesine olanak tanır. Azure Key Vault hizmeti iki tür kapsayıcıyı destekler: kasalar ve yönetilen HSM (donanım güvenlik modülü) havuzları. Kasalar yazılım ve HSM destekli anahtarları, gizli dizileri ve sertifikaları depolamayı desteklerken, yönetilen HSM havuzları yalnızca HSM destekli anahtarları destekler.
Bu öğreticide şunların nasıl yapıldığını öğrenirsiniz:
- Azure CLI kullanarak Azure Key Vault oluşturma
- Gizli dizi ekleme ve Azure anahtar kasasına erişimi yapılandırma
- İşlem hattınızda gizli dizileri kullanma
Önkoşullar
- Bir Azure DevOps kuruluşu. Microsoft hesabınız yoksa ücretsiz olarak oluşturabilirsiniz.
- Azure aboneliği. Henüz bir Azure hesabınız yoksa ücretsiz olarak bir Azure hesabı oluşturun.
Azure Key Vault oluşturma
Azure Portalı'nda oturum açın ve sağ üst köşedeki Cloud Shell düğmesini seçin.
Hesabınızla ilişkilendirilmiş birden fazla Azure aboneliğiniz varsa, varsayılan aboneliği belirtmek için aşağıdaki komutu kullanın. Aboneliklerinizin listesini oluşturmak için komutunu kullanabilirsiniz
az account list
.az account set --subscription <your_subscription_name_or_ID>
Varsayılan Azure bölgenizi ayarlayın. Kullanılabilir bölgelerin listesini oluşturmak için kullanabilirsiniz
az account list-locations
.az config set defaults.location=<your_region>
Örneğin, bu komut westus2 bölgesini seçer:
az config set defaults.location=westus2
Yeni bir kaynak grubu oluşturma. Kaynak grubu, bir Azure çözümüne ilişkin kaynakları tutan bir kapsayıcıdır.
az group create --name <your-resource-group>
Yeni bir anahtar kasası oluşturun.
az keyvault create \ --name <your-key-vault> \ --resource-group <your-resource-group>
Azure anahtar kasanızda yeni bir gizli dizi oluşturun.
az keyvault secret set \ --name "Password" \ --value "mysecretpassword" \ --vault-name <your-key-vault-name>
Proje oluşturma
Azure DevOps kuruluşunuzda oturum açın.
Kuruluşunuzda henüz hiç proje yoksa başlamak için Proje oluştur'u seçin. Aksi takdirde, sağ üst köşedeki Yeni proje'yi seçin.
Depo oluşturma
İşlem hattımızı oluşturmak için YAML kullanacağız ancak önce yeni bir depo oluşturmamız gerekiyor.
Azure DevOps kuruluşunuzda oturum açın ve projenize gidin.
Depolar'ı seçin ve ardından BeniOKU ile yeni bir depo başlatmak için Başlat'ı seçin.
Yeni işlem hattı oluşturma
İşlem Hatları'yı ve ardından Yeni İşlem Hattı'yı seçin.
git (YAML) Azure Repos seçin.
Önceki adımda oluşturduğunuz depoyu seçin.
Starter işlem hattı şablonunu seçin.
Varsayılan işlem hattı, yankı komutlarını çalıştıran birkaç betik içerir. Bunları silebilmemiz için bunlar gerekli değildir. Yeni YAML dosyanız şu şekilde görünmelidir:
trigger: - main pool: vmImage: 'ubuntu-latest' steps:
yardımcı panelini genişletmek için yardımcı göster'i seçin. Bu panel, işlem hattı görevlerinin kullanışlı ve aranabilir bir listesini sağlar.
Kasayı arayın ve Azure Key Vault görevini seçin.
Azure aboneliğinizi ve ardından Yetki ver'i seçin. Açılan menüden Anahtar kasanızı seçin ve ardından görevi YAML işlem hattınıza eklemek için Ekle'yi seçin.
Not
Gizli dizileri tüm iş için kullanılabilir hale getirme özelliği Azure DevOps Server 2019 ve 2020'de desteklenmez.
YAML dosyanız aşağıdaki gibi görünmelidir:
trigger: - main pool: vmImage: ubuntu-latest steps: - task: AzureKeyVault@2 inputs: azureSubscription: 'Your-Azure-Subscription' KeyVaultName: 'Your-Key-Vault-Name' SecretsFilter: '*' RunAsPreJob: false - task: CmdLine@2 inputs: script: 'echo $(Your-Secret-Name) > secret.txt' - task: CopyFiles@2 inputs: Contents: secret.txt targetFolder: '$(Build.ArtifactStagingDirectory)' - task: PublishBuildArtifacts@1 inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)' ArtifactName: 'drop' publishLocation: 'Container'
İşlem hattınızı henüz kaydetmeyin veya kuyruğa alın. öncelikle işlem hattımıza Azure Key Vault erişmek için doğru izinleri vermeliyiz. Tarayıcı sekmenizi açık tutun, anahtar kasası izinlerini ayarladıktan sonra kalan adımları sürdüreceğiz.
Azure Key Vault erişim ilkelerini ayarlama
Azure Key Vault erişmek için öncelikle Azure Pipelines'a erişim vermek için bir hizmet sorumlusu ayarlamamız gerekir. Hizmet sorumlunuzu oluşturmak için bu kılavuzu izleyin ve ardından bu bölümdeki sonraki adımlarla devam edin.
Azure portalına gidin.
Daha önce oluşturduğunuz anahtar kasasını aramak için arama çubuğunu kullanın.
Ayarlar'ın altında Erişim ilkeleri'ni seçin.
Yeni ilke eklemek için Erişim İlkesi Ekle'yi seçin.
Gizli dizi izinleri için Al ve Listele'yi seçin.
Bir hizmet sorumlusu seçme seçeneğini belirleyin ve bu bölümün başında oluşturduğunuz hizmet sorumlusunu arayın. Güvenlik sorumlusu, Azure kaynaklarına erişim isteyen bir kullanıcı, grup, hizmet veya uygulamayı temsil eden bir nesnedir.
Erişim ilkesini oluşturmak için Ekle'yi ve işiniz bittiğinde Kaydet'i seçin.
Not
Azure rol tabanlı erişim denetimini (Azure RBAC) kullanan Azure Key Vault'lar desteklenmez.
İşlem hattını çalıştırma ve gözden geçirme
Kaldığımız önceki sekmeye dönün.
Kaydet'i seçin ve sonra değişikliklerinizi işleyip işlem hattını tetiklemek için yeniden Kaydet'i seçin. İstenirse İzin Ver'i seçerek azure kaynaklarına işlem hattı erişimine izin vermeniz istenebilir. İşlem hattınızı yalnızca bir kez onaylamanız gerekir.
Günlükleri görüntülemek için CmdLine görevini seçin.
İşlem hattı özetine dönün ve yayımlanan yapıtı seçin.
açmak içinsecret.txt yapıtını seçin.
Metin dosyası gizli dizimizi içermelidir: mysecretpassword.
Uyarı
Bu öğretici yalnızca eğitim amaçlıdır. Güvenlikle ilgili en iyi yöntemler ve gizli dizilerle güvenli bir şekilde çalışma hakkında bilgi için bkz. Azure Key Vault ile sunucu uygulamalarınızda gizli dizileri yönetme.
Kaynakları temizleme
Oluşturduğunuz kaynakları silmek için aşağıdaki adımları izleyin:
Projenizi barındırmak için yeni bir kuruluş oluşturduysanız bkz. Kuruluşunuzu silme, aksi takdirde projenizi silme.
Bu öğretici sırasında oluşturulan tüm Azure kaynakları PipelinesKeyVaultResourceGroup tek bir kaynak grubu altında barındırılır. Kaynak grubunu ve tüm kaynaklarını silmek için aşağıdaki komutu çalıştırın.
az group delete --name PipelinesKeyVaultResourceGroup
SSS
S: Şu hatayı alıyorum: "Kullanıcı veya grubun gizli dizi listesi izni yok" ne yapmalıyım?
Y: Kullanıcı veya grubun anahtar kasası üzerinde gizli dizi listesi izni olmadığını belirten bir hatayla karşılaşırsanız, uygulamanızı Azure Key Vault anahtara veya gizli diziye erişme yetkisi vermek için aşağıdaki komutları çalıştırın:
$ErrorActionPreference="Stop";
$Credential = Get-Credential;
Connect-AzAccount -SubscriptionId <YOUR_SUBSCRIPTION_ID> -Credential $Credential;
$spn=(Get-AzureRmADServicePrincipal -SPN <YOUR_SERVICE_PRINCIPAL_ID>);
$spnObjectId=$spn.Id;
Set-AzureRmKeyVaultAccessPolicy -VaultName key-vault-tutorial -ObjectId $spnObjectId -PermissionsToSecrets get,list;
Sonraki adımlar
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin