Aracılığıyla paylaş


Azure Pipelines'da gizli bilgiler

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

Bu makalede Azure Pipelines'da gizli bilgileri korumaya dair en iyi yöntemler açıklanmaktadır. Gizli dizi, API anahtarları, parolalar, sertifikalar veya şifreleme anahtarları gibi erişimi sıkı bir şekilde denetlemek istediğiniz her şeydir. Azure Pipelines gizli dizi değerleri oluşturmaz, ancak API anahtarları gibi hassas verileri depolamak için işlem hatlarına gizli dizi eklemeniz gerekebilir.

Bu makale, Azure Pipelines için güvenlik önlemleri uygulamanıza yardımcı olan bir serinin parçasıdır. Daha fazla bilgi için bkz . Azure Pipelines'ın güvenliğini sağlama.

Önkoşullar

Kategori Gereksinimler
Azure DevOps - Azure DevOps'unuzu güvenli hale getirme ve Azure Pipelines'ı güvenli hale getirme bölümünde öneriler uygulayın.
- YAML ve Azure Pipelines hakkında temel bilgiler. Daha fazla bilgi için bkz. İlk işlem hattınızı oluşturma.
İzinler - İşlem hattı izinlerini değiştirmek için: Proje Yöneticileri grubunun üyesi.
- Kuruluş izinlerini değiştirmek için: Proje Koleksiyonu Yöneticileri grubunun üyesi.

Başka bir yöntem kullanma

Gizli bilgiler doğal güvenlik riskleri oluşturduğundan, bunları hiç kullanmamak en iyisidir. Değişkenlerde gizli dizileri yönetmek veya bunları işlem hattı yapılandırmanızda kullanıma açmak yerine, işlem hattınızın bir görev yapmak için diğer yöntemlerden birini kullanıp kullanamadığını görün.

Daha fazla bilgi için bkz. Hizmet sorumlularını ve yönetilen kimlikleri kullanma.

Gizli dizi değişkenlerini kullanma

Hassas değerleri hiçbir zaman azure-pipelines.yml bir dosyada düz metin olarak depolamayın. Gizli dizi değişkenlerini parolalar, kimlikler ve kullanıma sunulmasını istemediğiniz diğer tanımlayıcı veriler gibi özel bilgiler için kullanabilirsiniz. Gizli dizi değişkenleri şifrelendiğinden, değerlerini göstermeden bunları işlem hatlarında kullanabilirsiniz.

  • Azure Key Vault'ta gizli dizi değişkenlerini güvenli bir şekilde yönetmek en iyisidir. Gizli dizi değişkenlerini işlem hattı tanımı kullanıcı arabiriminde veya değişken grubunda da ayarlayabilirsiniz.
  • Gizli bir değişken ayarlamak için günlükleme komutunu kullanmayın çünkü işlem hattınıza erişebilen herkes bu gizliyi de görebilir.
  • Gizli bilgileri hiçbir zaman çıkış olarak göstermeyin ve komut satırına gizli bilgileri geçirmeyin. Bunun yerine, gizli bilgilerinizi çevresel değişkenlere eşlemek en iyisidir.
  • Gizli dizi oluşturduğunuzda değişken adlandırma yönergelerini izleyin ve gizli dizi adınızın hassas bilgileri ifşa etmediğinden emin olun.

Değişkenlerdeki gizli dizileri ayarlama hakkında daha fazla bilgi edinmek için bkz. Gizli dizi değişkenlerini ayarlama.

Gizli dizi değişkenlerine erişimi sınırlama

Azure DevOps'ta gizli dizilere erişimi sınırlamak için şu uygulamalardan birini izleyin:

  • Gizli bilgilerinizi Azure Key Vault'ta depolayın. Azure Key Vault kullanarak Azure rol tabanlı erişim denetimini kullanarak bir sır veya sırlar grubuna erişimi sınırlandırabilirsiniz.
  • İşlem hattı kullanıcı arabiriminde gizli dizi değişkenlerini ayarlayın. Bu değişkenlerin kapsamı, ayarlandıkları işlem hattına göre belirlenmiştir, bu nedenle yalnızca söz konusu işlem hattının kullanıcıları tarafından görülebilir.
  • Değişken gruplarında gizli bilgileri ayarlayın. Değişken grupları kitaplık güvenlik modelini izler, böylece öğelere kimlerin erişebileceğini veya öğe oluşturabileceğini denetleyebilirsiniz.

Günlüklere gizli dizi yazma

Azure Pipelines, günlüklerdeki gizli bilgileri olanaklı olduğunda temizlemeye çalışır, ancak kusursuz değildir. Gizli dizileri konsolda yankılamaktan, komut satırı parametrelerinde kullanmaktan veya dosyalara günlüğe kaydetmekten kaçının.

Hassas bilgiler veren Azure CLI komutlarını kullanırken dikkatli olun. Hiçbiri çıktı formatını kullanın ve bir Azure CLI çağrısından gizli bir bilgi almanız gerekiyorsa, gizli değişkenden güvenlik bilgilerini alın.

Yapılandırılmış verileri gizli dizi olarak kullanma

Gizli değerleri kapsüllemede satır başı \r ve satır besleme \n gibi denetim karakterleri de dahil olmak üzere JSON, XML veya YAML gibi yapılandırılmış veri biçimlerini kullanmaktan kaçının. Bunun yerine, her hassas değer için ayrı gizli diziler oluşturun. Bu yaklaşım, redaksiyon doğruluğunun daha iyi olmasını sağlar ve hassas verileri yanlışlıkla ortaya çıkarma riskini en aza indirir.

Gizli kullanım denetimi

İşlem hatlarınızın gizli bilgileri nasıl kullandığını denetlemek için şu en iyi uygulamaları izleyin:

  • İşlem hattını barındıran deponun kaynak kodunu inceleyin. Gizli bilgilerin doğru şekilde işlendiğinden emin olmak için pipeline'ın kullandığı tüm görevleri denetleyin. Gizli bilgilerin istemeden istenmeyen konaklara gönderilmediğini ya da log çıktısına açıkça yazdırılmadığını doğrulayın.

  • Geçerli ve geçersiz girişleri test ettikten sonra işlem hattınızın çalıştırma günlüklerini görüntüleyin. Gizli dizilerin düzgün bir şekilde yeniden işlenip açığa çıkarılmadığından emin olun. Bazen komutlardaki veya araçlardaki hatalar yanlışlıkla gizli dizileri hata günlüklerine sızdırabilir. Azure Pipelines günlüklerdeki gizli dizileri temizlemeye çalışsa da el ile gözden geçirme hala önemlidir.

Gizli dizileri denetleme ve döndürme

Gizli dizileri denetlemek ve döndürmek için şu en iyi yöntemleri izleyin:

  • İşlem hatlarınızda kayıtlı gizlileri düzenli aralıklarla gözden geçirin. Bunların hala gerekli olduğunu onaylayın ve artık gerekli olmayanları kaldırın. Bu uygulama dağınıklığı ve olası güvenlik risklerini azaltmaya yardımcı olur.
  • Hizmet bağlantısı gizli dizilerinin düzgün yapılandırılmasını ve güvenli bir şekilde işlenmesini sağlayın.
  • Kişisel erişim belirteci (PAT) süresini kısa tutun ve gereken en düşük izinleri seçin.
  • Gizliliği ihlal edilmiş gizli bilgilerin kullanılma süresini en aza indirmek için gizli bilgileri düzenli olarak değiştirin. Gizli anahtarları düzenli aralıklarla değiştirmek güvenliği artırır.

YAML şablonlarını kullanma

Doğrudan işlem hattı YAML'nize gizli dizi parametreleri içeren satır içi betikler dahil olmak yerine şablonları kullanın. Bu yaklaşım, hassas bilgileri ana işlem hattından soyutlayarak güvenliği artırır.

Bu yaklaşımı uygulamak için betiğiniz için ayrı bir YAML dosyası oluşturun ve bu betiği ayrı, güvenli bir depoda depolayın. Ardından şablona başvurabilir ve Azure Key Vault'tan bir gizli dizi değişkeni, değişken grubu veya YAML'nizdeki işlem hattı kullanıcı arabirimini parametre olarak geçirebilirsiniz. Şablonları kullanma hakkında daha fazla bilgi için bkz. Şablon kullanımı başvurusu.

Dal ilkeleri ve değişken grubu izinleri ile gizli dizileri sınırlama

Gizli bilgilerin yalnızca belirli bir depo dalına erişilebilir olmasını sağlamak için dal ilkelerini, değişken grubu izinlerini ve koşullu iş eklemeyi birleştirerek kullanabilirsiniz.

Belirli bir daldan gelen derlemelere izin veren derleme doğrulama ilkelerini zorunlu kılın. Ardından değişken grubu izinlerini kullanarak yalnızca yetkili işlem hatlarının değişken grubunuzda depolanan gizli dizilere erişebildiğinden emin olun. Son olarak, yalnızca belirlenen dala yapılan gönderimin değişken grubuna başvurabilmesini sağlamak için işlem hattınızda bir koşul kullanın.

jobs:
- job: ExampleJob
  condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
  pool:
    vmImage: 'ubuntu-latest'
  steps:
  - script: echo "This runs only for the main branch"
    displayName: 'Conditional Step'
  variables:
  - group: your-variable-group-name