Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure 资源的托管标识是 Microsoft Entra ID 的一项功能。 支持 Azure 资源的托管标识的每个 Azure 服务都受其自己的时间线限制。 在开始之前,请务必查看资源的托管标识的可用性状态以及已知问题。
注意
Azure 资源托管标识是以前称为托管服务标识 (MSI) 的服务的新名称。
管理
如何查找具有托管标识的资源?
可通过使用以下 Azure CLI 命令来查找具有系统分配的托管标识的资源列表:
az resource list --query "[?identity.type=='SystemAssigned'].{Name:name, principalId:identity.principalId}" --output table
在资源上使用托管标识需要哪些 Azure RBAC 权限?
- 系统分配的托管标识:需要对资源具有写入权限。 例如,对于虚拟机,你需要
Microsoft.Compute/virtualMachines/write
。 此操作包含在特定于资源的内置角色(如虚拟机参与者)中。 - 将用户分配的托管标识分配给资源:需要有资源的写入权限。 例如,对于虚拟机,你需要
Microsoft.Compute/virtualMachines/write
。 还需要对用户分配的标识执行Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action
操作。 此操作包含在托管标识操作员内置角色中。 - 管理用户分配的标识:若要创建或删除用户分配的托管标识,你需要托管标识参与者角色分配。
- 管理托管标识的角色分配:对于你将向其授予访问权限的资源,你需要所有者或用户访问管理员角色分配。 对于使用系统分配的标识的资源,或者对于会被授予角色分配的用户分配的标识,你将需要读取者角色分配。 如果没有读取访问权限,则可以按“用户、组或服务主体”进行搜索,以便查找标识的后备服务主体,而不是在添加角色分配时按托管标识进行搜索。 详细了解如何分配 Azure 角色。
如何阻止创建用户分配的托管标识?
可以使用 Azure Policy 来阻止用户创建用户分配的托管标识
登录 Azure 门户并转到“策略”。
选择“定义”
选择“+ 策略定义”并输入必要的信息。
在策略规则部分,粘贴以下内容:
{ "mode": "All", "policyRule": { "if": { "field": "type", "equals": "Microsoft.ManagedIdentity/userAssignedIdentities" }, "then": { "effect": "deny" } }, "parameters": {} }
创建策略后,将其分配给要使用的资源组。
- 导航到资源组。
- 查找要用于测试的资源组。
- 从左侧菜单中选择“策略”。
- 选择“分配策略”
- 在“基本信息”部分中,提供:
- 范围:用于测试的资源组
- 策略定义:之前创建的策略。
- 将所有其他设置保留为默认设置,然后选择“查看 + 创建”
此时,任何在资源组中创建用户分配托管标识的尝试都将失败。
概念
托管标识是否具有后备应用对象?
否,目录中的托管标识和 Microsoft Entra 应用注册并不相同。
应用注册有两个组件:应用程序对象和服务主体对象。 Azure 资源的托管标识仅包含以下组件之一:一个服务主体对象。
托管标识在目录中没有通常用于授予 MS Graph 应用权限的应用程序对象。 需要直接将托管标识的 MS Graph 权限授予服务主体。
与托管标识关联的凭据是什么? 它的有效时间有多长?其轮换频率有多高?
注意
托管标识的身份验证方式属于在内部具体实施的措施,可能会在不通知的情况下更改。
托管标识使用基于证书的身份验证。 每个托管标识的凭据的有效期为 90 天,在 45 天后轮换。
如果没有在请求中指定标识,IMDS 将默认采用什么标识?
- 如果已启用系统分配的托管标识且没有在请求中指定标识,则 Azure 实例元数据服务 (IMDS) 将默认采用系统分配的托管标识。
- 如果未启用系统分配的托管标识且仅存在一个用户分配的托管标识,则 IMDS 将默认采用用户分配的此单一托管标识。
如果出于任何原因将其他用户分配的托管标识分配给了资源,则对 IMDS 的请求将开始失败并出现错误
Multiple user assigned identities exist, please specify the clientId / resourceId of the identity in the token request
。 强烈建议在请求中显式指定标识,即使资源当前只有一个用户分配的托管标识。 - 如果未启用系统分配的托管标识且存在多个用户分配的托管标识,则必须在请求中指定一个托管标识。
限制
是否可以跨多个区域使用同一托管标识?
简而言之,是的,可以在多个 Azure 区域中使用用户分配的托管标识。 详细而言,当用户分配的托管标识作为区域资源创建时,则可在全局范围内使用在 Microsoft Entra ID 中创建的关联服务主体 (SP)。 可以从任何 Azure 区域使用服务主体,其可用性取决于 Microsoft Entra ID 的可用性。 例如,如果在中南部区域创建了一个用户分配的托管标识,而该区域变为不可用,则此问题仅影响托管标识本身的控制平面活动。 已经配置为使用托管标识的任何资源执行的活动都不会受到影响。
Azure 资源托管标识可以用于 Azure 云服务(经典)吗?
目前,Azure 资源的托管标识不支持用于 Azure 云服务(经典)。 “
什么是 Azure 资源托管标识的安全边界?
标识的安全边界是标识所附加到的资源。 例如,启用了 Azure 资源托管标识的虚拟机的安全边界是虚拟机。 在该 VM 上运行的任何代码都可以调用托管标识终结点和请求令牌。 在使用支持托管标识的其他资源时,体验是相似的。
如果我将订阅移动到另一个目录中,是否会自动重新创建托管标识?
否,如果将订阅移动到另一个目录中,则必须手动重新创建它们并再次授予 Azure 角色分配。
- 对于系统分配的托管标识:禁用并重新启用。
- 对于用户分配的托管标识:删除、重新创建并重新将其附加到所需的资源(例如虚拟机)
是否可以使用托管标识来访问不同目录/租户中的资源?
否,托管标识当前不支持跨目录方案。
是否有适用于托管标识的速率限制?
托管标识限制依赖于 Azure 服务限制、Azure 实例元数据服务 (IMDS) 限制和 Microsoft Entra 服务限制。
- Azure 服务限制定义可在租户和订阅级别执行的创建操作的数量。 用户分配的托管标识在命名方式上也有限制。
- IMDS 一般情况下,对 IMDS 的请求限制为每秒 5 个。 系统会拒绝超过此阈值的请求,并显示 429 响应。 对托管标识类别的请求限制为每秒 20 个请求,并发请求数限制为 5 个。 有关详细信息,请参阅 Azure 实例元数据服务 (Windows) 一文。
- Microsoft Entra 服务 根据 Microsoft Entra 服务限制,每个托管标识都计入 Microsoft Entra 租户中的对象配额限值。
是否可将用户分配的托管标识移到其他资源组/订阅?
不支持将用户分配的托管标识移动到其他资源组。
托管标识令牌是否被缓存?
托管标识令牌由底层 Azure 基础结构缓存,以保证性能和复原能力:托管标识的后端服务会将每个资源 URI 的缓存维持大约 24 小时。 例如,对托管标识权限的更改可能需要几个小时才能生效。 目前,无法在托管标识的令牌到期前对其强制执行刷新。 有关详细信息,请参阅使用托管标识进行授权的限制。
托管标识是否被软删除?
是,托管标识会被软删除 30 天。 可以查看软删除的托管标识服务主体,但无法还原或永久删除它。
删除托管标识后令牌会发生什么情况?
删除托管标识时,以前与该标识关联的 Azure 资源将再也无法请求该标识的新令牌。 在删除标识之前颁发的令牌仍将有效,直到其原始到期日期已过。 一些目标终结点的授权系统可能会在标识的目录中执行其他检查,在这种情况下,请求会因为找不到对象而失败。 但是,某些系统(如 Azure RBAC)会继续接受来自该令牌的请求,直到令牌过期。