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

多租户和 Azure 资源管理器

Azure 资源管理器是 Azure 的核心资源管理服务。 Azure 中的每个资源都是通过资源管理器创建、管理和最终删除的。 生成多租户解决方案时,通常需要使用资源管理器为每个租户动态预配资源。 本页介绍资源管理器的、与多租户解决方案相关的一些功能。 本页还提供了可帮助你使用资源管理器的指导的链接。

支持多租户的资源管理器功能

基础结构即代码

资源管理器提供相应的工具来支持基础结构即代码(有时称为 IaC)。 基础结构即代码对于云中的所有解决方案都很重要,但在使用多租户解决方案时尤为重要。 多租户解决方案通常要求你在加入新租户时扩展部署并预配新资源。 如果手动创建或配置资源,则会增大操作过程的风险和所需时间。 这会导致部署过程总体上不太可靠。

从部署管道部署基础结构即代码时,我们建议使用 Bicep,这是一种专门设计用于以声明方式部署和管理 Azure 资源的语言。 还可以使用 JSON Azure 资源管理器模板(ARM 模板)、Terraform 或其他访问基础资源管理器 API 的第三方产品。

模板规范可用于从单个合理参数化的模板预配新资源、部署缩放单元或环境。 使用模板规范,可以创建模板的中心存储库用于部署特定于租户的基础结构。 模板在 Azure 本身中存储和管理,每当需要从模板规范进行部署时,都可以重复使用它们。

在某些解决方案中,你可以选择编写自定义代码来动态预配或配置资源,或启动模板部署。 可以从你自己的代码使用 Azure SDK 来管理 Azure 环境。 确保遵循有关管理应用程序对资源管理器进行身份验证的良好做法,并使用托管标识以避免存储和管理凭据。

基于角色的访问控制

基于角色的访问控制 (Azure RBAC) 提供精细的方法来管理对 Azure 资源的访问。 在多租户解决方案中,请考虑是否应为某些资源应用特定的 Azure RBAC 策略。 例如,某些租户包含特别敏感的数据,因此你可能需要应用 RBAC 来向某些个人授予访问权限,但不向组织中的其他人授予访问权限。 同样,租户可能会要求直接访问其 Azure 资源,例如在审核期间。 如果你选择允许这样做,则可以使用精细范围的 RBAC 权限来授予对租户数据的访问权限,而无需提供对其他租户数据的访问权限。

标记

使用标记可将自定义元数据添加到 Azure 资源、资源组和订阅。 考虑使用租户的标识符来标记租户特定的资源,以便可以轻松跟踪和分配 Azure 成本,并简化资源管理。

Azure 资源配额

资源管理器是 Azure 中强制实施限制和配额的服务之一。 在整个设计过程中必须考虑到这些配额。 所有 Azure 资源都有需要遵守的限制,这些限制包括在特定时间段内可以针对资源管理器发出的请求数。 如果超过此限制,资源管理器会限制请求

在生成执行自动化部署的多租户解决方案时,你可能比其他客户更快达到这些限制。 同样,预配大量基础结构的多租户解决方案可能会触发限制。

每个 Azure 服务由资源提供程序管理,而资源提供程序也可以定义自身的限制。 例如,Azure 计算资源提供程序管理虚拟机的预配,它会定义在短时间内可以发出的请求数量限制资源提供程序限制中阐述了其他一些资源提供程序限制。

如果存在超过资源管理器或资源提供程序定义的限制的风险,可以考虑采取如下缓解措施:

  • 跨多个 Azure 订阅将工作负载分片。
  • 在订阅中使用多个资源组。
  • 从不同的 Microsoft Entra 主体发送请求。
  • 请求额外的配额分配。 一般情况下,配额分配请求是通过创建支持案例提交的,不过,某些服务为这些请求提供 API,例如用于请求虚拟机预留实例

所选的缓解措施需要适合你遇到的特定限制。

隔离模型

在某些多租户解决方案中,可为每个租户部署单独或专用的资源。 资源管理器提供多种模型,你可以根据要求和隔离资源的原因使用这些模型来隔离资源。 有关如何隔离 Azure 资源的指导,请参阅多租户解决方案中的 Azure 资源组织

作者

本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。

主要作者:

  • John Downs | FastTrack for Azure 首席客户工程师

其他参与者:

若要查看非公开的 LinkedIn 个人资料,请登录到 LinkedIn。

后续步骤

查看多租户的部署和配置方法