When customers ask what our governance and monitoring platform deploys into their Azure environment, the best answer is transparency.
Modern cloud governance cannot rely on one-time setup, manual policy checks, or periodic spreadsheets. At enterprise scale, subscriptions change constantly. Resources are created, updated, moved, deleted, reconfigured, and sometimes drift away from approved standards. To manage that safely, a governance platform needs a small set of foundation components, clear policy automation, reliable monitoring onboarding, and an idempotent operating model.
This article explains what gets deployed, when it gets deployed, why each component exists, and how the platform avoids duplicate work or unsafe changes.
The Deployment Model
The platform uses two primary automation paths:
- Subscription onboarding
- Policy automation, including both Azure Monitor Agent and non-Azure Monitor Agent controls
Both paths use the same foundation validation process. Before the platform applies policy or monitoring changes, it verifies that the subscription is ready, the required Azure resource providers are registered, and the current resource inventory is known.
This makes the process repeatable, auditable, and safe to run more than once.
What Gets Deployed
The exact deployment depends on which controls are enabled for a subscription. Some components are part of the baseline onboarding process. Others are deployed only when a specific policy or monitoring workflow requires them.
| Component | Deployed When | Why It Exists |
|---|---|---|
| Event Grid subscription | During onboarding and foundation validation | Captures Azure resource change events so automation can respond quickly to configuration drift. |
| Required Azure resource providers | During onboarding and foundation validation | Ensures Azure services required by policy, monitoring, identity, and remediation workflows are available. |
| Resource inventory snapshot | During onboarding and foundation validation | Builds a current metadata-only view of resources so applicable controls can be evaluated. |
| Subscription onboarding tags | When foundation validation completes | Provides visible subscription-level readiness state, ownership, version, and audit metadata. |
| Monitoring resource group | For monitoring-enabled workflows | Provides a consistent location for monitoring-related artifacts such as identities and data collection resources. |
| Non-AMA policy assignment | When a non-AMA policy request is created | Enforces governance requirements for targeted resource types or configuration controls. |
| Non-AMA remediation task | After the policy assignment is created | Applies policy remediation to existing non-compliant resources, not only future resources. |
| Azure Monitor Agent managed identity | AMA workflow only | Provides managed identity context for deploying or associating monitoring components. |
| AMA policy managed identity | AMA workflow only | Supports policy assignment and remediation operations that require identity-backed execution. |
| Data Collection Rules | AMA workflow only | Defines Windows and Linux telemetry collection rules for monitored workloads. |
| AMA policy assignments | AMA workflow only | Deploys Azure Monitor Agent and associates workloads with the correct Data Collection Rules at scale. |
| AMA remediation tasks | AMA workflow only | Applies AMA deployment and DCR association to existing in-scope compute resources. |
| RBAC role assignments for monitoring identities | AMA workflow only | Grants the minimum permissions required for policy-driven monitoring deployment and association. |
Sanitized Example Naming
In a production platform, resource names usually follow a strict naming convention. For a sanitized reference model, the components may look like this:
| Resource Type | Example Sanitized Name |
|---|---|
| Event Grid subscription | fg-resource-change- |
| Monitoring resource group | rg-fleet-governance-mgmt |
| AMA managed identity | id-fg-ama-agent- |
| AMA policy identity | id-fg-ama-policy- |
| Windows Data Collection Rule | dcr-fg-windows- |
| Linux Data Collection Rule | dcr-fg-linux- |
| Windows AMA policy assignment | pa-fg-ama-windows- |
| Linux AMA policy assignment | pa-fg-ama-linux- |
| Onboarding tags | fg-onboarding-* |
The specific prefix is not important. What matters is that names are predictable, scoped, and easy to audit.
What Is Always Required
A small set of foundation components is required for every onboarded subscription.
Event Grid Subscription
The Event Grid subscription is used to detect resource changes at subscription scope. This allows the platform to react to resource create, update, and delete events without waiting for a long polling cycle.
Without eventing, drift detection becomes slower and less consistent. With eventing, the platform can identify changes closer to the time they happen and determine whether policy or monitoring actions are required.
Required Resource Providers
Azure resource providers must be registered before certain services can be deployed or managed. If a required provider is missing, policy assignment, remediation, monitoring, identity, or resource discovery operations may fail.
The onboarding process validates and registers required providers so later automation does not fail for preventable reasons.
Resource Inventory Snapshot
The platform collects a metadata-only inventory of resources in the subscription. This inventory helps determine which controls are applicable, which resources may require remediation, and whether the subscription is in a known state.
The inventory is designed for operational decision-making. Sensitive payloads, secrets, and customer data are intentionally avoided.
Subscription Onboarding State
The platform writes onboarding state to subscription-level tags. These tags provide visible, auditable metadata that operators and customers can inspect directly in Azure.
Typical sanitized tags include:
fg-onboarding-status
fg-onboarding-version
fg-onboarding-ready-at
fg-onboarding-customer-id
fg-onboarding-managed-by
These tags help answer questions such as:
- Has this subscription completed foundation onboarding?
- Which version of onboarding was applied?
- When was the subscription marked ready?
- Which customer or account context owns this subscription?
- Which platform or automation process manages it?
What Is Conditional
Not every subscription receives every component. The platform deploys additional resources only when the requested control requires them.
Non-AMA Policy Controls
For standard governance policies, the platform creates a policy assignment and then starts a remediation task when appropriate.
The policy assignment defines the desired configuration. The remediation task applies that desired state to existing resources that are already non-compliant.
This distinction is important. A policy assignment alone helps govern future changes, but remediation is what brings existing resources into alignment.
AMA Monitoring Controls
Azure Monitor Agent onboarding requires multiple components working together:
- Managed identity
- Data Collection Rules
- Policy assignments
- Remediation tasks
- RBAC role assignments
The identity provides execution context. The Data Collection Rules define what telemetry should be collected. The policy assignments deploy or associate the agent and DCRs at scale. Remediation applies the configuration to existing in-scope resources.
This workflow is only triggered when monitoring onboarding is requested for the subscription.
Why Eventing Matters
At small scale, it may be acceptable to scan subscriptions periodically. At enterprise scale, that approach introduces delays and blind spots.
Event Grid gives the platform a near real-time signal when resources change. When a resource is created, updated, or deleted, the platform can evaluate whether that change affects governance, monitoring, or drift state.
This does not mean every event results in a deployment. Instead, events trigger evaluation. The platform determines whether action is required based on subscription state, applicable controls, policy scope, and current resource metadata.
Foundation Readiness and Safety
Before the platform applies policy or monitoring changes, it validates the subscription foundation.
This foundation validation reduces deployment failures and prevents unnecessary repeated work. It confirms that required providers are available, resource inventory has been captured, onboarding tags are present, and the subscription is in a known state.
The goal is not simply to deploy resources. The goal is to deploy the right resources only when the subscription is ready.
Idempotency and Concurrency
Cloud automation must assume that events can arrive more than once. A resource may generate multiple change events. A subscription may receive overlapping policy requests. A worker may stop unexpectedly during processing.
The platform is designed for this reality.
For subscription onboarding, a lock or lease is used to prevent duplicate concurrent foundation runs. The lock records an owner and an expiration timestamp. A common pattern is:
lock_owner
lock_expires_at
The lock has a default time-to-live, such as 600 seconds, and workers wait only for a bounded period, such as 300 seconds. If a worker stops mid-run, the lease eventually expires and another worker can safely reclaim the subscription without requiring a manual unlock.
For policy and remediation, the platform checks whether the target assignment or remediation already exists. If the desired object already exists and is active, the workflow treats it as existing or in progress instead of creating duplicates.
Delete operations are also idempotent. If a requested policy assignment, remediation, or related artifact is already absent, the operation is treated as successful.
Security and Access Model
The platform follows a least-privilege operating model.
Control-plane read operations use managed identity where possible. Write operations use approved credentials with scoped permissions. Callback integrations use authenticated headers or tokens. Inventory collection stores metadata only and avoids sensitive customer payloads by design.
For monitoring workflows, RBAC assignments are limited to the permissions required to deploy or associate monitoring components. The identities used for Azure Monitor Agent workflows are separated from general platform execution to keep the permission model explicit and auditable.
Status Reporting and Callbacks
For each automation request, the platform sends status updates to an external system of record. This allows customers and operators to correlate bulk operations, policy lifecycle events, and audit trails.
A typical status model includes:
| Status | Meaning |
|---|---|
| RULE_ENABLED | The requested control was created or enabled successfully. |
| RULE_DELETED | The requested control was deleted or confirmed absent successfully. |
| RULE_FAILED | The requested operation failed and requires investigation or retry. |
The callback status gives an authoritative external view of the requested operation, separate from the internal worker logs.
What Customers Will See in Azure
Customers should expect to see a small number of platform-managed components in their subscription.
At subscription scope, they may see:
- Event Grid subscription for resource change detection
- Policy assignments for requested governance controls
- Remediation tasks for existing non-compliant resources
- Subscription-level onboarding tags
For monitoring-enabled subscriptions, they may also see:
- Monitoring resource group
- User-assigned managed identities
- Data Collection Rules
- AMA-related policy assignments
- AMA remediation tasks
- RBAC assignments for monitoring identities
These resources are not arbitrary. Each one supports a specific governance, monitoring, drift detection, or remediation function.
Customer Verification Checklist
Customers can validate the deployment by checking the following items:
- Confirm the Event Grid subscription exists and is healthy.
- Confirm required Azure resource providers are registered.
- Confirm onboarding tags are present on the subscription.
- Confirm expected policy assignments are present.
- Confirm remediation tasks are running or completed for new assignments.
- For AMA-enabled subscriptions, confirm managed identities, Data Collection Rules, policy assignments, and remediation tasks exist.
- Confirm platform-managed resources follow the expected naming convention.
- Confirm status reporting reflects the requested policy lifecycle action.
Operational Visibility
Every onboarding and policy action is tracked for audit and diagnostics. The platform revalidates foundation state instead of assuming that previous onboarding is still valid. This helps avoid stale decisions when subscriptions change over time.
Operational teams can use lock state, onboarding status, callback records, and policy remediation status to determine where an automation request is in its lifecycle.
This is especially important in large environments where thousands of subscriptions may be onboarded, evaluated, or remediated across many customers or business units.
Customer Value
The customer value is straightforward:
- Faster governance onboarding
- More consistent policy enforcement
- Reduced manual remediation effort
- Scalable monitoring deployment
- Better visibility into drift and policy state
- Safer automation through idempotent execution
- Clear lifecycle tracking from request to enforcement result
The platform does not deploy components for their own sake. Each deployed resource exists to support a specific operational outcome: detect change, validate readiness, enforce policy, remediate drift, onboard monitoring, or report status.
That is the foundation of reliable cloud governance at scale.