查看与用户分配的托管标识关联的 Azure 资源(预览版)
本文介绍如何查看与用户分配的托管标识关联的 Azure 资源。 此功能目前以公共预览版提供。
能够快速查看哪些 Azure 资源与用户分配的托管标识相关联,可以更好地了解环境。 可以快速识别可安全删除的未使用标识,并了解哪些资源会受到更改托管标识的权限或组成员身份的影响。
- 从“Azure 门户”搜索“托管标识”。
- 选择托管标识
- 在左侧菜单中,选择“关联的资源”链接
- 随即将显示与托管标识关联的 Azure 资源列表
选择要引入其摘要页的资源名称。
通过在摘要页面顶部的筛选器框中键入内容来筛选资源。 可以按名称、类型、资源组和订阅 ID 进行筛选。
选择列标题以按字母顺序、升序或降序排序。
还可使用 REST API 访问关联资源列表。 此终结点与用于检索用户分配的托管标识列表的 API 终结点分离开。 你需要以下信息:
- 订阅 ID
- 要查看其资源的用户分配的托管标识的资源名称
- 用户分配的托管标识的资源组
请求格式
https://management.chinacloudapi.cn/subscriptions/{resourceID of user-assigned identity}/listAssociatedResources?$filter={filter}&$orderby={orderby}&$skip={skip}&$top={top}&$skiptoken={skiptoken}&api-version=2021-09-30-preview
参数
参数 | 示例 | 说明 |
---|---|---|
$filter | type eq 'microsoft.cognitiveservices/account' and contains(name, 'test') |
可用于筛选任何可用字段(名称、类型、resourceGroup、subscriptionId、subscriptionDisplayName)的 OData 表达式 支持以下操作: and 、or 、eq 和 contains |
$orderby | name asc |
可按任何可用字段进行排序的 OData 表达式 |
$skip | 50 | 在对结果分页时要跳过的项目数。 |
$top | 10 | 要返回的资源数。 设为 0 将仅返回资源的计数。 |
可以看到对 REST API 的示例请求:
POST https://management.chinacloudapi.cn/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/devrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/devIdentity/listAssociatedResources?$filter={filter}&$orderby={orderby}&$skip={skip}&$top={top}&skipToken={skipToken}&api-version=2021-09-30-preview
注意来自 REST API 的示例响应:
{
"totalCount": 2,
"value": [
{
"id": "/subscriptions/{subId}/resourceGroups/testrg/providers/Microsoft.CognitiveServices/accounts/test1",
"name": "test1",
"type": "microsoft.cognitiveservices/accounts",
"resourceGroup": "testrg",
"subscriptionId": "{subId}",
"subscriptionDisplayName": "TestSubscription"
},
{
"id": "/subscriptions/{subId}/resourceGroups/testrg/providers/Microsoft.CognitiveServices/accounts/test2",
"name": "test2",
"type": "microsoft.cognitiveservices/accounts",
"resourceGroup": "testrg",
"subscriptionId": "{subId}",
"subscriptionDisplayName": "TestSubscription"
}
],
"nextLink": "https://management.chinacloudapi.cn/subscriptions/{subId}/resourceGroups/testrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testid?skiptoken=ew0KICAiJGlkIjogIjEiLA0KICAiTWF4Um93cyI6IDIsDQogICJSb3dzVG9Ta2lwIjogMiwNCiAgIkt1c3RvQ2x1c3RlclVybCI6ICJodHRwczovL2FybXRvcG9sb2d5Lmt1c3RvLndpbmRvd3MubmV0Ig0KfQ%253d%253d&api-version=2021"
}
要查看用户分配的托管标识的关联资源,请运行以下命令:
az identity list-resources --resource-group <ResourceGroupName> --name <ManagedIdentityName>
响应将如下所示:
[
{
"id": "/subscriptions/XXXX-XXXX-XXXX-XXXX-XXXfc47ab8130/resourceGroups/ProductionServices/providers/Microsoft.Compute/virtualMachines/linux-prod-1-US",
"name": "linux-prod-1-US",
"resourceGroup": "productionservices",
"subscriptionDisplayName": "Visual Studio Enterprise Subscription",
"subscriptionId": "XXXX-XXXX-XXXX-XXXX-XXXfc47ab8130",
"type": "microsoft.compute/virtualmachines"
},
{
"id": "/subscriptions/XXXX-XXXX-XXXX-XXXX-XXXfc47ab8130/resourceGroups/ProductionServices/providers/Microsoft.Web/sites/prodStatusCheck-US",
"name": "prodStatusCheck-US",
"resourceGroup": "productionservices",
"subscriptionDisplayName": "Visual Studio Enterprise Subscription",
"subscriptionId": "XXXX-XXXX-XXXX-XXXX-XXXfc47ab8130",
"type": "microsoft.web/sites"
},
{
"id": "/subscriptions/XXXX-XXXX-XXXX-XXXX-XXXfc47ab8130/resourceGroups/ProductionServices/providers/Microsoft.Web/sites/salesApp-US-1",
"name": "salesApp-US-1",
"resourceGroup": "productionservices",
"subscriptionDisplayName": "Visual Studio Enterprise Subscription",
"subscriptionId": "XXXX-XXXX-XXXX-XXXX-XXXfc47ab8130",
"type": "microsoft.web/sites"
},
{
"id": "/subscriptions/XXXX-XXXX-XXXX-XXXX-XXXfc47ab8130/resourceGroups/ProductionServices/providers/Microsoft.Web/sites/salesPortal-us-2",
"name": "salesPortal-us-2",
"resourceGroup": "productionservices",
"subscriptionDisplayName": "Visual Studio Enterprise Subscription",
"subscriptionId": "XXXX-XXXX-XXXX-XXXX-XXXfc47ab8130",
"type": "microsoft.web/sites"
},
{
"id": "/subscriptions/XXXX-XXXX-XXXX-XXXX-XXXfc47ab8130/resourceGroups/vmss/providers/Microsoft.Compute/virtualMachineScaleSets/vmsstest",
"name": "vmsstest",
"resourceGroup": "vmss",
"subscriptionDisplayName": "Visual Studio Enterprise Subscription",
"subscriptionId": "XXXX-XXXX-XXXX-XXXX-XXXfc47ab8130",
"type": "microsoft.compute/virtualmachinescalesets"
}
]
没有用于返回托管标识的关联资源的特定 PowerShell 命令,但可使用以下命令在 PowerShell 中使用 REST API:
Invoke-AzRestMethod -Path "/subscriptions/XXX-XXX-XXX-XXX/resourceGroups/test-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity-name/listAssociatedResources?api-version=2021-09-30-PREVIEW&%24orderby=name%20asc&%24skip=0&%24top=100" -Method Post
备注
无论用户有什么权限,都将返回与标识关联的所有资源。 用户只需具有读取托管标识的权限。 这意味着,可见的资源可能比用户在门户中的其他位置看到的要多。 这是为了提供标识使用情况的完整可见性。 如果用户无权访问关联的资源,则在尝试从列表中访问该资源时,将显示错误。
对用户分配的托管标识选择“删除”按钮时,将看到该标识关联的最多 10 个资源的列表。 窗格顶部会显示完整计数。 可在此列表查看哪些资源将受到删除标识的影响。 系统会要求你对你的决定进行确认。
此确认过程仅在门户中可用。 若要在使用 REST API 删除标识之前查看标识的资源,请提前手动检索资源列表。
- 此功能在所有公共区域均可用,并将于未来几周内在 USGov 和中国推出。
- 对关联资源的 API 请求限制为每个租户每秒一个。 如果超出此限制,可能会收到
HTTP 429
错误。 此限制不适用于检索用户分配的托管标识的列表。 - 处于预览状态的 Azure 资源类型(或其对托管标识的支持处于预览状态的 Azure 资源类型)在完全正式发布之前可能不会显示在关联的资源列表中。 此列表包括 Service Fabric 群集、蓝图和机器学习服务。
- 此功能仅限订阅少于 5,000 个的租户使用。 如果租户的订阅超过 5,000 个,则会显示错误。
- 关联的资源列表会显示资源类型,而不显示名称。
- Azure Policy 分配显示在列表中,但其名称未正确显示。
- 此功能尚无法通过 PowerShell 使用。