Manage a Security Operations Environment · Topic 6 of 8
Azure Activity, Threat Indicators and Custom Tables
SC-200 Sentinel ingestion: Azure activity logs with Azure Policy, threat indicators, custom tables, the Logs Ingestion API and DCR transformations.
- 6 min
- Azure Activity goes to AzureActivity through diagnostic settings, assigned at scale with Azure Policy. It is free to ingest.
- Indicators come from Defender Threat Intelligence, TAXII, the upload API and manual entry, and are used by analytics rules and hunting.
- Custom tables end with _CL. The Logs Ingestion API needs a table, a DCR with a stream declaration and the Monitoring Metrics Publisher role.
What it is
Beyond servers and appliances, a SOC also needs Azure control plane logs, threat intelligence about known bad indicators, and data from its own applications. This page covers three ways to bring those in: Azure activity logs through diagnostic settings and Azure Policy, threat indicators from threat intelligence feeds, and custom log tables filled through the Logs Ingestion API.
How it works
Azure activity logs
The Azure Activity log records control plane operations in a subscription, such as who created or deleted a resource, so it is key for detecting suspicious changes. The log lands in the AzureActivity table.
The current way to collect it is with diagnostic settings pointed at the Log Analytics workspace. Because a large organisation has many subscriptions, you use Azure Policy to assign the diagnostic setting at the management group or subscription level, so that every existing and new subscription sends its logs automatically. The same approach works for the resource logs of individual services, such as a storage account or a Key Vault, which are collected through each resource's diagnostic settings.
| The need | Approach |
|---|---|
| Collect Azure Activity from all subscriptions | A diagnostic setting assigned by Azure Policy at management group level |
| Collect the logs of a particular resource such as a Key Vault | The resource's diagnostic settings, or a policy that deploys them |
| New subscriptions must be covered automatically | A policy assignment with a remediation or deploy if not exists effect |
Azure Activity logs are one of the data sources that is free to ingest into Sentinel, along with Office 365 audit logs.
Threat indicators
Threat indicators, also called indicators of compromise, describe things known to be malicious, such as IP addresses, domains, URLs and file hashes. Sentinel can ingest them from several sources:
- Microsoft Defender Threat Intelligence, which provides indicators from Microsoft.
- TAXII servers, using the TAXII data connector, which pull indicators from feeds in the STIX format.
- Threat intelligence platforms and other products, through the upload indicators API.
- Manual entry, where an analyst adds an indicator in the Threat intelligence page.
Indicators are stored in the threat intelligence tables of the workspace. Once there, they are used in three ways: analytics rules match indicators against your events to raise alerts, hunting queries and workbooks use them for context, and analysts see them on the Threat intelligence page, where they can search, tag and manage them. Every indicator has a valid until date and a confidence, so old indicators expire.
Threat intelligence also reaches Defender XDR, so detections can use it across products.
Custom log tables
When no connector exists for a source, you create a custom table and send data to it. Custom tables have names that end with _CL. There are two common ways to get data in.
- Logs Ingestion API. Your application, or a script, posts JSON to an endpoint.
- Custom logs from files through the agent and a DCR, for text files on servers.
For the Logs Ingestion API, three things must exist before the first call works.
| Item | Purpose |
|---|---|
| A custom table in the workspace | Stores the data, and defines its columns |
| A data collection rule with a stream declaration | Describes the incoming JSON and maps it to the table, and may transform it |
| An identity with the Monitoring Metrics Publisher role on the DCR | Lets the application authorise its calls |
A workspace key is not used, and an agent is not needed for this API. The identity is usually a Microsoft Entra application or a managed identity.
A transformation in the DCR, written in KQL, lets you filter rows, drop columns or add computed columns before the data is stored, which cuts cost and cleans the data.
Table plans
Each table has a plan that decides cost and capability.
| Plan | Use |
|---|---|
| Analytics | Full query, analytics rules and hunting. The standard choice |
| Basic | Cheaper, limited queries, for high volume logs you search occasionally |
| Auxiliary | Lowest cost, for very high volume logs kept for long periods |
In Sentinel, tables can also be placed in the data lake tier. Choose the plan to match how often you query the data and whether detections use it.
Choosing the approach
| The need | Approach |
|---|---|
| Spot who deleted a resource in Azure | AzureActivity through diagnostic settings |
| Match logs against known malicious IP addresses | Threat indicators with a threat intelligence analytics rule |
| Bring in JSON events from an in house app | A custom table, a DCR and the Logs Ingestion API |
| Remove unneeded fields before storage | A DCR transformation |
| Keep verbose logs cheaply | A lower cost table plan, or the data lake tier |
A worked scenario
A company wants every Azure subscription to send its activity logs to Sentinel, now and in the future. A security engineer assigns an Azure Policy at the management group that deploys a diagnostic setting to the workspace, and the AzureActivity table fills automatically. The team enables the Defender Threat Intelligence connector and a TAXII feed from an industry sharing group, and turns on the threat intelligence analytics rule that matches indicators against events. An in house application creates JSON audit events, so a developer creates a custom table, a DCR with a stream declaration and a transformation that drops debug fields, and gives the application's identity the Monitoring Metrics Publisher role on the DCR.
What to remember for the exam
- Azure Activity goes to AzureActivity through diagnostic settings, assigned at scale with Azure Policy. It is free to ingest.
- Indicators come from Defender Threat Intelligence, TAXII, the upload API and manual entry, and are used by analytics rules and hunting.
- Custom tables end with _CL. The Logs Ingestion API needs a table, a DCR with a stream declaration and the Monitoring Metrics Publisher role.
- A DCR transformation filters and reshapes data before storage.
- Table plans are Analytics, Basic and Auxiliary.
The Logs Ingestion API needs no workspace key and no agent. It needs the table, the DCR and a role.
How the exam asks about this
- "Which three items must exist before the first Logs Ingestion API call succeeds?" A custom table, a DCR with a stream declaration, and an identity with Monitoring Metrics Publisher on the DCR.
- "Cover every subscription with Azure Activity logs automatically." Assign a diagnostic setting by Azure Policy.
- "Match events against known malicious IPs." Threat intelligence indicators with an analytics rule.
- "Which two sources are free to ingest?" Azure Activity and Office 365 audit logs.
Common mistakes
Using a workspace key in the Logs Ingestion API. It is not used.
Configuring diagnostic settings subscription by subscription. Use Azure Policy at scale.
Forgetting expiry of indicators. Old indicators create false matches.
Sending everything to the Analytics plan. Cost rises fast.
Check yourself
What suffix do custom log tables have?
_CL.
How do you collect Azure Activity logs from many subscriptions at once?
Assign a diagnostic setting with Azure Policy at the management group.
What does a DCR transformation do?
It filters or reshapes data with KQL before it is stored.
Topic 6 of 8 in Manage a Security Operations Environment
Test yourself on Manage a Security Operations Environment
The full Microsoft SC-200 question bank has 650 questions, with timed practice exams and an explanation for every answer.
This study guide is independent and is not affiliated with, endorsed by, or sponsored by Microsoft. Vendor names, certification names and exam codes are trademarks of their respective owners and are used for identification only.