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 hassas bilgileri 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 hem yazılım hem de HSM destekli anahtarları, gizli dizileri ve sertifikaları depolayabilirken 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

Depo oluşturma

Kendi deponuz zaten varsa sonraki adıma geçin. Aksi takdirde, deponuzu başlatmak için aşağıdaki yönergeleri izleyin. İşlem hattımızı ayarlamak için bu Azure Repo'muzu kullanacağız.

  1. Azure DevOps kuruluşunuzda oturum açın ve projenize gidin.

  2. Depolar'ı ve ardından Başlat'ı seçerek ana dalı BENİOKU ile başlatın.

    BENİOKU dosyasıyla depo başlatmayı gösteren ekran görüntüsü.

Azure Key Vault oluşturma

  1. Azure Portalı'nda oturum açın ve sağ üst köşedeki Cloud Shell düğmesini seçin.

  2. 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 kullanabilirsiniz az account list .

    az account set --subscription <YOUR_SUBSCRIPTION_NAME_OR_ID>
    
  3. 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>
    
  4. Yeni bir kaynak grubu oluşturma.

    az group create --name <YOUR_RESOURCE_GROUP_NAME>
    
  5. Yeni bir Azure Key Vault oluşturun.

    az keyvault create \
      --name <YOUR_KEY_VAULT_NAME> \
      --resource-group <YOUR_RESOURCE_GROUP_NAME>
    
  6. Azure anahtar kasanızda yeni bir gizli dizi oluşturun.

    az keyvault secret set \
      --name <YOUR_SECRET_NAME> \
      --value <YOUR_ACTUAL_SECRET> \
      --vault-name <YOUR_KEY_VAULT_NAME>
    

Anahtar kasası erişim ilkelerini ayarlama

Azure Key Vault'a erişmek için Azure Pipelines'a erişim izni vermek için bir hizmet sorumlusu ayarlamamız gerekir. Azure CLI ile hizmet sorumlusu oluşturmak için bu kılavuzu izleyin ve ardından bu bölümdeki sonraki adımlarla devam edin.

  1. Azure portalına gidin ve daha önce oluşturduğunuz anahtar kasasını bulmak için arama çubuğunu kullanın.

    Azure Key Vault'unuzu aramayı gösteren ekran görüntüsü.

  2. Yeni bir ilke oluşturmak için Erişim ilkeleri'ni ve ardından Oluştur'u seçin.

  3. Gizli dizi izinleri'nin altında Al ve Listele'yi seçin.

  4. İleri'yi ve ardından daha önce oluşturduğunuz hizmet sorumlusunu seçin. Hizmet sorumlusu, Azure kaynaklarına erişim isteyen bir uygulamayı veya hizmeti temsil eden bir nesnedir.

  5. İleri'yi ve ardından bir kez daha İleri'yi seçin.

  6. İlkelerinizi gözden geçirin ve işiniz bittiğinde Oluştur'u seçin.

Not

Azure rol tabanlı erişim denetimi (Azure RBAC) kullanan Azure Key Vault'lar desteklenmez.

Rol ataması ekle

Sonraki adımda hizmet sorumlusunu kullanarak bir ARM hizmet bağlantısı oluşturacağız. Bağlantıyı doğrulayabilmeniz için önce hizmet sorumlusuna abonelik düzeyinde Okuma erişimi vermemiz gerekir:

  1. Azure portalına gidin

  2. Sol gezinti panelinden Abonelikler'i seçin ve ardından aboneliğinizi bulup seçin.

  3. Erişim denetimi'ni ve ardından Rol ataması ekle'yi>seçin.

    Abonelik düzeyinde yeni rol atamasının nasıl ekleneceğini gösteren ekran görüntüsü.

  4. Rol sekmesinin altında Okuyucu'ya ve ardından İleri'ye tıklayın.

  5. Kullanıcı, grup veya hizmet sorumlusu'nun ardından Üye seç'i seçin.

    Azure'da rol atamasına üye eklemeyi gösteren ekran görüntüsü.

  6. Hizmet sorumlunuzu bulmak için arama çubuğunu kullanın ve ardından seçmek için "+" işaretini seçin, ardından Seç düğmesine tıklayın.

  7. Gözden geçir ve ata'yı seçin, ayarlarınızı gözden geçirin ve ardından seçimlerinizi onaylamak ve rol atamasını eklemek için Gözden geçir + ata'yı bir kez daha seçin.

Hizmet bağlantısı oluşturma

  1. Azure DevOps kuruluşunuzda oturum açın ve projenize gidin.

  2. Proje ayarları>Hizmet bağlantıları'nı ve ardından Yeni hizmet bağlantısı'nı seçerek yeni bir hizmet bağlantısı oluşturun.

  3. Azure Resource Manager'ı ve ardından İleri'yi seçin.

  4. Hizmet sorumlusu (el ile) öğesini ve ardından İleri'yi seçin.

  5. Kapsam Düzeyi için Ortam ve Abonelik için Azure Bulutu'natıklayın, ardından Abonelik Kimliğinizi ve Abonelik Adınızı girin.

  6. Aşağıdaki alanları hizmet sorumlusunu oluştururken elde ettiğiniz bilgilerle doldurun ve işiniz bittiğinde doğrula'yı seçin:

    • Hizmet Sorumlusu Kimliği: Hizmet sorumlusu appId'niz.
    • Hizmet Sorumlusu anahtarı: Hizmet sorumlusu parolanız.
    • Kiracı Kimliği: Hizmet sorumlusu kiracınız.
  7. Doğrulama başarılı olduktan sonra, hizmet bağlantınız için bir ad ve açıklama (isteğe bağlı) sağlayın ve ardından Tüm işlem hatlarına erişim izni ver onay kutusunu işaretleyin.

  8. Doğrula'yı seçin ve işiniz bittiğinde kaydedin .

    Hizmet sorumlusu kullanarak yeni bir Azure Resource Manager hizmet bağlantısı oluşturmayı gösteren ekran görüntüsü.

  1. Azure DevOps koleksiyonunuzda oturum açın ve projenize gidin.

  2. Yeni arm hizmet bağlantısı oluşturmak için Proje ayarları>Hizmet bağlantıları>Yeni hizmet bağlantısı'nı ve ardından Azure Resource Manager'ı seçin.

  3. Hizmet bağlantınıza bir ad verin ve ardından Kapsam Düzeyi için Ortam ve Abonelik için Azure Bulutu'na tıklayın.

  4. Abonelik Kimliğinizi ve Abonelik Adınızı girin.

  5. Aşağıdaki alanları hizmet sorumlusunu oluştururken elde ettiğiniz bilgilerle doldurun ve işiniz bittiğinde Bağlantıyı doğrula'yı seçin:

    • Hizmet Sorumlusu istemci kimliği: Hizmet sorumlusu appId'niz.
    • Hizmet Sorumlusu anahtarı: Hizmet sorumlusu parolanız.
    • Kiracı Kimliği: Hizmet sorumlusu kiracınız.
  6. Tüm işlem hatlarının bu bağlantıyı kullanmasına izin ver onay kutusunu işaretleyin ve işiniz bittiğinde Tamam'ı seçin.

    Azure DevOps Server 2019'da hizmet sorumlusu kullanarak yeni bir ARM hizmet bağlantısı oluşturmayı gösteren ekran görüntüsü.

Yeni ardışık düzen oluşturma

  1. Azure DevOps kuruluşunuzda oturum açın ve projenize gidin.

  2. İşlem Hatları'yı ve ardından Yeni İşlem Hattı'yı seçin.

  3. Klasik işlem hattı oluşturmak için Klasik düzenleyiciyi kullan'ı seçin.

  4. Azure Repos Git'i seçin, deponuzu ve varsayılan dalınızı seçin ve ardından Devam'ı seçin.

  5. .Net Desktop işlem hattı şablonunu seçin.

  6. Bu örnekte yalnızca son iki göreve ihtiyacımız olacak. CTRL tuşuna basın ve ardından ilk beş görevi seçin, sağ tıklayıp Seçili görevleri kaldır'ı seçerek silin.

    Birden çok işlem hattı görevini silmeyi gösteren ekran görüntüsü.

  7. Yeni görev eklemek için seçin + . Komut satırı görevini arayın, seçin ve ardından ekle'yi seçerek işlem hattınıza ekleyin. Eklendikten sonra aşağıdaki gibi yapılandırın:

    • Görünen ad: Dosya oluşturma
    • Betik: echo $(YOUR_SECRET_NAME) > secret.txt

    Komut satırı görevini yapılandırmayı gösteren ekran görüntüsü.

  8. Yeni görev eklemek için seçin + . Azure Key Vault görevini arayın, seçin ve ardından ekle* seçeneğini belirleyerek bunu işlem hattınıza ekleyin. Eklendikten sonra aşağıdaki gibi yapılandırın:

    • Görünen ad: Azure Key Vault
    • Azure aboneliği: Daha önce oluşturduğunuz hizmet sorumlusu hizmet bağlantınızı seçin
    • Anahtar kasası: Anahtar kasanızı seçin
    • Gizli dizi filtresi: Gizli dizi adlarının virgülle ayrılmış listesi veya seçili anahtar kasasından tüm gizli dizileri indirmek için * bırakın

    Klasik işlem hatlarında Azure Key Vault görevinin nasıl ayarlandığını gösteren ekran görüntüsü.

  9. Dosyaları kopyala görevini seçin ve gerekli alanları aşağıdaki gibi doldurun:

    • Görünen ad: Dosya Kopyala
    • İçerik: secret.txt
    • Hedef Klasör: $(build.artifactstagingdirectory)

    Klasik işlem hatlarında dosya kopyalama görevinin nasıl ayarlandığını gösteren ekran görüntüsü.

  10. Yapıtları Yayımla görevini seçin ve gerekli alanları aşağıdaki gibi doldurun:

    • Görünen ad: Yapıt Yayımla
    • Yayımlama yolu: $(build.artifactstagingdirectory)
    • Yapıt adı: drop
    • Yapıt yayımlama konumu: Azure Pipelines

    Klasik işlem hatlarında yapıt yayımlama görevinin nasıl ayarlandığını gösteren ekran görüntüsü.

  11. Kaydet ve kuyruk'u ve ardından çalıştır'ı seçerek işlem hattınızı çalıştırın.

  12. İşlem hattı çalıştırması tamamlandıktan sonra işlem hattı özetine dönün ve yayımlanan yapıtı seçin.

  13. Yayımlanan yapıtı indirmek için secret.txt bırak'ı>seçin.

    Yayımlanan yapıtın nasıl indirilmesini gösteren ekran görüntüsü.

  14. Az önce indirdiğiniz metin dosyasını açın; metin dosyası Azure anahtar kasanızdaki gizli diziyi içermelidir.

  1. Azure DevOps koleksiyonunuzda oturum açın ve projenize gidin.

  2. İşlem hatları'nın ardından Derlemeler'i seçin.

  3. Yeni Yeni>derleme işlem hattı'ı seçin.

  4. Yeni bir klasik derleme işlem hattı oluşturmak için Klasik düzenleyiciyi kullan'ı seçin.

  5. Azure Repos Git'i seçin, deponuzu ve varsayılan dalınızı seçin ve ardından Devam'ı seçin.

  6. .Net Desktop işlem hattı şablonunu ve ardından Uygula'yı seçin.

  7. Bu örnekte yalnızca son iki göreve ihtiyacımız olacak. CTRL tuşuna basın ve ardından ilk beş görevi seçin, sağ tıklayıp Seçili görevleri kaldır'ı seçerek silin.

    Azure DevOps Server 2019'da klasik işlem hatlarında birden çok işlem hattı görevini silmeyi gösteren ekran görüntüsü.

  8. Yeni görev eklemek için seçin + . Komut satırı görevini arayın, seçin ve ardından ekle'yi seçerek işlem hattınıza ekleyin. Eklendikten sonra aşağıdaki gibi yapılandırın:

    • Görünen ad: Dosya oluşturma
    • Betik: echo $(YOUR_SECRET_NAME) > secret.txt

    Azure DevOps Server 2019'da klasik işlem hatlarında komut satırı görevini yapılandırmayı gösteren ekran görüntüsü.

  9. Yeni görev eklemek için seçin + . Azure Key Vault görevini arayın, seçin ve ardından ekle* seçeneğini belirleyerek bunu işlem hattınıza ekleyin. Eklendikten sonra aşağıdaki gibi yapılandırın:

    • Görünen ad: Azure Key Vault
    • Azure aboneliği: Daha önce oluşturduğunuz hizmet sorumlusu hizmet bağlantınızı seçin
    • Anahtar kasası: Anahtar kasanızı seçin
    • Gizli dizi filtresi: Gizli dizi adlarının virgülle ayrılmış listesi veya seçili anahtar kasasından tüm gizli dizileri indirmek için * bırakın

    Azure DevOps Server 2019'da klasik işlem hattında Azure Key Vault görevinin nasıl ayarlandığını gösteren ekran görüntüsü.

  10. Dosyaları kopyala görevini seçin ve gerekli alanları aşağıdaki gibi doldurun:

    • Görünen ad: Dosya Kopyala
    • İçerik: secret.txt
    • Hedef Klasör: $(build.artifactstagingdirectory)

    Azure DevOps Server 2019'da klasik işlem hatlarında dosya kopyalama görevinin nasıl ayarlandığını gösteren ekran görüntüsü.

  11. Yapıtları Yayımla görevini seçin ve gerekli alanları aşağıdaki gibi doldurun:

    • Görünen ad: Yapıt Yayımla
    • Yayımlama yolu: $(build.artifactstagingdirectory)
    • Yapıt adı: drop
    • Yapıt yayımlama konumu: Azure Pipelines

    Azure DevOps Server 2019'da klasik işlem hatlarında yapıt yayımlama görevinin nasıl ayarlandığını gösteren ekran görüntüsü.

  12. Oluştur işlem hattınızı çalıştırmak için Kaydet & kuyruk'u ve ardından Kaydet ve kuyruk'u seçin.

  13. İşlem hattı çalıştırması tamamlandıktan sonra Yapıtlar'ı ve ardından bırak'ı seçin.

  14. Yeni açılan pencerede secret.txt bırak'ı>seçin, üç nokta simgesini (...) seçin ve ardından indir'i seçerek metin dosyasını kaydedin.

  15. Az önce indirdiğiniz metin dosyasını açın; Azure anahtar kasanızdaki gizli diziyi içermelidir.

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:

  1. Projenizi barındırmak için yeni bir kuruluş oluşturduysanız bkz . Kuruluşunuzu silme, aksi takdirde projenizi silme.

  2. Bu öğretici sırasında oluşturulan tüm Azure kaynakları tek bir kaynak grubu altında barındırılır. Kaynak grubunuzu ve tüm kaynaklarını silmek için aşağıdaki komutu çalıştırın.

    az group delete --name <YOUR_RESOURCE_GROUP_NAME>
    

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'taki 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;