Chapter 4 of 6 · Decisions and boundaries

Azure Policy guardrails for Microsoft Foundry AI services

Optional module · Draft 4 hours

Chapter 4 of 6

Decisions and stop conditions#

Scope and owners#

Record the exact subscription resource ID in targetScopeResourceId. The same value must be passed to preflight.

Stop if the target scope is broader than the approved AI services estate, if the Azure CLI is set to another subscription, or if any owner in guardrail-decisions.json is missing.

Effects and promotion#

Start with:

  • DoNotEnforce assignment mode;
  • Audit for local authentication, network access, deployment SKU, and content filters; and
  • AuditIfNotExists for diagnostic logs.

Promote in place only after the compliance review owner has reviewed current policy states and the promotion authority has approved the change record.

Stop if the team asks to create a second assignment for the same scope, skips the state review, or moves diagnostic logs to DeployIfNotExists before the Log Analytics role path is approved.

Data residency and content filters#

The data-residency owner owns disallowedDeploymentSkus. The shipped default excludes Global deployment SKUs. Change it only when the residency decision says so.

The content-filter built-in is a preview, audit-only policy. Use it to find deployments whose settings miss the recorded minimums. Do not describe it as a blocking control.

Diagnostic remediation#

The diagnostic-log policy can audit first and remediate later. When it moves to DeployIfNotExists, the assignment identity must have the approved Log Analytics role path for the workspace.

Stop if the workspace owner cannot approve that path, if categoryGroup changes without data owner review, or if remediation would target resources outside the approved scope.

Optional module

Azure Policy guardrails for Microsoft Foundry AI services slide deck