分配限制(也称为资源限制)是用户分配的托管标识的一项安全功能,用于限制标识可以分配给的资源提供程序。 分配限制当前处于预览阶段。 它们允许将托管标识隔离到一个或多个资源提供程序,以便无法在不相关的服务中重复使用它。
配置分配限制后,托管标识的使用范围会受到严格限制。 这种范围划分减少了泄露或配置错误的标识的影响半径,有助于提高安全性和复原能力。
了解资源限制
使用用户分配的托管标识时,会涉及两个资源角色:
- 源资源:托管标识分配给的资源。
- 目标资源:源资源使用托管标识访问的资源。
例如,如果应用服务使用托管标识访问存储帐户,则应用服务是源资源,而存储帐户是目标资源。
分配限制适用于托管标识与 源资源之间的关系。 它不适用于目标资源。
如果要将托管标识限制为仅可用于跨多个资源提供程序的源资源(例如,同时包括 Microsoft.Web 和 Microsoft.ContainerRegistry),请设置资源限制,其中包含每个允许的资源提供程序。
分配限制范围
为用户分配的托管标识配置分配限制时:
- 标识只能分配给与允许的资源提供程序匹配的源资源。
- 只要存在适当的角色分配,源资源仍然可以访问该范围之外的目标资源。
此行为允许服务在严格控制标识分配的同时维护其下游依赖项。
分配限制的优点
分配限制提供以下安全性和操作优势。
降低安全风险
限制可以分配托管标识的位置,防止在不相关的资源提供程序中重复使用标识。 如果凭据被滥用或泄露,此限制会限制爆炸半径。
设计上的最小权限原则
分配限制可防止意外或不必要的标识符重用。 服务不会保留超出预期范围的权限。
故障隔离
如果托管标识配置错误、被禁用或遭到入侵,其影响将被限制在有限的一组资源范围内,而不是波及多个资源提供程序或服务。
改进了服务复原能力
确定标识分配的范围会限制标识或角色分配问题导致的中断范围,这有助于防止服务范围的故障。
操作清晰度
通过使标识使用情况更具可预测性和可跟踪性,限制分配范围简化了审核、故障排除和事件响应。
未设置分配限制的风险
注释
默认情况下,赋值限制值为空,表示空数组。
如果赋值限制值未设置或配置为空数组:
- 托管标识可以跨多个资源提供程序分配。
- 标识使用情况变得难以审核。
- 单个标识配置错误可能会导致多服务或服务范围的服务中断。
- 已泄露的身份可能导致获得超出最初设计意图的广泛非预期访问权限。
最佳做法
为用户分配的托管标识规划分配限制时,请考虑以下最佳做法:
- 为每个资源提供程序创建独立的托管标识。
- 仅将托管标识范围与预期的源资源匹配。
- 不要为了图方便,在不相关的工作负载之间重复使用托管标识。
Azure门户中支持的资源提供程序和资源类型
注释
对于资源分配限制,选择 “无” 会使标识不受限制,允许将其分配给任何支持托管标识的资源提供程序的资源。
仅在需要将标识分配限制到特定资源提供程序时,才配置资源分配限制。 Azure门户中的“选择资源类型”列表可能不包括所有受支持的资源提供程序和资源类型。
如果想要配置的资源提供程序或资源类型未在“选择资源类型”窗格中列出,请使用Azure CLI。 有关配置步骤和命令示例,请参阅 为用户分配的托管标识配置分配限制。