integrations.microsoft_sentinel_auditlogs — version 1.0
Source: presets
Purpose
The organisation's audit logs, on their way to Microsoft Sentinel.
NEEDS presets: the connector authenticates
through the federation that file creates and reads as the account it creates.
Used without it, the compile stops with unknown param 'sentinel_project_id'.
FOUR RESOURCES, AND EACH ONE IS LOAD-BEARING: an organisation sink that exports
the four audit log streams with include_children, so every project is covered
and a project created tomorrow is covered too; the topic it writes to; the
subscription Sentinel pulls from; and two grants — roles/pubsub.publisher for
the sink's own writer identity, without which the sink exists and delivers
nothing, and roles/pubsub.subscriber for the Sentinel account on that one
subscription.
TIGHTER THAN UPSTREAM ON PURPOSE. Microsoft's published configuration grants a
project-level custom role carrying pubsub and .get,
which reaches every subscription in the project, including ones this estate did
not make. The predefined roles/pubsub.subscriber on this subscription alone is
the same access where it is needed and none where it is not.
THE FILTER IS OR-ONLY. Cloud Logging charges a sink nothing for what it exports,
but an AND, a NOT or a != in an organisation sink's filter narrows it per
project in ways that are hard to read back; the audit streams are named as four
alternatives, exactly as the archive sink names them. Data access logs are in the
list and are the loud half of the volume — Sentinel's own ingestion is charged by
the gigabyte, so an estate that does not want them drops that one log_id.
ONE SOURCE, NOT ALL OF THEM. Microsoft publishes a configuration per log source — VPC flow, firewall, DNS, GKE, Cloud SQL, Compute, IAM, Resource Manager and the rest — each its own topic, subscription and sink. This is the audit-log one, which every customer starts with. Another source is this file with its own names and filter; copy it rather than widening this sink, because a sink is replaced when its filter changes and the replacement drops what was in flight.
NO CLAIM. Exporting audit logs to a SIEM does not satisfy a retention control:
monitoring is what claims those, and this sink
is a copy leaving the organisation, not the archive.
Use it
params {
// the pack's own defaults — copy only the lines you change
sentinel_auditlogs_topic = "sentinel-topic"
sentinel_auditlogs_subscription = "sentinel-subscription-auditlogs"
sentinel_auditlogs_sink_name = "audit-logs-organization-sentinel-sink"
sentinel_auditlogs_filter = "log_id("cloudaudit.googleapis.com/activity") OR log_id("cloudaudit.googleapis.com/data_access") OR log_id("cloudaudit.googleapis.com/system_event") OR log_id("cloudaudit.googleapis.com/policy")"
sentinel_auditlogs_retention = "604800s"
sentinel_auditlogs_ack_deadline_seconds = 60
}
use "presets/integrations/microsoft-sentinel-auditlogs.satz"
Needs from outside the pack:
customer_organization_id— declared byestate_core; use one of them alongside, or declare it in the estate.sentinel_project_id— declared byintegrations; use one of them alongside, or declare it in the estate..microsoft _sentinel
Params
| param | default |
|---|---|
sentinel_auditlogs_topic |
"sentinel-topic" |
sentinel |
"sentinel-subscription-auditlogs" |
sentinel |
"audit-logs-organization-sentinel-sink" |
sentinel_auditlogs_filter |
"log |
sentinel |
"604800s" |
sentinel |
60 |
Questions
What to ask before this pack is configured, and what changing the answer costs.
| asks about | prompt | reversal | blast | recommends |
|---|---|---|---|---|
sentinel_auditlogs_filter |
Which audit logs travel to Sentinel — all four streams, or without data access? | recreate | low | — |
sentinel_auditlogs_filter — Data Access logs are most of the volume, and Sentinel is charged by the gigabyte ingested: leaving them in buys full visibility of who read what, taking them out cuts the bill and the answer to that question with it. The organisation's own archive keeps whatever this sink drops. Widening it later replaces the sink, and what was in flight at that moment is not re-sent.
Contributes
| resource type | labels |
|---|---|
google |
sentinel_auditlogs |
google_pubsub_subscription |
sentinel_auditlogs |
google |
sentinel_auditlogs_reader |
google_pubsub_topic |
sentinel_auditlogs |
google |
sentinel_auditlogs_writer |
Claims
None — this pack proves no control by itself.
History
| version | date | change |
|---|---|---|
| 1.0 | 2026-09-12 | first version: the first log source — an organisation sink with include_children for the four audit streams, its topic, the subscription Sentinel pulls from, roles/pubsub.publisher for the sink's writer identity and roles/pubsub.subscriber for the connector on that one subscription. Tighter than upstream, which grants a project-level custom role over every subscription in the project. The filter is asked: Data Access logs are most of the volume and Sentinel bills by the gigabyte |
The whole library's history: the changelog in presets/CHANGELOG.md.
Notes
No notes yet.