大多数 Azure 环境的起点都一样。有人为试点创建了一个订阅,接着为生产创建一个,然后每个团队各有一个。两年后,租户根组下挂着 40 个订阅,其中三个自建了 VPN 网关,一台数据库 VM 带着公网 IP,而且没人知道哪些策略适用于哪里。
Azure 登陆区是 Microsoft 为避免这种局面给出的蓝图。本文配合图示逐一介绍各个部分:管理组、平台与工作负载登陆区、策略护栏、中心辐射与 Virtual WAN、身份和部署。
什么是 Azure 登陆区
Cloud Adoption Framework (CAF) 将 Azure 登陆区定义为“用于治理、保护和扩展多订阅 Azure 环境的成熟且灵活的架构”(Microsoft Learn)。它分为两部分:
- 平台登陆区:管理组层级,加上中心网络、日志和安全工具等共享资源。Microsoft 建议每个 Microsoft Entra 租户设一个,由平台团队运维。
- 工作负载登陆区:每个工作负载一个,由其团队拥有,把所有环境(开发、测试、生产)作为一个或多个订阅。较早的资料称之为应用程序登陆区。
订阅是基本构件:CAF 称它是管理、计费和扩展的单位。按 AWS 的说法,订阅大致相当于账户,管理组相当于组织单元;AWS 登陆区图讲的是这一侧。
管理组层级
在管理组上分配的策略或角色会应用到其下的所有内容,订阅所有者无法更改。根据管理组文档,Azure 每个租户允许 10,000 个管理组,根以下最多六层,每个管理组只有一个父级。
参考层级,并附上默认 ALZ 策略分配的说明:
| 管理组 | 父级 | 包含的内容 |
|---|---|---|
| 租户根组 | 无 | 租户中的一切;ALZ 不在此分配策略 |
| 中间根组,例如 Contoso | 租户根组 | 整个登陆区;日志等全组织范围的策略 |
| Platform | 中间根组 | Management (Log Analytics)、Connectivity (中心网络)、Identity (域控制器) 和 Security (Microsoft Sentinel),各一个订阅 |
| Landing zones | 中间根组 | Corp (连接到中心)、Online (面向互联网) 和 Local (Azure Local) |
| Sandbox | 中间根组 | 实验;拒绝与其他订阅的 VNet 对等连接 |
| Decommissioned | 中间根组 | 正在关闭的订阅;拒绝新资源,VM 被关机 |
CAF 管理组指南中的三条规则能避免大多数重新设计:
- 保持扁平。 三到四层就够了;不要为区域或开发、测试、生产添加管理组。
- 在中间根组分配,而不是租户根组。 新订阅默认落在租户根组下,在你要求权限之前任何用户都能创建管理组。两项都要改,并把 Sandbox 设为默认。
- 在订阅范围给工作负载团队授予角色。 平台团队可以在管理组上持有角色,用即时访问来控制。
名称正在变化:Security 在 2025 年并入了 Platform,最新的 CAF 概述把 Landing zones 称为“Workload landing zones”,把 Corp 称为“Internal”。
平台登陆区与工作负载登陆区
| 平台登陆区 | 工作负载登陆区 | |
|---|---|---|
| 所有者 | 平台团队 | 工作负载团队 |
| 内容 | 管理组、策略、中心、日志、身份服务 | 一个工作负载在所有环境中的资源 |
| 数量 | 每个 Entra 租户一个 | 每个工作负载一个 |
| 创建方式 | IaC 加速器 | 订阅自动发放,按请求进行 |
| 访问 | 通过 PIM 获得管理组角色 | 在自己订阅上的角色 |
在订阅自动发放中,一次请求(通常是拉取请求)会在 Corp 或 Online 下创建订阅,分配角色和预算,对 Corp 还会添加一个与中心对等连接的辐射网络。Microsoft 发布了 Bicep 和 Terraform 的发放模块。
策略驱动的护栏
Azure Policy 把层级变成强制执行:在管理组上分配一次规则,其下当前和未来的每个订阅都会继承它。
| 护栏 | 效果 | 分配位置 |
|---|---|---|
| 不允许具有公共网络访问的 PaaS 服务 | Deny | Corp |
| 不允许带公网 IP 的网络接口 | Deny | Corp |
| 专用终结点的 DNS 记录 | DeployIfNotExists | Corp |
| 每个子网都有网络安全组 | Deny | Landing zones、Identity |
| 活动日志和资源日志发送到 Log Analytics | DeployIfNotExists | 中间根组 |
| 允许的位置 | Deny | 默认不分配 |
区域规则需要谨慎:内置的 Allowed locations 策略会跳过资源组和 global 位置,所以要搭配 Allowed locations for resource groups 使用,并先用 DoNotEnforce 模式运行,看它会拦截什么:
az policy assignment create \
--name allowed-locations \
--scope /providers/Microsoft.Management/managementGroups/contoso \
--policy e56962a6-4747-49cd-b67b-bf8b01975c4c \
--params '{"listOfAllowedLocations": {"value": ["westeurope", "northeurope"]}}' \
--enforcement-mode DoNotEnforce
时机很重要:新的分配大约五分钟后生效,移入管理组的订阅大约 30 分钟后评估,完整扫描每 24 小时运行一次。DeployIfNotExists 和 Modify 策略作用于新建和更新的资源;已有资源需要修正任务。
网络:中心辐射还是 Virtual WAN
连接订阅拥有共享网络:Azure Firewall、VPN 和 ExpressRoute 网关、Bastion、专用 DNS 区域和 DNS Private Resolver。CAF 的网络拓扑指南提供两种设计:
| 中心虚拟网络 | Virtual WAN | |
|---|---|---|
| 路由 | 你自己管理对等连接、路由表和网关传输 | 每个中心里有一个 Microsoft 托管的路由器 |
| 适用场景 | 少数区域,IPsec 隧道少于 30 条,需要完全控制 | 多个区域,SD-WAN 或超过 30 个分支,VPN 到 ExpressRoute 的传输 |
| 辐射到辐射 | 通过防火墙,借助路由表 | 在 Standard 中心里通过中心路由器,或使用路由意图经由防火墙 |
| 规模 | 每个虚拟网络 650 个对等连接 | 每个中心 500 个 VNet 连接减去中心数量;50 Gbps 路由器 |
| 地址空间 | AzureFirewallSubnet 需要 /26 | 中心需要 /24,使用 Azure Firewall 时为 /22,创建时固定 |
对等连接不具传递性,所以在中心虚拟网络中,每个辐射网络都有一张把 0.0.0.0/0 发往防火墙专用 IP 的路由表,中心侧的对等连接允许网关传输,辐射侧的对等连接使用远程网关;路由细节见中心辐射网络拓扑一文。Azure Firewall Basic 最高处理 250 Mbps,Standard 为 30 Gbps,Premium 为 100 Gbps。使用 Virtual WAN 时选 Standard 类型;Basic 只支持站点到站点 VPN。
DNS 是团队最常出错的地方。privatelink.blob.core.windows.net 这类专用 DNS 区域放在连接订阅中,并链接到中心,由 DNS Private Resolver 转发到 168.63.129.16 的 Azure DNS;本地 DNS 服务器把 blob.core.windows.net 这类区域转发给它。Corp 中的 DeployIfNotExists 策略会把每个专用终结点的记录写入中央区域,所以工作负载团队不需要对它的权限。
身份
Microsoft Entra 租户是身份边界。CAF 的实用规则:
- 在发放时给工作负载团队授予其自有订阅上的角色,绝不授予管理组上的角色。
- 让平台工程师通过 Privileged Identity Management (PIM) 激活 Owner 等角色,需要审批并有时间限制。
- 对所有管理 Azure 的人应用条件访问,并保留受监控的紧急访问账户。
- 如果工作负载仍然需要,就用身份订阅放置域控制器或 Microsoft Entra Domain Services。
部署
撰写本文时(2026 年 11 月),Microsoft 推荐 Azure Landing Zones IaC Accelerator:基于 Azure Verified Modules (AVM) 的 Bicep 或 Terraform。它的 PowerShell 模块会初始化 GitHub 或 Azure DevOps 仓库、带审批的流水线,以及使用联合凭据的托管标识。Terraform 为层级和策略 (avm-ptn-alz)、管理资源以及每种网络设计使用各自独立的模块;Bicep 使用部署堆栈,它可能删除你从模板中移除的资源。
旧方案正在退役:Terraform 模块 caf-enterprise-scale 已弃用,经典的 ALZ-Bicep 于 2026 年 2 月 16 日退出加速器,其仓库将于 2027 年 2 月 16 日归档。门户版加速器仍然保留,但没有代码,很难更新。
要做好预算。加速器的场景页面估算,使用 Azure Firewall 的单区域中心辐射,固定基础设施每月约 $5,640,小型企业变体为 $690,后者除其他项外还关闭了 DDoS Network Protection 套餐(2026 年 4 月 westus 零售价,不含流量和日志)。你还需要四个平台订阅,小型企业配置则需要两个。
Azure 登陆区图
图表内容
- Tenant root group
- Contoso
- Platform
- Landing zones
- Corp
- Online
- Sandbox
- Decommissioned
- Azure Policy guardrails
- Hub VNet
- VPN / ExpressRoute gateway
- Azure Firewall · 10.0.0.4
- Spoke VNet · app-a
- Spoke VNet · app-b
- assigned here, inherited by every child
- Connectivity MG › connectivity subscription
- vended into Corp
- VNet peering
- ExpressRoute or VPN
这张图的读法如下:
- 左侧的树是层级;箭头从父级指向子级,也就是继承的方向。
- 策略节点挂在 Contoso 中间根组上,而不是租户根组,所以它覆盖整个登陆区,而不会覆盖其他内容。
- 颜色表示归属:蓝色是平台,绿色是工作负载,琥珀色是 Sandbox,灰色是根组和已退役的订阅。
- 虚线表示位置:中心位于连接订阅中,两个辐射网络都发放到 Corp 下。
- 实线承载流量:与中心的对等连接以及通往本地的网关链路;每个辐射网络把 0.0.0.0/0 路由到 10.0.0.4 的防火墙。
- Markdown 块列出了关键限制。
把 Azure 登陆区图画清楚
- 把治理和网络画成两个视图,只在订阅所在之处相连。
- 把每条策略挂在分配它的位置,让读者看到它约束哪些工作负载。
- 每个组只展示一两个示例订阅,不要画成清单。
- 在中心和每个辐射网络上写明地址范围;重叠是评审者最先检查的内容。
- 避免经典错误:把对等连接画成可传递的、把工作负载放在租户根组下,以及把区域或环境当作管理组。
带类型的云节点见云架构图,由 Terraform 管理的环境见 Terraform 架构图一文。
在 Archboard 中构建
- 用 Google 或 GitHub 登录并创建一个图表。
- 从云包中添加八个云资源节点:Tenant root group、Contoso、Platform、Landing zones、Corp、Online、Sandbox 和 Decommissioned。把每个角色写在资源类型行里,并排成缩进树。
- 用正交连线把父级连到子级,并给分支上色:Platform 用蓝色,Landing zones 用绿色,Sandbox 用琥珀色。
- 从安全包中添加一个名为 Azure Policy guardrails 的策略节点,并连到 Contoso。
- 从网络包中为中心添加一个 VPC 节点,内含一个代表网关的路由器和一个防火墙,再为辐射网络添加两个 VPC 节点,每个都用基础包中的文本行写明它的路由。
- 画出从 Platform 到中心、从 Corp 到辐射网络的虚线,画出与中心的对等连接线,以及从网关到本地文本标签的连线。
- 从基础包中添加一个列出限制的 Markdown 块。
如果你的登陆区用 Terraform 管理,Terraform to diagram 工具可以把这些文件变成初稿。
这个示例共用 15 个图表节点,在 Free 套餐的限制之内。
常见问题
什么是 Azure 登陆区? 在工作负载到来之前,按 Cloud Adoption Framework 建议构建的多订阅 Azure 环境:管理组、策略护栏、身份、日志和共享网络。
Azure 登陆区使用哪些管理组? 租户根组下有一个中间根组,其下是 Platform (Management、Connectivity、Identity、Security)、Landing zones (Corp、Online、Local)、Sandbox 和 Decommissioned。
Corp 和 Online 登陆区有什么区别? Corp 放置通过中心访问企业网络的工作负载,所以默认在那里拒绝公共 PaaS 终结点和网络接口上的公网 IP。Online 放置需要直接访问互联网或不使用虚拟网络的工作负载。
应该用中心辐射还是 Virtual WAN? 中心虚拟网络适合少数区域、少于 30 条站点到站点隧道和完全的路由控制;Virtual WAN 适合多个区域和分支、SD-WAN,或 VPN 到 ExpressRoute 的传输。
Terraform 模块 caf-enterprise-scale 还受支持吗? 不受支持。它已弃用,不再更新。平台登陆区请使用 Azure Verified Modules,通常通过 IaC 加速器;Microsoft 提供了迁移路径文档。