Depo dağıtımlarını özelleştirme (Genel Önizleme)
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şlamak için bu örnekleri göz önünde bulundurun.
Bağlantınızın dağıtım tetikleyicisi, dağıtım yolu veya akıllı dağıtım kullanımı gibi dağıtım seçeneklerini özelleştirmek için GitHub iş akışını veya DevOps işlem hattını değiştirin.
İçerik dağıtımlarınızın öncelik sırasını denetlemek, belirli içerik dosyalarını bu dağıtımların dışında tutmak veya parametre dosyalarını belirli içerik dosyalarıyla eşlemek için yeni tanıtılan yapılandırma dosyasını kullanın.
Önemli
Microsoft Sentinel Depoları özelliği şu anda ÖNİzLEME aşamasındadır. Beta, önizleme veya başka bir şekilde genel kullanıma sunulmamış Azure özellikleri için geçerli olan ek yasal koşullar için Bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.
Önkoşullar ve kapsam
Microsoft Sentinel şu anda GitHub ve Azure DevOps depolarına yönelik bağlantıları desteklemektedir. Microsoft Sentinel çalışma alanınızı kaynak denetimi deponuza bağlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:
- Bağlantıyı oluşturmak için Microsoft Sentinel çalışma alanınızı içeren kaynak grubunda sahip rolü veya Kullanıcı Erişimi Yönetici istrator ve Sentinel Katkıda Bulunanı rollerinin birleşimi
- GitHub deponuza ortak çalışan erişimi veya Azure DevOps deponuza project Yönetici istrator 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 ilgili Azure Resource Manager (ARM) şablonlarında olduğundan emin olun
Daha fazla bilgi için bkz . İçeriğinizi doğrulama.
İş akışını veya işlem hattını özelleştirme
Varsayılan iş akışı yalnızca depoya yapılan işlemeleri temel alarak son dağıtımdan bu yana değiştirilen içeriği dağıtır. Ancak, farklı dağıtım tetikleyicilerini yapılandırmak veya içeriği yalnızca belirli bir kök klasörden dağıtmak gibi başka özelleştirmelere ihtiyacınız olabilir.
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:
GitHub'da deponuza gidin ve iş akışınızı .github/workflows dizininde 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]
Sayfanın sağ üst kısmındaki kalem düğmesini seçerek dosyayı düzenlemek üzere açın ve dağıtımı aşağıdaki gibi değiştirin:
Dağıtım tetikleyicisini değiştirmek için koddaki iş akışının çalıştırılmasını tetikleyen olayı açıklayan bölümünü güncelleştirin
on
.Varsayılan olarak, bu yapılandırma olarak
on: push
ayarlanır. Bu, iş akışının 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 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ştirmek isteyebilirsiniz.
Daha fazla bilgi için iş akışı olaylarını yapılandırmaya ilişkin GitHub belgelerine bakın.
Akıllı dağıtımları devre dışı bırakmak için: Akıllı dağıtım davranışı, ele alınan dağıtım tetikleyicisinden ayrıdır.
jobs
İş akışınızın bölümüne gidin.smartDeployment
Varsayılan değeri olaraktrue
false
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:
Bölümü için
on
gösterilen varsayılan yapılandırmada, bölümün ilk satırındakipaths
joker karakterler (**
), dalın tamamının dağıtım tetikleyicileri yolunda olduğunu gösterir.Bu varsayılan yapılandırma, içeriğin dalın herhangi bir bölümüne gönderildiğinde bir dağıtım iş akışının tetiklendiğini gösterir.
Dosyada daha sonra,
jobs
bölümü aşağıdaki varsayılan yapılandırmayı içerir:directory: '${{ github.workspace }}'
. Bu satır, github dallarının tamamının, herhangi bir klasör yolu için filtreleme yapmadan içerik dağıtımı yolunda olduğunu gösterir.İçeriği yalnızca belirli bir klasör yolundan dağıtmak için hem hem de
paths
yapılandırmasınadirectory
ekleyin. Örneğin, yalnızca adlıSentinelContent
bir 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 Actions ve GitHub iş akışlarını düzenleme ile ilgili GitHub belgelerine bakın.
Önemli
Hem GitHub'da hem de Azure DevOps'ta tetikleyici yolu ve dağıtım yolu dizinlerini tutarlı tuttuğunuzdan emin olun.
Dağıtımlarınızı parametre dosyalarıyla ölçeklendirme
parametreleri içerik dosyalarınıza satır içi değerler olarak geçirmek yerine 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 JSON dosyalarını ilişkili Sentinel içerik dosyalarıyla eşleyin. Parametre dosyalarını Sentinel dosyalarıyla eşlemenin çeşitli yolları vardır ve depolar dağıtım işlem hattı bunları aşağıdaki sırayla değerlendirir:
- sentinel-deployment.config dosyasında eşleme var mı? Daha fazla bilgi için bkz . Bağlantı yapılandırmanızı özelleştirme.
- Çalışma alanına eşlenmiş bir parametre dosyası var mı? Evet, .parameters-WorkspaceID<> ile biten içerik dosyalarıyla aynı dizindeki bir parametre dosyasıdır.json
- Varsayılan parametre dosyası var mı? Evet, .parameters.json ile biten içerik dosyalarıyla aynı dizindeki tüm parametre dosyaları
Birden çok dağıtım içeren senaryolarda çakışmaları önlemek için parametre dosyalarınızı yapılandırma dosyası aracılığıyla veya dosya adında çalışma alanı kimliğini belirterek eşlemeniz önerilir.
Önemli
Yukarıdaki eşleme önceliğine göre bir parametre dosyası eşleşmesi belirlendikten sonra işlem hattı kalan eşlemeleri yoksayar.
sentinel-deployment.config dosyasında listelenen eşlenmiş parametre dosyasının değiştirilmesi, eşleştirilmiş içerik dosyasının dağıtımını tetikler. .parameters-WorkspaceID><.json dosyasını veya .parameters.json dosyasını eklemek veya değiştirmek, daha yüksek bir öncelik parametresi eşlemesi yapılmadığı sürece eşleştirilmiş içerik dosyalarının ve yeni değiştirilen parametrelerin dağıtımını tetikler. 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çerikleri önceliklendirmenize ve belirli içerikleri dağıtımların dışında tutmanıza yardımcı olur.
Deponuzun kökünde sentinel-deployment.config dosyasını oluşturun. Bu yapılandırma dosyasını eklemek, silmek veya değiştirmek, depodaki tüm içeriğin güncelleştirilmiş yapılandırmaya göre tam dağıtımına neden olur.
İsteğe bağlı üç bölüme
"prioritizedcontentfiles":
( ,"excludecontentfiles":
ve"parameterfilemappings":
) JSON yapılandırılmış içeriği ekleyin. 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 yoksayılır.
Aşağıda, geçerli bir sentinel-deployment.config dosyasının tüm içeriğinin bir örneği verilmiştır . Bu örnek Sentinel CICD depoları örneğinde de bulunabilir.
{
"prioritizedcontentfiles": [
"parsers/Sample/ASimAuthenticationAWSCloudTrail.json",
"workbooks/sample/TrendMicroDeepSecurityAttackActivity_ARM.json",
"Playbooks/PaloAlto-PAN-OS/PaloAltoCustomConnector/azuredeploy.json"
],
"excludecontentfiles": [
"Detections/Sample/PaloAlto-PortScanning.json",
"parameters"
],
"parameterfilemappings": {
"879001c8-2181-4374-be7d-72e5dc69bd2b": {
"Playbooks/PaloAlto-PAN-OS/Playbooks/PaloAlto-PAN-OS-BlockIP/azuredeploy.json": "parameters/samples/parameter-file-1.json"
},
"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ından hiçbirinde ters eğik çizgi "\" karakterini kullanmayın. Bunun yerine eğik çizgi "/" kullanın.
İçerik dosyalarına öncelik vermek için:
Deponuzdaki içerik miktarı arttıkça dağıtım süreleri artabilir. Tetikleyici gerçekleştiğinde dağıtımına öncelik vermek için bu bölüme zamana duyarlı içerik ekleyin.
Bölümüne tam yol adları
"prioritizedcontentfiles":
ekleyin. Joker karakter eşleştirme şu anda desteklenmiyor.İçerik dosyalarını dışlamak için bölümü tek tek .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 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. Hedef bağlantınızın çalışma alanı kimliğini ve tek tek .json dosyalarının tam yol adlarını içeren bölümü değiştirmeniz
"parameterfilemappings":
yeterlidir.
Sonraki adımlar
Dağıtım yapılandırma dosyasını ve üç parametre eşleme yöntemini gösteren örnek bir depo mevcuttur. Daha fazla bilgi için bkz . Sentinel CICD depoları örneği.
ARM şablonları hakkında daha fazla bilgi için şu kaynakları göz önünde bulundurun: