You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何借助元数据端点确定Azure VM上运行脚本的托管标识

通过Azure VM元数据端点获取托管标识并授权给AzD订阅

获取系统分配托管标识信息

Azure VM的本地元数据端点可直接返回托管标识核心信息,无需额外认证。访问时必须携带Metadata: true请求头,避免意外缓存或重定向。

Linux/macOS(curl)

curl -H "Metadata: true" "http://169.254.169.254/metadata/instance/identity?api-version=2021-02-01" | jq '.systemAssigned'

返回结果包含clientId和objectId,其中objectId是授权时最常用的标识ID。

Windows(PowerShell)

Invoke-RestMethod -Headers @{"Metadata"="true"} -Uri "http://169.254.169.254/metadata/instance/identity?api-version=2021-02-01" | Select-Object -ExpandProperty systemAssigned

获取用户分配托管标识信息

如果VM关联了用户分配的托管标识,元数据端点会在userAssigned字段下列出所有相关标识,每个条目包含clientId、objectId和resourceId:

curl示例

curl -H "Metadata: true" "http://169.254.169.254/metadata/instance/identity?api-version=2021-02-01" | jq '.userAssigned'

根据需求提取对应标识的objectId即可。

授权托管标识访问AzD目标订阅

拿到托管标识的objectId后,使用Azure CLI为其分配订阅级权限。先通过azd config get defaults.subscription确认AzD当前选定的订阅,再执行以下命令:

az role assignment create \
  --role "Contributor" \  # 替换为你需要的具体角色
  --assignee-object-id <托管标识的objectId> \
  --assignee-principal-type ServicePrincipal \
  --scope /subscriptions/$(az account show --query id -o tsv)

上述命令中,$(az account show --query id -o tsv)会自动获取当前订阅ID,无需手动填写。

内容的提问来源于stack exchange,提问作者Kai Walter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 22:15:36