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
In a nutshell
  • 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.

Azure subscriptionsactivity and resource logsThreat feedsindicators of compromiseYour applicationscustom JSON eventsSentineltables ready for detection

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 needApproach
Collect Azure Activity from all subscriptionsA diagnostic setting assigned by Azure Policy at management group level
Collect the logs of a particular resource such as a Key VaultThe resource's diagnostic settings, or a policy that deploys them
New subscriptions must be covered automaticallyA 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.

  1. Logs Ingestion API. Your application, or a script, posts JSON to an endpoint.
  2. 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.

ItemPurpose
A custom table in the workspaceStores the data, and defines its columns
A data collection rule with a stream declarationDescribes the incoming JSON and maps it to the table, and may transform it
An identity with the Monitoring Metrics Publisher role on the DCRLets 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.

PlanUse
AnalyticsFull query, analytics rules and hunting. The standard choice
BasicCheaper, limited queries, for high volume logs you search occasionally
AuxiliaryLowest 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 needApproach
Spot who deleted a resource in AzureAzureActivity through diagnostic settings
Match logs against known malicious IP addressesThreat indicators with a threat intelligence analytics rule
Bring in JSON events from an in house appA custom table, a DCR and the Logs Ingestion API
Remove unneeded fields before storageA DCR transformation
Keep verbose logs cheaplyA 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.
Exam tip

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.