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

如何在Azure VM上通过角色授权免登录访问Azure存储(类似AWS EC2关联IAM角色访问S3的方式)

如何在Azure VM上通过角色授权免登录访问Azure存储(类似AWS EC2关联IAM角色访问S3的方式)

嘿,这个需求刚好对应Azure里的**托管标识(Managed Identity)**功能,和AWS EC2绑定IAM角色的逻辑几乎一致——给VM绑定一个托管标识,再给这个标识分配存储相关的权限,之后VM里的Azure CLI就能自动用这个标识的权限访问存储,完全不用手动登录或者输入密钥。下面给你用Azure CLI一步步操作:

一、创建用户分配的托管标识(推荐,灵活性更高)

用户分配的标识可以复用在多个VM上,适合批量场景:

# 创建托管标识,替换成你的资源组和标识名称
az identity create --name my-vm-storage-identity --resource-group my-resource-group

执行后会返回标识的ID、资源ID等信息,记下来后面要用。

二、给托管标识分配存储访问角色

根据你的需求选择合适的角色,比如需要读写Blob就用Storage Blob Data Contributor,需要管理整个存储账户就用Storage Account Contributor:

# 替换成你的存储账户资源ID、托管标识ID和角色名称
az role assignment create \
  --assignee <托管标识的client-id或resource-id> \
  --role "Storage Blob Data Contributor" \
  --scope "/subscriptions/<订阅ID>/resourceGroups/<资源组>/providers/Microsoft.Storage/storageAccounts/<存储账户名称>"

三、把托管标识绑定到你的Azure VM

将刚才创建的标识关联到目标VM:

# 替换成你的VM名称、资源组和托管标识名称/ID
az vm identity assign \
  --resource-group my-resource-group \
  --name my-target-vm \
  --identities my-vm-storage-identity

如果用系统分配的托管标识(只能绑定到单个VM,更简单),直接去掉--identities参数即可:

az vm identity assign --resource-group my-resource-group --name my-target-vm

之后同样给这个系统分配的标识执行第二步的角色分配就行。

四、在VM里验证免登录访问

登录到你的Azure VM后,不需要执行az login,直接用Azure CLI操作存储即可,比如列出存储账户里的Blob容器:

# 替换成你的存储账户名称
az storage container list --account-name my-storage-account --auth-mode login

这里的--auth-mode login会自动使用VM绑定的托管标识来获取访问凭证,完全不用输入密钥或者手动登录。

另外要注意:如果是旧版本的Azure CLI,可能需要指定--identity参数,但新版CLI会自动检测VM上的托管标识,直接用就行。

备注:内容来源于stack exchange,提问作者Mark

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 12:59:51