你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure 登陆区域 - Bicep 模块设计注意事项

本文介绍模块化 Azure 登陆区域 (ALZ) - Bicep 解决方案的设计注意事项,该解决方案可用于部署和管理 Azure 登陆区域概念体系结构的核心平台功能,如云采用框架 (CAF) 中所述。

Bicep 是一种特定于域的语言 (DSL),使用声明性语法来部署 Azure 资源。 它提供简明的语法、可靠的类型安全性以及对代码重用的支持。

GitHub logo 有关此体系结构的实现,请参阅 GitHub:Azure 登陆区域 (ALZ) - Bicep 实现。 可以使用它作为起点,并根据需要进行配置。

注意

存在多种部署技术的实现,包括基于门户的 ARM 模板和 Terraform 模块。 部署技术的选择不应影响生成的 Azure 登陆区域部署。

ALZ Bicep 加速器

可以使用 ALZ Bicep 加速器找到有关实现、自动化和维护 ALZ Bicep 模块的分步指南。

ALZ Bicep 加速器框架旨在通过成熟的 CI/CD 管道、对 GitHub Actions 和 Azure DevOps Pipelines 的支持、用于与新 ALZ Bicep 版本保持同步以及修改或添加自定义模块的专用框架,为最终用户提供加入和部署 ALZ Bicep 的支持,并提供分支策略指导和拉取请求管道,用于对 Bicep 模块进行 Lint 分析和验证。

设计

Diagram showing the bicep modules for deploying Azure landing zones.

该体系结构利用 Azure Bicep 的模块化性质,由多个模块组成。 每个模块封装 Azure 登陆区域概念体系结构的核心功能。 模块可以单独部署,但有一些依赖关系需要注意。

体系结构建议包含业务流程协调程序模块,以简化部署体验。 业务流程协调程序模块可用于自动部署模块并封装不同的部署拓扑。

模块

Bicep 中的核心概念是模块的使用。 模块使你能够将部署组织成逻辑分组。 使用模块,可以通过封装部署的复杂细节来改善 Bicep 文件的可读性。 你还可以轻松地将模块重用于不同的部署。

在定义和部署登陆区域时,重新使用模块的能力带来了真切的好处。 它在代码中实现了可重复、一致的环境,同时减少了大规模部署所需的工作量。

层和暂存

除了模块,Bicep 登陆区域体系结构还使用层的概念进行结构化。 层是一组 Bicep 模块,这些模块旨在一同部署。 这些组构成了实现的逻辑阶段。

Diagram showing the deployment layers.

此分层方法的优点是能够随时间以增量方式添加到环境中。 例如,可以从少量层入手。 准备就绪后,可以在后续阶段添加剩余层。

模块说明

本部分提供此体系结构中核心模块的高级概述。

模块 描述 有用链接
核心 管理组 管理组是 Azure 租户中的最高级别资源。 使用管理组可以更轻松地管理资源。 可以在管理组级别应用策略,较低级别的资源将继承该策略。 具体而言,可以在管理组级别应用以下项,这些项将由管理组下的订阅继承:
  • Azure 策略
  • Azure 基于角色的访问控制 (RBAC) 角色分配
  • 成本控制

本模块部署 Azure 登陆区域概念体系结构中定义的管理组层次结构。
核心 自定义策略定义 DeployIfNotExists (DINE) 或修改策略有助于确保构成登陆区域的订阅和资源符合要求。 这些策略还减轻了登陆区域的管理负担。

本模块将自定义策略定义部署到管理组。 并非所有客户都可以使用 DINE 或修改策略。 如果你遇到这种情况,CAF 自定义策略指南提供了相应指导。
核心 自定义角色定义 基于角色的访问控制 (RBAC) 简化了系统中用户权限的管理。 无需管理个人权限,而是确定系统中不同角色所需的权限。 Azure RBAC 具有多个内置角色。 自定义角色定义允许你为环境创建自定义角色。

此模块部署自定义角色定义。 该模块应遵循有关 Azure 基于角色的访问控制的 CAF 指南
Management 日志记录、自动化 和 Sentinel 通过 Azure Monitor、Azure 自动化和 Microsoft Sentinel 可监视和管理基础结构和工作负载。 Azure Monitor 是一种解决方案,可用于从环境中收集、分析和处理遥测数据。

Microsoft Sentinel 是云原生的安全信息和事件管理 (SIEM)。 该功能允许:
  • 收集 - 在整个基础结构中收集数据
  • 检测 - 检测以前未检测到的威胁
  • 响应 - 通过内置编排应对合法威胁
  • 调查 - 通过人工智能调查威胁

Azure 自动化是基于云的自动化系统。 其中包括:
  • 配置管理 - 清点和跟踪 Linux 和 Windows 虚拟机的更改并管理所需的状态配置
  • 更新管理 - 评估 Windows 和 Linux 系统合规性并创建计划部署以满足合规性
  • 流程自动化 - 自动执行管理任务

本模块部署监视、管理和访问环境威胁所需的工具。 这些工具应包括 Azure Monitor、Azure 自动化和 Microsoft Sentinel。
连接 网络 网络拓扑是 Azure 登陆区域部署中的一个关键考虑因素。 CAF 重点介绍 2 种核心网络方法
  • 基于 Azure 虚拟 WAN 的拓扑
  • 传统拓扑

这些模块部署所选的网络拓扑。
标识 角色分配 标识和访问管理 (IAM) 是云计算中的关键安全边界。 Azure RBAC 允许向安全主体执行内置角色或自定义角色定义的角色分配。

本模块将角色分配部署到跨管理组和订阅的服务主体、托管标识或安全组。 该模块应遵循有关 Azure 标识和访问管理的 CAF 指南
核心 订阅位置 分配给管理组的订阅继承:
  • Azure 策略
  • Azure 基于角色的访问控制 (RBAC) 角色分配
  • 成本控制

此模块将订阅移到相应的管理组下。
核心 内置和自定义策略分配 此模块将默认 Azure 登陆区域 Azure Policy 分配部署到管理组。 它还为由策略创建的系统分配的托管标识创建角色分配。
管理 业务流程协调程序模块 业务流程协调程序模块可以极大地改善部署体验。 这些模块将多个模块的部署封装在一个模块中。 这简化了最终用户的操作。

自定义 Bicep 实现

作为云采用框架的一部分提供的 Azure 登陆区域实现符合各种要求和用例。 但是,通常也存在一些场景,需要自定义以满足特定业务需求。

提示

有关详细信息,请参阅定制 Azure 登陆区域体系结构以满足要求

实现平台登陆区域后,下一步是部署应用程序登陆区域,使 landing zones 管理组下的应用程序团队获得中心 IT 或 PlatformOps 管理员所需的护栏。 corp 管理组适用于企业连接的应用程序,而 online 管理组适用于主要面向公众的应用程序,但在某些情况下仍可能通过中心网络连接到企业应用程序。

Bicep Azure 登陆区域实现可用作自定义部署的基础。 它为你提供了一种加速实现的方法,消除了从头开始的需要,因为需要进行特定的更改,从而排除了现成的选项。

GitHub logo GitHub 存储库 wiki 中提供了有关自定义模块的信息GitHub:Azure 登陆区域 (ALZ) Bicep - Wiki- 使用者指南。 可以使用它作为起点,并根据需要进行配置。