Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Jako partner ISV můžete vytvářet, testovat, sestavovat balíčky a publikovat analytická řešení v noteboocích Jupyter do obchodu zabezpečení od Microsoftu Store jako nabídky SaaS. Datové jezero Microsoft Sentinel podporuje poznámkové bloky Jupyter, které běží ve spravovaných fondech Sparku proti velkým datovým sadám zabezpečení. Tyto poznámkové bloky jsou ideální pro detekci pomalých a nenápadných útoků, vytváření behaviorálních baseline, analytiku založenou na AI/ML, mapování toků citlivých dat, vizualizaci dat a jejich obohacování, které nelze vyjádřit pomocí tradičních detekcí v jazyce KQL.
Řešení platformy notebooků je obvykle navrženo pro historickou analýzu, složité transformace dat a opakující se workflow zpracování dat. Zapisuje výstupy do vlastní tabulky v datovém jezeře, kde analytická pravidla pro následné zpracování, dotazy pro proaktivní vyhledávání, agenti Security Copilot nebo nástroje MCP mohou využívat výsledky notebookového řešení. Balíček .zip, který odešlete do služby Partner Center, je deklarován jako typ SentinelLake a obsahuje poznámkové bloky a případně také šablonu ARM pro navazující prostředky Azure, které poznámkový blok vyžaduje.
Tento článek vás provede vývojem, testováním, balením a publikováním řešení pro platformu Microsoft Sentinel notebook pro zabezpečení od Microsoftu Store. Po dokončení této příručky budete mít:
- Funkční poznámkový blok Jupyter, který čte data ze služby Sentinel Data Lake
- Naplánovaná úloha, která spouští poznámkový blok ve spravovaném fondu Sparku
- Balíček
SentinelLakeZIP (PackageManifest+ složka poznámkového bloku) - Seznam nabídek SaaS v Partnerském centru v zabezpečení od Microsoftu Storu
Předpoklady
Váš tenant musí být připojen k datovému jezeru Microsoft Sentinel. Ověřte stav onboardingu na portálu Defender. Přejděte donastavení>systému>Microsoft Sentinel>Data Lake. Stav je Zřízeno, pokud je váš tenant připraven. Pokyny k onboardingu najdete v tématu Onboarding do Microsoft Sentinel Data Lake.
Požadována oprávnění
| Provoz/Zdroj | Požadovaná role |
|---|---|
| Připojte se k datovému jezeru Sentinel | Microsoft Entra ID – správce zabezpečení nebo globální správce |
| Připojení pracovního prostoru služby Sentinel k portálu Defender | Vlastník předplatného nebo správce přístupu uživatelů v rozsahu předplatného a Přispěvatel Microsoft Sentinel v rozsahu předplatného nebo skupiny prostředků |
| Připojení pracovního prostoru služby Sentinel k Datové Jezero | Vlastník předplatného nebo Přispěvatel Microsoft Sentinel v rozsahu předplatného nebo skupiny prostředků |
| Spusťte poznámkové bloky v datovém jezeře | Microsoft Sentinel čtenář nebo přispěvatel |
| pracovní prostor služby Log Analytics (pro zpětný zápis do analytické vrstvy) | Log Analytics Přispěvatel přiřazený ke spravované identitě Data Lakemsg-resources-<guid> |
| Partnerské centrum Microsoftu | účet Marketplace Publisher (jednorázově; stejný účet se používá pro publikování agenta Security Copilot) |
Note
Pro jednorázovou úlohu zprovoznění datového jezera je vyžadována role Vlastník předplatného. Pomocí Microsoft Entra Privileged Identity Management (PIM) dočasně zvyšte úroveň této role pouze v případě potřeby a po dokončení onboardingu odeberte přístup.
Požadované nástroje
- Visual Studio Code.
- rozšíření VS Code pro Microsoft Sentinel
- Doporučuje se rozšíření GitHub Copilot VS Code pro urychlení tvorby notebooků.
- Lokálně nainstalovaný Python 3.10 nebo novější. Jádro Sparku běží v Azure ale VS Code potřebuje pro úpravy buněk místní interpret.
Přehled procesu
Proces publikování začíná místním vývojem notebooků a pokračuje k balíčkované nabídce SaaS, kterou lze najít v obchodě zabezpečení od Microsoftu.
- Místní vývoj notebooků (VS Code + rozšíření Sentinel)
- Interaktivní spouštění na platformě Sentinel
- Testování na reprezentativních datech; Ověření naplnění výstupní tabulky
- Naplánovat jako úlohu (na vyžádání nebo podle plánu)
- Zabalit jako archiv SentinelLake .zip (PackageManifest.yaml + složka)
- Vytvoření nabídky SaaS v Partnerské centrum Microsoftu
- Nahrát balíček, vytvořit metadata, plán a ceny
- Revize a publikování, automatizovaná kontrola, Go Live
- Dostupné v zabezpečení od Microsoftu Store
Instalace nástroje Visual Studio Code a rozšíření Microsoft Sentinelu
Veškerý vývoj notebooků probíhá lokálně ve VS Code s nainstalovaným rozšířením Microsoft Sentinel. Jádro Sparku běží v Azure – VS Code je editor a odesílací klient.
Stáhněte Visual Studio Code z
https://code.visualstudio.com/a nainstalujte s výchozími možnostmi.Otevřete marketplace > VS Code (Ctrl+Shift+X nebo Cmd+Shift+X).
Vyhledejte Sentinel a nainstalujte rozšíření Microsoft Sentinel (vydavatel:
ms-security).Po instalaci se na levém panelu nástrojů zobrazí ikona Microsoft Sentinel.
(Doporučeno) Vyhledejte GitHub Copilot na marketplace, nainstalujte ho a po zobrazení výzvy se přihlaste k GitHub.
Copilot zná rozhraní API
MicrosoftSentinelProvidera automaticky doplňuje transformace v PySparku.Na levém panelu nástrojů vyberte ikonu Microsoft Sentinel.
Potvrďte přihlašovací dialog a pak ve svém pracovním prostoru vyberte účet s rolí Čtenář / Přispěvatel Sentinel.
V levém podokně se zobrazují Lake tables a Jobs, což potvrzuje, že se rozšíření připojilo k datovému jezeru.
Caution
Pokud máte přihlášených více hostovských tenantů, přepnutí účtů vlevo dole ve VS Code ukončí veškeré aktivní relace PySpark — po přepnutí je třeba restartovat jádro. Naplánujte přepínání mezi spuštěními, ne během nich.
Vývoj poznámkového bloku
Notebooky používají tento způsob vytváření:
- Čtení tabulky Data Lake do datového rámce Sparku
- Transformace pomocí PySparku
- Volitelně můžete rozšířit externími daty.
- Zápis výsledků do vlastní tabulky, kterou může Sentinel využívat
Prozkoumejte panel tabulek Lake
Pokud chcete identifikovat vstupní tabulky, které poznámkový blok používá, prozkoumejte panel tabulek Lake:
- Vyberte ikonu Sentinel a rozbalte tabulky Lake.
- Tabulky jsou seskupené podle databáze a kategorie (systém, vlastní, federovaný). Výběrem libovolné tabulky zobrazíte definice a typy sloupců.
- Identifikujte vstupní tabulky, které poznámkový blok přečte, a poznamenejte si přesné názvy.
Vytvoření nového poznámkového bloku
Pokud chcete pro své řešení vytvořit nový poznámkový blok Jupyter, proveďte následující kroky:
Stiskněte Ctrl+Shift+P / Cmd+Shift+P>, zadejte Create New Jupyter Notebook nebo vyberte Soubor>Nový soubor>Jupyter Notebook.
Uložte poznámkový blok s popisným názvem (například
failed-signin-baseline.ipynb).
Přečíst tabulku
Vložte tuto šablonu do první buňky a nahraďte název tabulky vašimi:
from sentinel_lake.providers import MicrosoftSentinelProvider
data_provider = MicrosoftSentinelProvider(spark)
# Read a table from the data lake
table_name = "EntraGroups"
df = data_provider.read_table(table_name)
# Quick sanity check—show 100 rows
df.select("displayName", "groupTypes", "mail", "tenantId").show(100, truncate=False)
Vyberte fond modulu runtime a spusťte buňku.
Pokud chcete buňku spustit na datovém jezeře, vyberte fond a odešlete:
Vyberte v buňce trojúhelník Spustit.
Až budete vyzváni, zvolte jako runtime Microsoft Sentinel.
Zvolte velikost fondu: Malý pro průzkum, Střední pro transformace, Velké pro ML nebo agregace nad desítkami milionů řádků.
Při prvním spuštění trvá 3 až 5 minut, než se inicializuje relace Spark. Následující buňky se spouštějí v sekundách.
Transformujte a zapište zpět do vlastní tabulky
Metoda save_as_table() zapíše datový rámec do vlastní tabulky ve vrstvě lake (nebo analytické vrstvě). Cílová tabulka se vytvoří při prvním zápisu.
df_transformed = (
df.filter(df.mail.isNotNull())
.select("displayName", "groupTypes", "mail", "mailNickname", "description", "tenantId")
)
write_options = {"mode": "overwrite"}
data_provider.save_as_table(
df_transformed,
"EntraGroups_Processed_SPRK",
write_options=write_options,
)
Vzory vytváření poznámkových bloků
Nejběžnější scénáře zahrnují následující vzory:
| Vzor | Kdy ji použít |
|---|---|
| Základní linie + drift | Vypočítejte běžné chování pro jednotlivé uživatele nebo hostitele; označte řádky, které se odchylují od výchozího stavu. Classic pro analýzy neúspěšného přihlášení a provádění procesů. |
| Spojení mezi tabulkami | Spojte svou tabulku lake s integrovanými tabulkami (SigninLogs, SecurityAlert, DeviceProcessEvents) přes sdílené entity (UPN, host, IP adresa). |
| Bodování ML | Natrénujte nebo načtěte předtrénovaný model v poznámkovém bloku; ohodnoťte každý řádek; zapište N nejrizikovějších řádků do vlastní výstupní tabulky pro následné generování upozornění. |
| Vizuální šetření | Vykreslete časové osy, heatmapy a procesní stromy pomocí matplotlib nebo plotly; exportujte notebook jako HTML k předání. |
Tip
K dokumentaci kódu hojně používejte buňky Markdown. Recenzent Security Store — a také analytik SOC, který spouští váš notebook — musí rozumět tomu, k čemu jednotlivé části slouží, aniž by musel číst kód. Umístěte buňku markdownu nad každý blok kódu vysvětlující účel, vstupy, výstupy a očekávaný výstup. Hodnotitelé považují nejasné notebooky za automatické nevyhovění.
Otestujte notebook
Testování vyžaduje prokázat, že notebook funguje od začátku do konce na realistických datech a vytváří použitelnou výstupní tabulku.
Orientační test v malém fondu
Spuštěním celého poznámkového bloku potvrďte, že se všechny buňky dokončí bez chyby:
- Restartujte jádro, aby se vymazal jakýkoli zastaralý stav.
- Spusťte všechny buňky shora dolů – každá buňka se musí dokončit bez chyby.
Pokud transformační buňka na instanci Small trvá déle než 5 minut, vaše vstupní filtry jsou příliš široké. Před navýšením kapacity omezte výběr data nebo sloupců.
Ověření výstupní tabulky
Ověřte, že se vytvořila výstupní tabulka a obsahuje očekávaná data:
- V panelu Lake tables rozšíření Sentinel obnovte zobrazení a ověřte, že se výstupní tabulka zobrazí s očekávaným schématem.
- Spusťte ověřovací buňku:
verify_df = data_provider.read_table("EntraGroups_Processed_SPRK")
print("Row count:", verify_df.count())
verify_df.printSchema()
verify_df.show(5, truncate=False)
Test škálování na středním nebo velkém fondu zdrojů
Ověřte, že poznámkový blok vytváří konzistentní výsledky u větších velikostí fondů:
- Znovu spusťte notebook na instanci Medium (a na Large, pokud to velikost vaší datové sady vyžaduje).
- Ověřte, že počty řádků a distribuce sloupců odpovídají malému běhu. Pokud se liší, máte nedeterministickou transformaci, kterou je třeba prozkoumat.
Testovací hraniční případy
- Prázdný vstup: Ukažte na tabulku nebo rozsah dat s nulovým počtem řádků. Notebook by měl selhat řízeně nebo zapsat prázdný výstup — nikoli spadnout.
- Drift schématu: Pokud vstupní tabulka získá nový sloupec, notebook by měl stále fungovat. Nikdy nepředpokládejte poziční pořadí.
Naplánování poznámkového bloku jako úlohy
Většina publikovaných řešení v poznámkových blocích se spouští podle plánu – například hodinová základní úloha, denní kontrola anomálií atd. Rozšíření Sentinel změní všechny uložené poznámkové bloky na naplánovanou úlohu, která běží bezobslužně ve spravovaném fondu Sparku.
Vytvoření úlohy
Pokud chcete poznámkový blok převést na naplánovanou úlohu, proveďte následující kroky:
- Otevřete svůj poznámkový sešit ve VS Code.
- V poznámkovém bloku vyberte možnost Vytvořit naplánovanou úlohu a až k tomu budete vyzváni, zvolte Použít existující poznámkový blok.
Další informace najdete v tématu Vytváření a správa úloh poznámkového bloku Jupyter.
Konfigurace úlohy
Pokud chcete nakonfigurovat naplánovanou úlohu, vyplňte následující pole:
- Zadejte název úlohy ve formátu kebab-case, který popisuje notebook (například
failed-signin-baseline-hourly). - Zadejte popis jedné věty, který pokrývá účel a výstupní tabulku úlohy.
- Vyberte velikost fondu Spark, kterou jste ověřili při testování. Nepřetěžujte – úlohy běží v tomto fondu při každém vyvolání.
- Pro plán zvolte Na vyžádání pro ruční spuštění nebo Naplánované s frekvencí opakování (minuta, hodina, denně, týdně nebo měsíčně).
- Výběrem možnosti Odeslat publikujte úlohu.
Ověření úlohy
Po odeslání ověřte, že úloha běží správně:
Přepněte na panel Úlohy v rozšíření Sentinel – měla by se zobrazit vaše úloha.
Vyberte úlohu >Spustit nyní pro okamžité spuštění ověření.
Po dokončení spuštění přepněte na kartu Historie spuštění a zkontrolujte protokoly a časování.
Important
Odeslané úlohy jsou oddělené od místního .ipynb souboru. Úprava místního souboru neaktualizuje spuštěnou úlohu. Chcete-li aktualizovat úlohu, otevřete ji na panelu Úlohy>Stáhněte poznámkový blok>, upravte ji pomocí možnosti >Upravit úlohu> a kliknutím na Odeslat nahrajte aktualizovanou verzi.
Zobrazení úlohy na portálu Defender
Přejděte na Microsoft Sentinel>Průzkum datového jezera>Úlohy. Tady můžete povolit nebo zakázat plán a zobrazit historii spuštění, ale poznámkový blok nemůžete upravovat z portálu.
Zabalit a publikovat řešení v poznámkovém bloku
Jakmile je notebook otestovaný a vytvořený, zabalte jej pro nasazení u zákazníků. Podrobné pokyny k balení najdete v tématu Vytvoření balíčku a publikování řešení grafů a poznámkových bloků Microsoft Sentinel.
Řešení problémů
Vytváření poznámkových bloků
| Příznak | Pravděpodobná příčina a oprava |
|---|---|
MicrosoftSentinelProvider nenalezena |
Rozšíření není přihlášené nebo jste otevřeli jádro jiného než Sparku. Přihlaste se do rozšíření Microsoft Sentinel a až k tomu budete vyzváni, vyberte runtime Microsoft Sentinel. |
| Buňka se zasekne na „Starting Spark session“ | Spuštění první buňky trvá 3 až 5 minut. Po 6 minutách zkontrolujte ve stavovém řádku ukazatel využití virtuálních jader (vCore) — váš fond může být na hranici kapacity. Zkuste menší velikost poolu. |
save_as_table selže s chybou „oprávnění odepřeno“ na úrovni Analytics |
Spravovaná identita datového jezera msg-resources-<guid> nemá pro pracovní prostor Log Analytics roli „Log Analytics Contributor“. Přiřaďte ho podle požadavků a zkuste to znovu. |
| Výstupní tabulka se zobrazí na panelu tabulek Lake , ale je prázdná. |
.filter() pravděpodobně odstranil všechny řádky. Chcete-li problém lokalizovat, přidejte výpis počtu řádků bezprostředně před save_as_table. |
Další informace najdete v tématu Řešení potíží s poznámkovými bloky.
Plánování úlohy
| Příznak | Pravděpodobná příčina a oprava |
|---|---|
Úpravy místního .ipynb se nepromítnou do naplánované úlohy. |
Odeslané úlohy jsou oddělené od místního souboru. Stáhněte si úlohu z editoru VS Code, upravte ji a pak pomocí příkazu Upravit úlohu>Odeslat nahrajte novou verzi. |
| Úloha se spustí, ale nevygeneruje žádný výstup. | Na panelu Úlohy zkontrolujte kartu Historie spuštění – v protokolu spuštění se obvykle zobrazuje neúspěšná buňka. Nejběžnější příčinou je, že notebook čte z tabulky, ke které identita použitá při spuštění nemá přístup. |
Další informace najdete v tématu Řešení potíží s poznámkovými bloky.