Depo dağıtımlarını özelleştirme

Depo içeriğinizin Microsoft Sentinel çalışma alanlarına dağıtımını özelleştirmenin iki birincil yolu vardır. Her yöntem farklı dosyalar ve söz dizimi kullanır, bu nedenle başlamanıza yardımcı olması için bu örnekleri göz önünde bulundurun. Başlamadan önce gerekli depo bağlantısı ve dağıtım önkoşullarının karşılandığından emin olun.

Özelleştirme yöntemi Ele alınan dağıtım seçenekleri
GitHub iş akışı
DevOps işlem hattı
Bağlantınızın dağıtım tetikleyicisini özelleştirme
Dağıtım yolunuzu özelleştirme
Akıllı dağıtımlar için olanak sağlama
Yapılandırma dosyaları İçerik dağıtımlarınızın öncelikli sırasını denetleme
Belirli içerik dosyalarını dağıtımların dışında tutmak için seçin
Parametre dosyalarını belirli içerik dosyalarıyla eşleyerek farklı çalışma alanları arasında dağıtımları ölçeklendirme

Önkoşullar

Depo dağıtımlarını özelleştirmek için mevcut bir depo bağlantısına ihtiyacınız vardır. Bir tane oluşturmak için bkz. Deponuzdan özel içerik dağıtma. Bağlantıyı oluşturduktan sonra şu gereksinimleri karşıladığınızdan emin olun:

  • GitHub deponuza ortak çalışan erişimi veya Azure DevOps deponuza Proje Yöneticisi erişimi
  • GitHub için etkinleştirilen eylemler ve Azure DevOps için etkinleştirilen İşlem Hatları
  • Çalışma alanlarınıza dağıtmak istediğiniz özel içerik dosyalarının desteklenen bir biçimde olduğundan emin olun. Desteklenen biçimler için bkz. Depo içeriğinizi planlama.

Dağıtılabilir içerik türleri hakkında daha fazla bilgi için bkz. Depo içeriğinizi planlama.

İş akışını veya işlem hattını özelleştirme

Varsayılan iş akışı, depoya yapılan işlemelere göre yalnızca son dağıtımdan bu yana değiştirilen içeriği dağıtır. İş akışını veya boru hattını farklı dağıtım tetikleyicilerini yapılandırmak veya içeriği yalnızca belirli bir kök klasörden dağıtmak için özelleştirin.

Bağlantı türünüze bağlı olarak aşağıdaki sekmelerden birini seçin:

GitHub dağıtım iş akışınızı özelleştirmek için:

  1. GitHub'da deponuza gidin ve .github/workflows dizininde iş akışınızı bulun.

    İş akışı dosyası, sentinel-deploy-xxxxx.yml ile başlayan YML dosyasıdır. Bu dosyayı açtığınızda iş akışı adı ilk satırda gösterilir ve aşağıdaki varsayılan adlandırma kuralına sahiptir: Deploy Content to <workspace-name> [<deployment-id>].

    Örneğin: name: Deploy Content to repositories-demo [xxxxx-dk5d-3s94-4829-9xvnc7391v83a]

  2. Sayfanın sağ üst kısmındaki kalem düğmesini seçerek dosyayı düzenlemek üzere açın ve ardından dağıtımı aşağıdaki gibi değiştirin:

    • Dağıtım tetikleyicisini değiştirmek için, iş akışını tetikleyen olayı tanımlayan koddaki bölümü güncelledin on .

      Varsayılan olarak, bu yapılandırma olarak on: pushayarlanır. Bu, hem mevcut içerikte yapılan değişiklikler hem de depoya yeni içerik eklemeleri de dahil olmak üzere bağlı dala yapılan herhangi bir gönderimde iş akışının tetiklendiği anlamına gelir. Örneğin:

      on:
          push:
              branches: [ main ]
              paths:
              - `**`
              - `!.github/workflows/**` # this filter prevents other workflow changes from triggering this workflow
              - `.github/workflows/sentinel-deploy-<deployment-id>.yml`
      

      Örneğin, iş akışını düzenli aralıklarla çalışacak şekilde zamanlamak veya farklı iş akışı olaylarını birlikte birleştirmek için bu ayarları değiştirin.

      Daha fazla bilgi için, GitHub dokümantasyonunda İş akışı olaylarının yapılandırılması bölümüne bakınız.

    • Akıllı dağıtımları devre dışı bırakmak için:

      Akıllı dağıtım davranışı, bölümdeki on iş akışı tetikleyicisinden ayrı olarak yapılandırılır. jobs İş akışınızın bölümüne gidin. Varsayılan değeri smartDeployment'den true'ye değiştirin. Bu değişiklik işlendikten sonra akıllı dağıtım işlevi kapatılır ve bu bağlantının gelecekteki tüm dağıtımları, deponun tüm ilgili içerik dosyalarını bağlı çalışma alanlarına yeniden dağıtılır.

    • Dağıtım yolunu değiştirmek için:

      on bölümü için gösterilen varsayılan yapılandırmada, ** bölümündeki ilk satırdaki joker karakterler (paths), dalın tamamının dağıtım tetikleyicileri için yolun parçası olduğunu gösterir.

      Bu varsayılan yapılandırma, içerik bağlı dalın herhangi bir bölümüne gönderildiğinde dağıtım iş akışının tetiklenmesi anlamına gelir.

      Bu bölümde, varsayılan yapılandırma directory: '${{ github.workspace }}'.jobs Ayar, directory tüm GitHub dalının içerik dağıtımı yolunda olduğunu, herhangi bir klasör yolu filtreleme olmadan olduğunu gösterir.

      İçeriği yalnızca belirli bir klasör yolundan dağıtmak için, bunu hem paths hem de directory yapılandırmasına ekleyin. Örneğin, yalnızca adlı SentinelContentbir kök klasörden içerik dağıtmak için kodunuzu aşağıdaki gibi güncelleştirin:

      paths:
      - `SentinelContent/**`
      - `!.github/workflows/**` # this filter prevents other workflow changes from triggering this workflow
      - `.github/workflows/sentinel-deploy-<deployment-id>.yml`
      
      ...
          directory: '${{ github.workspace }}/SentinelContent'
      

Daha fazla bilgi için, GitHub dokümantasyonundaki yol filtreleri için GitHub Actions iş akışı söz dizimine bakınız.

Önemli

Hem GitHub'da hem de Azure DevOps'ta tetikleyici yolunun ve dağıtım yolu dizinlerinin tutarlı olduğundan emin olun.

Dağıtımlarınızı parametre dosyalarıyla ölçeklendirme

İçerik dosyalarınızda parametreleri satır içi değerler olarak geçirmek yerine, bir Bicep parametre dosyası veya parametre değerlerini içeren bir JSON dosyası kullanmayı göz önünde bulundurun. Ardından, dağıtımlarınızı farklı çalışma alanlarında daha iyi ölçeklendirmek için bu parametre dosyalarını ilişkili Microsoft Sentinel içerik dosyalarıyla eşleyin.

Parametre dosyalarını içerik dosyalarıyla eşlemenin çeşitli yolları vardır. Bicep parametre dosyalarının yalnızca Bicep dosya şablonlarını desteklediğini ancak JSON parametre dosyalarının ikisini de desteklediğini unutmayın. Depo dağıtım işlem hattı, parametre dosyalarını aşağıdaki sırayla dikkate alır:

Parametre dosyası eşlemelerinin önceliğini gösteren diyagram.

  1. sentinel-deployment.configbir eşleme var mı?
    Daha fazla bilgi için bkz. Bağlantı yapılandırmanızı özelleştirme.

  2. Çalışma alanıyla eşlenen bir parametre dosyası var mı? Evet, içerik dosyaları, aşağıdaki desenlerden biriyle eşleşen çalışma alanına eşlenmiş bir parametre dosyasıyla aynı dizindedir:
    .<WorkspaceID>.bicepparam
    .parameters-<WorkspaceID>.json

  3. Varsayılan parametre dosyası var mı? Evet, içerik dosyaları şu desenlerden biriyle eşleşen bir parametre dosyasıyla aynı dizindedir:
    .bicepparam
    .parameters.json

Parametre dosyalarınızı yapılandırma dosyası üzerinden eşleyerek veya dosya adında çalışma alanı kimliğini belirterek birden çok çalışma alanı dağıtımıyla çakışmalardan kaçının.

Önemli

Eşleme önceliğine göre bir parametre dosyası eşleşmesi belirlendikten sonra işlem hattı kalan eşlemeleri yoksayar.

sentinel-deployment.config listelenen eşlenmiş parametre dosyasının değiştirilmesi, eşlenmiş içerik dosyasının dağıtımını tetikler. Çalışma alanıyla eşlenen bir parametre dosyasının veya varsayılan parametre dosyasının eklenmesi veya değiştirilmesi, daha yüksek bir öncelik parametresi eşlemesi yapılmadığı sürece eşlenmiş içerik dosyalarının yeni değiştirilen parametrelerle birlikte dağıtılması da tetiklenir. Akıllı dağıtımlar özelliği iş akışı/işlem hattı tanım dosyasında hala etkin olduğu sürece diğer içerik dosyaları dağıtılmaz.

Bağlantı yapılandırmanızı özelleştirme

Depolar için dağıtım betiği, Temmuz 2022 itibarıyla her depo dalı için bir dağıtım yapılandırma dosyasının kullanımını destekler. Yapılandırma JSON dosyası, parametre dosyalarını ilgili içerik dosyalarıyla eşlemenize, dağıtımlardaki belirli içeriğe öncelik vermenize ve belirli içerikleri dağıtımların dışında tutmanıza yardımcı olur.

Önemli

sentinel-deployment.config dosyasının oluşturulması, silinmesi veya değiştirilmesi, güncelleştirilmiş yapılandırmaya göre tüm depo içeriğinin tam dağıtımını tetikler.

  1. Deponuzun kök dizininde sentinel-deployment.config dosyasını oluşturun.

    Depo kök dizininin ekran görüntüsü. RepositoriesSampleContent, sentinel-deployment.config dosyasının konumuyla gösterilir.

  2. Yapılandırılmış içeriğinizi isteğe bağlı üç bölüme ekleyin: "prioritizedcontentfiles":, "excludecontentfiles":ve "parameterfilemappings":. Hiçbir bölüm dahil edilmezse veya .config dosyası atlanırsa, dağıtım işlemi çalışmaya devam eder. Geçersiz veya tanınmayan bölümler yok sayılır.

Burada geçerli bir sentinel-deployment.config dosyasının tüm içeriğine bir örnek verilmiş. Bu örnek Microsoft Sentinel CICD depoları örneğinde de bulunabilir.

{
  "prioritizedcontentfiles": [
    "parsers/Sample/ASimAuthenticationAWSCloudTrail.json",
    "workbooks/sample/TrendMicroDeepSecurityAttackActivity_ARM.json",
    "Playbooks/PaloAlto-PAN-OS/PaloAltoCustomConnector/azuredeploy.bicep"
  ], 
  "excludecontentfiles": [
     "Detections/Sample/PaloAlto-PortScanning.json",
     "parameters"
  ],
  "parameterfilemappings": {
    "879001c8-2181-4374-be7d-72e5dc69bd2b": {
      "Playbooks/PaloAlto-PAN-OS/Playbooks/PaloAlto-PAN-OS-BlockIP/azuredeploy.bicep": "parameters/samples/auzredeploy.bicepparam"
    },
    "9af71571-7181-4cef-992e-ef3f61506b4e": {
      "Playbooks/Enrich-SentinelIncident-GreyNoiseCommunity-IP/azuredeploy.json": "path/to/any-parameter-file.json"
    }
  },
  "DummySection": "This shouldn't impact deployment"
}

Not

İçerik yollarının hiçbirinde ters eğik çizgi "\" karakterini kullanmayın. Bunun yerine eğik çizgi "/" kullanın.

  • İçerik dosyalarını önceliklendirmek için:

    Deponuzdaki içerik miktarı arttıkça dağıtım süreleri artabilir. Bir tetikleyici gerçekleştiğinde dağıtımının önceliğini ayarlamak için bu bölüme zamana duyarlı içerik ekleyin.

    Tam yol adlarını "prioritizedcontentfiles": bölümüne ekleyin. Joker karakterlerle eşleştirme şu anda desteklenmiyor.

  • İçerik dosyalarını hariç tutmak için, bölümü bireysel .json içerik dosyalarının tam yol adlarıyla değiştirin "excludecontentfiles": .

  • Parametreleri eşlemek için:

    Dağıtım betiği, dağıtımlarınızı parametre dosyalarıyla ölçeklendirme bölümünde açıklandığı gibi üç eşleme parametresi yöntemini (yapılandırma dosyası eşlemeleri, çalışma alanıyla eşlenen parametre dosyaları ve varsayılan parametre dosyaları) kabul eder. sentinel-deployment.config aracılığıyla parametreleri eşlemek en yüksek önceliği alır ve belirli bir parametre dosyasının ilişkili içerik dosyalarıyla eşlendiğini garanti eder. "parameterfilemappings": Bölümü hedef bağlantınızın çalışma alanı kimliğiyle ve tek tek .json dosyalarının tam yol adlarıyla değiştirin.