Checklist · Azure

Azure Landing Zone Checklist

Run before production workloads land in Azure, subscription and management group structure, identity and conditional access, networking, policy guardrails, cost controls and a tested restore.

Markdown. No sign-up, no email.

Complete before the first production resource exists. Retrofitting subscription structure, tagging and identity onto a running estate is among the most expensive work in cloud engineering, and it is entirely avoidable.

Workload / environment: _______________ Owner: _______________ Date: _______

1. Tenant and subscription structure#

  • [ ] Management group hierarchy defined, not everything in the root
  • [ ] Separate subscription per environment (production isolated)
  • [ ] Naming convention agreed and documented
  • [ ] Resource groups grouped by lifecycle, not by resource type
  • [ ] Subscription owner named for each

The subscription is the strongest practical boundary Azure offers for blast radius, policy and cost attribution. Sharing one across production and development to save administration trades a permanent boundary for a temporary convenience.

2. Identity#

  • [ ] Human access through directory groups, not individual assignments
  • [ ] Multi-factor authentication enforced, especially for privileged roles
  • [ ] Conditional access policies defined and tested, including a break-glass exclusion
  • [ ] Break-glass account exists, excluded from conditional access, credentials sealed and stored where two people can reach them
  • [ ] Privileged roles time-bound rather than standing where available
  • [ ] Workload identity used for applications, no secrets in code
  • [ ] Access review cadence set

Break-glass tested on: _______

A conditional access policy that locks out every administrator is a well-documented way to lose an entire tenant. Test the escape route before you need it.

3. Networking#

  • [ ] Virtual network and address space planned against future growth and any on-premises overlap
  • [ ] Subnets segmented by tier
  • [ ] Network security groups default-deny inbound
  • [ ] Anything reachable from the internet listed explicitly and justified
  • [ ] Private endpoints used for platform services holding data
  • [ ] Outbound path deliberate
  • [ ] DNS resolution planned, including hybrid

4. Policy guardrails#

  • [ ] Policies assigned at management group level, not per resource
  • [ ] Allowed regions restricted
  • [ ] Required tags enforced (owner, environment, cost centre)
  • [ ] Public network access denied by default for data services
  • [ ] Deny rules chosen over audit-only where the risk warrants it

Policy is the mechanism that keeps an estate consistent as it grows. Audit-only policies tell you about drift you then have to chase.

5. Data#

StoreClassificationEncryptionPublic access blockedBackupRetention
  • [ ] Soft delete and purge protection enabled where available
  • [ ] Deletion protection / resource locks on production data stores
  • [ ] Key management decided: platform-managed or customer-managed, with a reason
  • [ ] Data residency requirements met and recorded

6. Cost#

  • [ ] Budget set with alerts to a real inbox
  • [ ] Tagging enforced by policy, not by convention
  • [ ] Non-production resources scheduled to stop outside working hours
  • [ ] Reservations or savings plans considered after a measured baseline
  • [ ] Orphaned resources reviewed, disks, addresses, snapshots

7. Monitoring and recovery#

  • [ ] Diagnostic settings sending logs to a central workspace
  • [ ] Retention set deliberately
  • [ ] Alerts that page a person, routed to a named rota
  • [ ] Restore tested on ____, took ____
  • [ ] Backups isolated from the workload's own credentials
  • [ ] Recovery objectives (RPO/RTO) written down and achievable

An untested backup is a belief. Fill in the restore row with a real date and a real duration, or record the gap honestly.

8. Before go-live#

  • [ ] No standing owner-level access
  • [ ] No public endpoints beyond the listed ones
  • [ ] Every resource tagged
  • [ ] Alerts tested by causing the condition
  • [ ] Runbook written for the three most likely failures

Sign-off#

NameDate
Built by
Security
Cost owner
Approved for production

Back to Azure

Get new material when it is published

Everything here is free and stays free. There is no form in front of any document. If you want to know when new guides and templates go up, leave an email.

Roughly monthly. Unsubscribe in one click. We do not share your address, and we will not call you.