Security Baseline
Security in a landing zone is not a single service you switch on. It is a set of controls spread across identity, network, policy, monitoring, data protection, secrets, and incident readiness. The platform’s job is to provide a secure baseline that every workload inherits before workload-specific controls are added.
Purpose
This page defines the platform-level security baseline that workloads inherit. Application security, workload-specific data protection, and fine-grained runtime controls remain with the workload team — but the platform must provide the secure foundation underneath them.
Design Reasoning
The platform security baseline should focus on controls that are broadly reusable and enforceable:
- Defender for Cloud enabled across relevant subscriptions, with paid plans turned on deliberately.
- Microsoft Cloud Security Benchmark (MCSB) alignment — it is assigned automatically when Defender for Cloud is enabled and drives your secure score.
- Secure use of secrets and keys, with managed identities replacing stored secrets wherever possible.
- Network isolation — private endpoints and minimized public network access.
- Logging and detection, and a defined incident-response readiness posture.
Secure Score and the MCSB regulatory-compliance dashboard are operating tools, not dashboards to admire. Each control maps to recommendations with an owner; review them centrally and assign remediation to the platform or workload team that owns the resource.
Architecture Decision Record
| Decision | Choice | Rationale |
|---|---|---|
| Key Vault access model | Azure RBAC, not legacy access policies | RBAC provides centralized, scope-based access control, integrates with PIM, and is becoming the default for new vaults (API version 2026-02-01 and later). |
| Service authentication | Managed identities instead of stored secrets | Removes long-lived credentials from pipelines, scripts, and app settings. |
Tradeoff: Disabling public network access and requiring private endpoints adds network plumbing for each data service. That plumbing is exactly what prevents the accidental public exposure that causes most data incidents.
Recommended Configuration
| Control | Platform recommendation |
|---|---|
| Defender for Cloud | Enable on all relevant subscriptions; enable paid plans intentionally |
| Secure Score and recommendations | Review centrally; assign ownership to platform or workload teams |
| Regulatory compliance | Assign the standards you are actually held to, where needed |
| Key Vault | Use Azure RBAC; restrict public network access; use Private Link for sensitive workloads |
| Managed identities | Use for service-to-service authentication in place of secrets |
| Network isolation | Private endpoints, minimized public access, segmented subnets |
| Incident readiness | Alerts, action groups, central logs, and optional SIEM integration |
Example Implementation
A Key Vault provisioned to the baseline — RBAC authorization on, public network access off:
az keyvault create \ --name kv-platform-prod-sec-001 \ --resource-group rg-platform-security-prod-sec-001 \ --location switzerlandnorth \ --enable-rbac-authorization true \ --public-network-access DisabledGrant access by assigning a data-plane role (for example, Key Vault Secrets User) to a group or managed identity at the vault scope — never by adding an access policy.
Validation Steps
# Which Defender plans are enabledaz security pricing list
# Confirm the vault baseline (RBAC on, public access disabled)az keyvault show --name kv-platform-prod-sec-001
# Review who has access at the vault scopeaz role assignment list \ --scope $(az keyvault show --name kv-platform-prod-sec-001 --query id -o tsv) \ --output table
# Confirm workloads use managed identities rather than stored secretsaz identity list --output tableCommon Mistakes
- Enabling Defender for Cloud without deciding which plans are required, and absorbing surprise cost.
- Treating Secure Score as a dashboard, not an operating process with owners.
- Continuing to use legacy Key Vault access policies in new designs.
- Storing secrets in pipelines, scripts, or application settings instead of using managed identities.
- Allowing public network access by default on data services.
- No owner for security findings, so recommendations are seen but never actioned.