你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure 资源管理器是 Azure 的核心资源管理服务。 它创建、管理和删除每个 Azure 资源,包括虚拟机、存储帐户和数据库。 生成多租户解决方案时,通常使用资源管理器为每个租户动态预配资源。 本文介绍适用于多租户解决方案的资源管理器的主要功能。 它还包含可帮助你使用 Resource Manager 的指南的链接。
支持多租户的资源管理器功能
基础结构即代码
资源管理器提供工具来支持基础结构即代码 (IaC)。 应该为云中的所有解决方案定义 IaC,但对于多租户解决方案尤其有用。 多租户解决方案通常需要在载入新租户时缩放部署和预配新资源。 手动资源创建或配置需要更多时间,并产生更多风险。 手动方法会导致整体部署过程不太可靠。
使用 Bicep 从部署管道部署 IaC。 Bicep 是一种语言,旨在以声明方式部署和管理 Azure 资源。 还可以使用 JSON Azure 资源管理器模板(ARM 模板)、Terraform 或其他访问基础资源管理器 API 的合作伙伴产品。
部署堆栈 可帮助你将一组资源作为单个单元进行管理,即使它们跨资源组或订阅也是如此。 如果在不同位置预配多个特定于租户的资源,并且需要将其生命周期作为一个逻辑单元进行管理,则部署堆栈非常有用。
模板规格 可帮助你从单个参数化模板预配新资源、部署标记或环境。 使用模板规格创建用于部署特定于租户的基础结构的模板的中央存储库。 Azure 存储和管理这些模板。 每当需要部署基础结构时,都可以重复使用模板规格。
在某些解决方案中,可以编写自定义代码来动态预配或配置资源或启动模板部署。 可以在代码中使用 Azure SDK 来管理 Azure 环境。 遵循最佳做法,向资源管理器验证应用程序身份。 为了避免存储和管理凭据,请使用 托管标识。
Azure 基于角色的访问控制
Azure 基于角色的访问控制(Azure RBAC) 提供了一种精细的方法,用于管理对 Azure 资源的访问。 在多租户解决方案中,评估资源是否需要特定的 Azure RBAC 策略。 例如,某些租户可能处理敏感数据,可能需要应用 Azure RBAC 来授予对某些个人的访问权限,而无需在组织中包括其他人。 租户还可以请求直接访问其 Azure 资源,例如审核期间。 如果允许此访问权限,则细化范围的 Azure RBAC 权限使你能够授予对租户数据的访问权限,而无需公开其他租户的数据。
标记
使用 标记 将自定义元数据添加到 Azure 资源、资源组和订阅。 为简化资源管理,请考虑使用租户标识符标记特定于租户的资源,并 跟踪和分配 Azure 成本。
Azure 资源配额
资源管理器是 Azure 中的中心服务,可在许多其他 Azure 服务中强制实施 限制和配额 。 在整个设计过程中,请考虑这些配额。 所有 Azure 资源都定义了限制,包括在特定时间段内针对资源管理器允许的请求数。 如果超出此限制, 资源管理器会限制请求。
创建可执行自动部署的多租户解决方案时,可能会比其他客户更快地达到这些限制。 预配大量基础结构的多租户解决方案还可以触发这些限制。
资源提供程序管理每个 Azure 服务。 资源提供程序还可以定义自己的限制。 例如,Azure 计算资源提供程序管理虚拟机的预配,并在短时间内 定义允许请求数的限制 。 有关详细信息,请参阅 资源提供程序限制。
如果有超过资源管理器或资源提供程序限制的风险,请考虑以下缓解措施:
跨多个 Azure 订阅分配工作负荷。
在每个订阅中使用多个资源组。
从不同的 Microsoft Entra 主体发送请求。
请求额外的配额分配。 若要提交配额分配请求,通常 打开支持案例。 但某些服务为这些请求提供 API,例如 虚拟机预留实例。
选择直接解决遇到的特定限制的缓解策略。
隔离模型
在某些多租户解决方案中,可以为每个租户部署单独的或专用资源。 Resource Manager 提供了多个模型,可用于隔离资源,具体取决于你的要求和隔离原因。 有关详细信息,请参阅 多租户解决方案中的 Azure 资源组织。
供稿人
Microsoft维护本文。 以下参与者撰写了本文。
主要作者:
- John Downs | 首席软件工程师
其他参与者:
- 阿森·弗拉基米尔斯基 | 客户首席工程师,FastTrack for Azure
若要查看非公开的LinkedIn个人资料,请登录LinkedIn。