Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Istnieją dwa podstawowe sposoby dostosowywania wdrażania zawartości repozytorium do obszarów roboczych Microsoft Sentinel. Każda metoda używa różnych plików i składni, więc rozważ te przykłady, aby rozpocząć pracę. Przed rozpoczęciem upewnij się, że zostały spełnione wymagane wymagania wstępne dotyczące połączenia repozytorium i wdrożenia .
| Metoda dostosowywania | Omówione opcje wdrażania |
|---|---|
| Przepływ pracy usługi GitHub potok DevOps |
Dostosowywanie wyzwalacza wdrażania połączenia Dostosowywanie ścieżki wdrożenia Włączanie wdrożeń inteligentnych |
| Pliki konfiguracji | Kontrolowanie priorytetowej kolejności wdrożeń zawartości Wybierz , aby wykluczyć określone pliki zawartości z wdrożeń Skalowanie wdrożeń w różnych obszarach roboczych przez mapowanie plików parametrów na określone pliki zawartości |
Wymagania wstępne
Aby dostosować wdrożenie repozytorium, potrzebne jest istniejące połączenie repozytorium. Aby je utworzyć, zobacz Wdrażanie niestandardowej zawartości z repozytorium. Po utworzeniu połączenia upewnij się, że spełniasz następujące wymagania:
- Dostęp współpracownika do repozytorium GitHub lub dostępu administratora projektu do repozytorium Azure DevOps
- Akcje włączone dla usługi GitHub i potoków włączonych dla Azure DevOps
- Upewnij się, że niestandardowe pliki zawartości, które chcesz wdrożyć w obszarach roboczych, mają obsługiwany format. Aby uzyskać obsługiwane formaty, zobacz Planowanie zawartości repozytorium.
Aby uzyskać więcej informacji na temat możliwych do wdrożenia typów zawartości, zobacz Planowanie zawartości repozytorium.
Dostosuj przepływ pracy lub potok
Domyślny przepływ pracy wdraża zawartość zmodyfikowaną tylko od czasu ostatniego wdrożenia na podstawie zatwierdzeń w repozytorium. Dostosuj workflow lub pipeline, aby skonfigurować różne wyzwalacze wdrożeń lub wdrażać treści wyłącznie z konkretnego folderu głównego.
Wybierz jedną z następujących kart w zależności od typu połączenia:
Aby dostosować swój workflow wdrażania na GitHub:
W usłudze GitHub przejdź do repozytorium i znajdź przepływ pracy w katalogu .github/workflows .
Plik przepływu pracy to plik YML rozpoczynający się od sentinel-deploy-xxxxx.yml. Otwórz ten plik, a nazwa przepływu pracy jest wyświetlana w pierwszym wierszu i ma następującą domyślną konwencję nazewnictwa:
Deploy Content to <workspace-name> [<deployment-id>].Przykład:
name: Deploy Content to repositories-demo [xxxxx-dk5d-3s94-4829-9xvnc7391v83a]Wybierz przycisk ołówka w prawym górnym rogu strony, aby otworzyć plik do edycji, a następnie zmodyfikuj wdrożenie w następujący sposób:
Aby zmodyfikować wyzwalacz wdrożenia, zaktualizuj
onsekcję w kodzie, która opisuje zdarzenie uruchamiające uruchomienie przepływu pracy.Domyślnie ta konfiguracja ma ustawienie
on: push, co oznacza, że przepływ pracy jest uruchamiany przy każdym wypchnięciu zmian do połączonej gałęzi, w tym zarówno przy modyfikacjach istniejącej zawartości, jak i przy dodawaniu nowej zawartości do repozytorium. Przykład:on: push: branches: [ main ] paths: - `**` - `!.github/workflows/**` # this filter prevents other workflow changes from triggering this workflow - `.github/workflows/sentinel-deploy-<deployment-id>.yml`Zmień te ustawienia, na przykład, aby zaplanować okresowe uruchamianie przepływu pracy lub połączyć ze sobą różne zdarzenia przepływu pracy.
Więcej informacji można znaleźć w artykule Konfiguracja zdarzeń workflow w dokumentacji GitHub.
Aby wyłączyć inteligentne wdrożenia:
Inteligentne zachowanie wdrożenia jest konfigurowane oddzielnie od wyzwalacza workflow w
ontej sekcji. Przejdź dojobssekcji przepływu pracy. Przełącz wartość domyślnąsmartDeploymentztruenafalse. Po zatwierdzeniu tej zmiany funkcja inteligentnego wdrażania jest wyłączona, a wszystkie przyszłe wdrożenia dla tego połączenia ponownie wdrażają wszystkie odpowiednie pliki zawartości repozytorium w połączonych obszarach roboczych.Aby zmodyfikować ścieżkę wdrożenia:
W domyślnej konfiguracji pokazanej dla
onsekcji symbole wieloznaczne (**) w pierwszym wierszupathssekcji wskazują, że cała gałąź znajduje się w ścieżce wyzwalaczy wdrożenia.Ta domyślna konfiguracja oznacza, że workflow wdrożenia jest uruchamiany za każdym razem, gdy te treści są przesyłane do dowolnej części połączonej gałęzi.
W
jobssekcji domyślna konfiguracja obejmuje .directory: '${{ github.workspace }}'Ustawienie wskazuje,directoryże cała gałąź GitHub znajduje się na ścieżce dla wdrożenia treści, bez filtrowania ścieżek folderów.Aby wdrożyć zawartość tylko z określonej ścieżki katalogu, dodaj ją zarówno do konfiguracji
paths, jak i do konfiguracjidirectory. Na przykład aby wdrożyć zawartość tylko z folderu głównego o nazwieSentinelContent, zaktualizuj kod w następujący sposób: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'
Więcej informacji można znaleźć w składni workflow GitHub Actions dotyczącej filtrów ścieżek w dokumentacji GitHub.
Ważna
Zarówno w serwisie GitHub, jak i w usłudze Azure DevOps upewnij się, że katalogi ścieżki wyzwalania i ścieżki wdrożenia są zgodne.
Skalowanie wdrożeń przy użyciu plików parametrów
Zamiast przekazywać parametry jako wartości wbudowane w plikach zawartości, rozważ użycie pliku parametrów Bicep lub pliku JSON zawierającego wartości parametrów. Następnie przypisz te pliki parametrów do skojarzonych z nimi plików zawartości usługi Microsoft Sentinel, aby zwiększyć skalowalność wdrożeń w różnych obszarach roboczych.
Istnieje kilka sposobów przyporządkowania plików parametrów do plików treści. Pamiętaj, że pliki parametrów Bicep obsługują tylko szablony plików Bicep, ale pliki parametrów JSON obsługują oba te pliki. Potok wdrażania repozytoriów uwzględnia pliki parametrów w następującej kolejności:
Czy istnieje mapowanie w sentinel-deployment.config?
Aby uzyskać więcej informacji, zobacz Dostosowywanie konfiguracji połączenia.Czy istnieje plik parametrów mapowany na obszar roboczy? Tak, pliki zawartości znajdują się w tym samym katalogu co plik parametrów mapowany na obszar roboczy, pasujący do jednego z następujących wzorców:
.<WorkspaceID>.bicepparam
.parameters-<WorkspaceID>.jsonCzy istnieje domyślny plik parametrów? Tak, pliki zawartości znajdują się w tym samym katalogu z plikiem parametrów pasującym do jednego z następujących wzorców:
.bicepparam
.parameters.json
Unikaj starć z wieloma wdrożeniami obszaru roboczego, mapując pliki parametrów za pomocą pliku konfiguracji lub określając identyfikator obszaru roboczego w nazwie pliku.
Ważna
Po ustaleniu dopasowania pliku parametrów na podstawie priorytetu mapowania potok ignoruje wszystkie pozostałe mapowania.
Zmiana pliku parametrów wskazanego w pliku sentinel-deployment.config powoduje wdrożenie powiązanego z nim pliku zawartości. Dodanie lub zmodyfikowanie pliku parametrów mapowanego obszaru roboczego lub domyślnego pliku parametrów powoduje również wdrożenie sparowanych plików zawartości wraz z nowo zmodyfikowanymi parametrami, chyba że istnieje mapowanie parametrów wyższego pierwszeństwa. Inne pliki zawartości nie są wdrażane tak długo, jak długo funkcja wdrożeń inteligentnych jest nadal włączona w pliku definicji przepływu pracy/potoku.
Dostosowywanie konfiguracji połączenia
Skrypt wdrażania dla repozytoriów obsługuje użycie pliku konfiguracji wdrożenia dla każdej gałęzi repozytorium od lipca 2022 r. Plik JSON konfiguracji ułatwia mapowanie plików parametrów do odpowiednich plików zawartości, określanie priorytetów określonej zawartości we wdrożeniach i wykluczanie określonej zawartości z wdrożeń.
Ważna
Tworzenie, usuwanie lub modyfikowanie pliku sentinel-deployment.config wyzwala pełne wdrożenie całej zawartości repozytorium zgodnie ze zaktualizowaną konfiguracją.
Utwórz plik sentinel-deployment.config w katalogu głównym repozytorium.
Uwzględnij zawartość strukturalną w trzech opcjonalnych sekcjach,
"prioritizedcontentfiles":,"excludecontentfiles":i"parameterfilemappings":. Jeśli żadne sekcje nie zostaną uwzględnione lub plik .config zostanie pominięty, proces wdrażania nadal będzie uruchamiany. Nieprawidłowe lub nierozpoznane sekcje są ignorowane.
Oto przykład całej zawartości prawidłowego pliku sentinel-deployment.config . Ten przykład można również znaleźć w przykładzie repozytoriów Microsoft Sentinel CICD.
{
"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"
}
Uwaga
Nie używaj znaku ukośnika odwrotnego "\" w żadnej ze ścieżek zawartości. Zamiast tego użyj ukośnika "/".
Aby priorytetyzować pliki treści:
Wraz ze wzrostem ilości zawartości w repozytorium czas wdrażania może wzrosnąć. Dodaj zawartość wrażliwą na czas do tej sekcji, aby określić priorytet wdrożenia po wystąpieniu wyzwalacza.
Dodaj pełne nazwy ścieżek do
"prioritizedcontentfiles":sekcji. Dopasowywanie symboli wieloznacznych nie jest obecnie obsługiwane.Aby wykluczyć pliki treści, zmodyfikuj sekcję
"excludecontentfiles":pełnymi nazwami ścieżek poszczególnych .json plików.Aby odwzorować parametry:
Skrypt wdrażania akceptuje trzy metody mapowania parametrów (mapowania plików konfiguracji, pliki parametrów mapowanych w obszarze roboczym i pliki parametrów domyślnych), zgodnie z opisem w temacie Skalowanie wdrożeń przy użyciu plików parametrów. Mapowanie parametrów za pośrednictwem sentinel-deployment.config ma najwyższy priorytet i gwarantuje, że dany plik parametrów jest mapowany na skojarzone pliki zawartości. Zmodyfikuj sekcję
"parameterfilemappings":przy użyciu identyfikatora obszaru roboczego połączenia docelowego i pełnych nazw ścieżek poszczególnych plików .json.