Skip to main content

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

DecisionChoiceRationale
Key Vault access modelAzure RBAC, not legacy access policiesRBAC 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 authenticationManaged identities instead of stored secretsRemoves 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.

ControlPlatform recommendation
Defender for CloudEnable on all relevant subscriptions; enable paid plans intentionally
Secure Score and recommendationsReview centrally; assign ownership to platform or workload teams
Regulatory complianceAssign the standards you are actually held to, where needed
Key VaultUse Azure RBAC; restrict public network access; use Private Link for sensitive workloads
Managed identitiesUse for service-to-service authentication in place of secrets
Network isolationPrivate endpoints, minimized public access, segmented subnets
Incident readinessAlerts, action groups, central logs, and optional SIEM integration

Example Implementation

A Key Vault provisioned to the baseline — RBAC authorization on, public network access off:

Terminal window
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 Disabled

Grant 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

Terminal window
# Which Defender plans are enabled
az 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 scope
az 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 secrets
az identity list --output table

Common 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.

References