Gizli dizi değişkenlerini ayarlama

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Gizli dizi değişkenleri, işlem hatlarında değerlerini göstermeden kullanabileceğiniz şifrelenmiş değişkenlerdir. Parolalar, kimlikler ve işlem hattında kullanıma sunulmasını istemediğiniz diğer tanımlayıcı veriler gibi özel bilgiler için gizli dizi değişkenlerini kullanın. Gizli değişkenler dinlenme durumunda 2048 bit RSA anahtarıyla şifrelenir ve aracıda görevler ve betikler için kullanılabilir.

Gizli dizi değişkenleri neden önemlidir: CI/CD işlem hatlarınızda hassas kimlik bilgilerinin korunması kritik önem taşır. Gizli dizileri güvenli bir şekilde depolayarak hassas kaynaklara yetkisiz erişimi engeller, derleme günlüklerinde kimlik bilgilerinin açığa çıkarılma riskini azaltır ve en iyi güvenlik yöntemleriyle uyumluluğu korursunuz. Gizli dizi değişkenleri yalnızca yetkili işlem hatlarının ve görevlerin hassas verilere erişebilmesini sağlayarak kuruluşunuzun güvenlik duruşunun korunmasını sağlar.

Gizli dizi değişkenlerini ayarlamanın önerilen yolları kullanıcı arabiriminde, değişken grubunda ve Azure Key Vault'taki bir değişken grubunda yer alır. Bir betikte gizli dizi değişkenlerini günlük komutuyla da ayarlayabilirsiniz, ancak işlem hattınıza erişebilen herkes gizli diziyi de görebildiğinden bu yöntem önerilmez.

Bir işlem hattı için işlem hattı ayarları kullanıcı arabiriminde ayarladığınız gizli değişkenler, ayarlandıkları işlem hattıyla sınırlıdır. Gizli dizi değişkenlerini işlem hatları arasında paylaşmak için değişken gruplarını kullanın.

Kullanıcı arabirimindeki gizli değişken

Tek bir işlem hattını düzenlerken işlem hattı düzenleyicisinde gizli dizi değişkenlerini ayarlayın. Kilit simgesini seçerek işlem hattı değişkenini şifreleyin ve gizli hale getirin.

Gizli dizi değişkenlerini YAML ve Klasik için aynı şekilde ayarlayın.

Web arabiriminde gizli verileri ayarlamak için bu adımları izleyin:

  1. İşlem Hatları sayfasına gidin, uygun işlem hattını seçin ve ardından Düzenle'yi seçin.
  2. Bu işlem hattı için Değişkenleri bulun.
  3. Değişkeni ekleyin veya güncelleştirin.
  4. Değişkeni şifrelenmiş bir şekilde depolamak için Bu değeri gizli tut seçeneğini belirleyin.
  5. Veri hattını kaydet.

Gizli değişkenler, durağan haldeyken 2048 bitlik bir RSA anahtarıyla şifrelenir. Görevler ve betikler tarafından kullanılmak üzere ajan üzerinde gizli bilgiler sağlanmıştır. İşlem hattınızı değiştirme erişimi olan kişilere dikkat edin.

Önemli

Azure Pipelines çıkışında gizli bilgilerin görünmesini gizlemeye çalışıyoruz, ancak yine de önlem almanız gerekir. Gizli bilgileri asla çıkışta yansıtmayın. Bazı işletim sistemleri komut satırı bağımsız değişkenlerini günlüğe kaydeder. Komut satırında gizlileri hiçbir zaman geçirmeyin. Bunun yerine, gizli bilgilerinizi ortam değişkenlerine haritalamanızı öneririz.

Gizli bilgilerin alt dizelerini asla maskelemeyiz. Örneğin, "abc123" gizli bir değer olarak ayarlandıysa, "abc" kayıtlar üzerinden maskelenmez. Bu, sırları çok ayrıntılı bir seviyede maskeleyerek günlükleri okunamaz hale getirmekten kaçınmaktır. Bu nedenle sırlar yapılandırılmış veri içermemelidir. Örneğin, "{ "foo": "bar" }" bir gizli olarak ayarlanırsa, "bar" günlüklerden maskelenmez.

Normal bir değişkenin aksine, otomatik olarak şifresi çözülüp betikler için ortam değişkenlerine dönüştürülmezler. Gizli dizi değişkenlerini açıkça eşlemeniz gerekir.

Kullanıcı arabiriminde gizli dizi değişkeni kullanma

YAML işlem hatlarındaki gizli dizi değişkenlerine başvurmak için bunları ortam değişkenleri olarak eşleyin. Bu örnekte kullanıcı arabirimi iki gizli dizi değişkeni SecretOne tanımlar ve SecretTwo. SecretOne değeri foo, ve SecretTwo değeri bar.

steps:
- powershell: |
      Write-Host "My first secret variable is $env:FOO_ONE"
      $env:FOO_ONE -eq "foo"
  env:
    FOO_ONE: $(SecretOne)
- bash: |
    echo "My second secret variable: $FOO_TWO"
    if [ "$FOO_TWO" = "bar" ]; then
        echo "Strings are equal."
    else
        echo "Strings are not equal."
    fi
  env:
    FOO_TWO: $(SecretTwo) 

İşlem hattı çıkışları:

My first secret variable is ***
True
My second secret variable: ***
Strings are equal.

Not

Azure Pipelines, işlem hattı günlüklerine veri gönderirken gizli dizileri maskelemeye çaba gösterir, bu nedenle çıkışta ve günlüklerde gizli dizi olarak ayarlanmamış ek değişkenleri ve verileri maskelenmiş olarak görebilirsiniz.

Daha ayrıntılı bir örnek için bkz . Değişkenleri tanımlama.

Değişken grubunda gizli bir değişken ayarlama

Değişken grubuna gizli diziler ekleyebilir veya mevcut bir Azure Key Vault'tan gizli dizileri bağlayabilirsiniz.

Yeni değişken grupları oluşturma

  1. İşlem Hatları>Kütüphane>+ Değişken Grubu seçin.

    Değişken Grubu Ekle düğmesinin vurgulandığı Kitaplık sayfasının ekran görüntüsü.

  2. Grup için bir ad ve açıklama girin.

  3. İsteğe bağlı: Azure Key Vault'tan gizli bilgileri değişken olarak bağlamak için anahtarı geçiş yapın. Daha fazla bilgi için bkz. Azure Key Vault gizli dizilerini kullanma.

  4. Gruba eklenecek her değişkenin adını ve değerini girin ve her biri için + Ekle'yi seçin.

  5. Değişkeninizin güvenli olmasını sağlamak için satırın sonundaki kilit simgesini seçin.

  6. Değişken eklemeyi bitirdiğinizde Kaydet'i seçin.

    Tamamlanan değişken grubunun kaydedilmeye hazır olduğunu gösteren değişken grubu oluşturma sayfasındaki Kaydet düğmesinin ekran görüntüsü.

Değişken grupları kitaplık güvenlik modelini izler.

Değişken grupları oluşturabilir ve bunları mevcut bir Key Vault'a bağlayarak anahtar kasasında depolanan gizli bilgilere eşleyebilirsiniz. Yalnızca gizli adlar değişken grubuna eşlenir, gizli değerler eşlenmez. İşlem hattı, değişken grubuna bağlanarak kasadan en son gizli değerleri getiren bir çalıştırma gerçekleştirir. Daha fazla bilgi için bkz. Azure Key Vault'ta bir değişken grubunu sırlara bağlama.

Azure Key Vault görevini kullanma

İşlem hattınıza gizli anahtarlar eklemek için Azure Key Vault görevini kullanın. İşlem hattınız bu görevi kullanarak Anahtar Kasası'na bağlanabilir ve işlem hattı değişkenleri olarak kullanılacak gizli bilgileri alabilir.

  1. İşlem hattı düzenleyicisinde Yardımcıyı göster'i seçerek yardımcı panelini genişletin.

  2. vault ile Key Vault görevini arayın ve seçin.

    Azure Key Vault görev seçeneğini gösteren kasa arama sonuçlarının bulunduğu görev yardımcısı panelinin ekran görüntüsü.

Key Vault görevi hakkında daha fazla bilgi için bkz. Azure Pipelines'da Azure Key Vault gizli dizilerini kullanma.

Günlük komutlarını kullanarak bir betikte gizli dizi değişkeni ayarlama

task.setvariable PowerShell ve Bash betiklerinde değişkenleri belirlemek için log komutunu kullanın. Bu yöntem gizli dizi değişkenleriyle çalışmanın en az güvenli yoludur, ancak hata ayıklama için yararlı olabilir. Gizli dizi değişkenlerini ayarlamanın önerilen yolları kullanıcı arabiriminde, değişken grubunda ve Key Vault'taki bir değişken grubunda yer alır.

Uyarı

Güvenlik Riski: Günlük komutlarını kullanarak betiklerde gizli dizi değişkenlerini ayarlamak doğal olarak daha az güvenlidir. İşlem hattı tanımınıza, derleme günlüklerinize veya kaynak koduna erişimi olan herkes günlük komutunu görebilir ve gizliyi potansiyel olarak ifşa edebilir. Bu yöntemi yalnızca güvenli, güvenilen ortamlarda hata ayıklama amacıyla kullanın. Üretim senaryoları için her zaman kullanıcı arabirimi tabanlı yapılandırmayı, değişken gruplarını veya Azure Key Vault tümleştirmesini tercih edin.

Bir değişkeni günlük komutunu kullanarak betik olarak ayarlamak için issecret bayrağını iletin.

"issecret true olarak ayarlandığında değişkenin kıymeti gizli olarak kaydedilir ve günlüklerde gizlenir."

Not

Azure Pipelines, işlem hattı günlüklerine veri gönderirken gizli dizileri maskelemeye çaba gösterir, bu nedenle çıkışta ve günlüklerde gizli dizi olarak ayarlanmamış ek değişkenleri ve verileri maskelenmiş olarak görebilirsiniz.

gizli dizi değişkenini mySecretValayarlayın.

- bash: |
    echo "##vso[task.setvariable variable=mySecretVal;issecret=true]secretvalue"

gizli değişkeni mySecretVal alın.

- bash: |
    echo "##vso[task.setvariable variable=mySecretVal;issecret=true]secretvalue"
- bash: |
    echo $(mySecretVal)

Bash'te gizli değişken çıkışı.

Bash değişkeni çıkışının ekran görüntüsü.

Daha fazla bilgi için bkz. Betiklerde değişkenleri ayarlama ve kullanma.