Пошук прогалин у відповідності вимогам M365 за допомогою Microsoft Graph
By Mirko Peters ·
Раді бачити вас знову у нашому подкасті та супровідному технічному блозі!
Automatically translated with AI from the original post. Read the English original
Якщо ви колись довіряли стандартній панелі відповідності Microsoft 365 і вважали, що все враховано повністю, ви можете почувати себе в безпеці лише удавано. Стандартні панелі відповідності призначені для узагальнених звітів, а не для абсолютно точної картини. Критичні сигнали, зокрема спрацьовування захисту від втрати даних (DLP), дії eDiscovery та базові сповіщення безпеки, часто розташовані за кінцевими точками Microsoft Graph, для доступу до яких потрібні окремі дозволи, розширені параметри запитів і коректне об'єднання даних. У цьому детальному розборі ми з'ясуємо, чому у ваших вбудованих звітах бракує важливої інформації, розберемо точні кінцеві точки Graph, які потрібно опитувати, і покажемо, як передати ці сирі докази безпосередньо в Microsoft Purview для зрозумілої та обґрунтованої звітності. Щоб послухати наше повне обговорення цієї теми, обов'язково перегляньте пов'язаний епізод подкасту: Find Missing Microsoft 365 Compliance Data with Graph.
Огляд
Стандартні панелі відповідності є зведеннями, а не істиною. Критичні сигнали (спрацьовування DLP, дії eDiscovery, сповіщення безпеки) часто розташовані за кінцевими точками Graph з окремими дозволами. Ми описуємо точні API, області доступу та шаблони скриптів для отримання доказів у повному обсязі та їх централізації в Purview для чіткої та обґрунтованої звітності.
Кому це допоможе
Власникам питань відповідності, юридичних питань і ризиків, яким потрібні докази, готові до аудиту
Адміністраторам M365 і Entra, які створюють звітність та автоматизацію
Командам безпеки, які співставляють телеметрію DLP, eDiscovery та сповіщень
Прогалини (чому стандартні панелі їх пропускають)
Агрегація й затримка: зведення в інтерфейсі опускають вкладені деталі інцидентів і нещодавню активність
Прогалини в охопленні: співпадіння eDiscovery та DLP можуть бути поза стандартними експортами
Розділені дозволи: кінцеві точки /security і /compliance потребують різних областей доступу
Відсутність зв'язків: панелі рідко співставляють інциденти з користувачами, кастодianами та кроками справ
Найцінніші кінцеві точки Graph (список для копіювання)
Сповіщення безпеки (широке охоплення)
Кінцева точка:
/security/alertsабо/security/alerts_v2Дозволи застосунку (приклади):
SecurityEvents.Read.All(або Alerts.Read.All у новіших моделях)Використання: хронологія сповіщень, серйозність, статус, призначення
Політики та активність DLP (витік даних)
Кінцеві точки (залежно від доступності в клієнті):
/security/dataLossPreventionPolicies(інвентаризація політик)/security/dlpIncidentsабо розширені кінцеві точки інцидентів DLP у просторі імен security (залежить від клієнта)
Дозволи застосунку:
SecurityEvents.Read.All(та/або окремі дозволи читання DLP, якщо доступні)Використання: співпадіння, розташування (Exchange/SharePoint/Teams), результат обробки
eDiscovery (справи та дії)
/compliance/ediscovery/casesДочірні шляхи:
/custodians,/searches,/reviewSets,/noncustodialDataSources,/operationsДозволи застосунку:
eDiscovery.Read.All(і запис, якщо ви керуєте справами)Використання: статус справи, утримання, кастодіани, експорти, дії рецензентів
Аудит і контекст входу (додаткові докази)
/auditLogs/directoryAudits,/auditLogs/signInsДозволи застосунку:
AuditLog.Read.All,Directory.Read.AllВикористання: хто, що і коли змінив, контекст сесії
Порada: багато корисних навантажень відповідності мають глибоку вкладеність, тож плануйте використовувати
$expand, переходити сторінками через@odata.nextLinkі поєднувати з/users/{id}для відображуваних імен і підрозділів.
Автентифікація та дозволи (без зайвих труднощів)
Використовуйте дозволи застосунку (службовий принципал) для автоматизованих завдань без нагляду
Реєструйте окремі застосунки для безпеки та для основного Graph, якщо організація вимагає розділення привілеїв
Надавайте згоду лише на мінімально необхідні області доступу; зберігайте секрети та сертифікати в Key Vault
Реалізуйте експоненційну затримку повторів для 429/503 і записуйте
x-ms-request-idу журнали
Шаблони скриптів (PowerShell або Python)
Вибір і розгортання: запитуйте лише потрібні поля,
$select=…,$expand=…для вкладених сутностейФільтрація та обмеження за часом:
$filter=createdDateTime ge {ISO8601}для дельта-запитівПагінація: обробляйте
@odata.nextLinkу циклі; ніколи не припускайте, що результати вміщуються на одній сторінціНормалізація: одразу зіставляйте ідентифікатори користувачів і об'єктів з іменами та підрозділами, щоб результати були читабельними
Об'єднання для контексту: доповнюйте інциденти метаданими користувача, сайту, команди або справи перед експортом
Інтеграція з Purview (перетворення даних на рішення)
Стандартизований вивід: CSV/JSON з єдиними назвами полів (tenant, incidentId, workload, userId, userUPN, severity, status, created, lastAction, caseId)
Завантаження: розміщуйте файли в захищеному сховищі, яке може читати Purview (наприклад, ADLS Gen2)
Теги та мітки: застосовуйте мітки конфіденційності або власні теги (наприклад, «DLP-PII-High») для маршрутизації
Панелі керування: Purview (або Power BI поверх даних Purview) для трендів, власників і аналізу простроченості SLA
Автоматизація: правила сповіщення власників справ про повторні випадки та ескалації; щотижневі PDF-дайджести
Пілот на 30 хвилин (покроково)
0–10 хв: реєстрація застосунку +
SecurityEvents.Read.All/eDiscovery.Read.All; створіть секрет або сертифікат10–20 хв: напишіть скрипт для однієї кінцевої точки (сповіщення або справи) з пагінацією та
$filterза останні 7 днів20–30 хв: доповніть даними з
/users, експортуйте CSV, перемістіть до шляху ADLS і побудуйте базовий графік
KPI, які демонструють цінність
% інцидентів із заповненими власником і результатом розгляду
Середній час від інциденту до справи (або до перевіряючого)
Облікові записи та локації повторних порушників за 30 днів
Різниця з кількістю в стандартній панелі керування (скорочення прогалин)
Тривалість циклу аудиту (заощаджені години на підготовку доказів)
Типові помилки (і як їх виправити)
Порожні результати → неправильні області дозволів або використання делегованих дозволів там, де потрібні Application
Неповні деталі → не використано
$expandабо вкладені колекції не розібраноЧасткові дані → немає пагінації; збережено лише першу сторінку
Невідповідності імен → немає доповнення через
/usersабо дані HRЗастарілі панелі → немає запланованих запусків; додайте завдання та сповіщення про збої
Швидкі результати цього тижня
Отримайте останні 7 днів з
/security/alertsі порівняйте кількість з порталомЕкспортуйте відкриті справи eDiscovery та відповідальних осіб; передайте юристам для перевірки
Проведіть перевірку інцидентів DLP, позначте повторні та відкрийте подальші дії в Purview
Налаштуйте щотижневий пакет доказів (CSV + PDF) на поштову скриньку відділу відповідності
Поширені запитання
Чи потрібно бути розробником? Ні: достатньо PowerShell або коротких скриптів на Python.
Навіщо дозволи застосунку? Більшість кінцевих точок /security та /compliance вимагають безголового доступу з високим рівнем довіри.
Чи можна залишитися в PowerShell? Так: використовуйте Microsoft Graph PowerShell SDK і обробляйте
$top,$filter,$expandта пагінацію.Чи обов'язковий Purview? Формально ні, але він перетворює сирий JSON на перевірювані робочі процеси та панелі керування.
Висновок
Панелі керування підсумовують, а Graph показує всю картину. Оберіть потрібні кінцеві точки, налаштуйте автентифікацію, використовуйте пагінацію та розгортання, а потім централізуйте дані в Purview. Ви перейдете від формальної відповідності до доведеної видимості в режимі реального часу без виснажливих ручних експортів. Щоб глибше розібрати ці сліпі зони та почути практичні поради експертів, обов'язково послухайте наш окремий епізод подкасту Find Missing Microsoft 365 Compliance Data with Graph. Продовжуйте вдосконалювати свої скрипти, захищайте дозволи застосунків і починайте показувати дані, які ваші панелі досі приховували!