本文介绍如何使用 Azure CLI 授予对 Azure 资源的托管标识访问权限。 在本文中,我们以 Azure 虚拟机(Azure VM)的托管身份访问 Azure 存储帐户为例。 为 Azure 资源配置托管标识后,便可以授予该托管标识对其他资源的访问权限,这一点与安全主体一样。
先决条件
准备好你的环境
如需在本地运行 CLI 参考命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI。
如果使用的是本地安装,请使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅使用 Azure CLI 登录。
出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展的详细信息,请参阅 将扩展与 Azure CLI 配合使用。
运行az version命令,以查看已安装的版本和依赖库。 若要升级到最新版本,请运行az upgrade。
使用 Azure RBAC 向另一个资源分配托管标识访问权限
在此示例中,你将授予 Azure 虚拟机 (VM) 对存储帐户的托管访问权限。 首先使用 az resource list 获取名为 myVM 的 VM 的服务主体:
spID=$(az resource list -n myVM --query [*].identity.principalId --out tsv)对于 Azure 虚拟机 (VM) 规模集,使用的命令相同,但获取名为“DevTestVMSS”的 VM 规模集的服务主体:
spID=$(az resource list -n DevTestVMSS --query [*].identity.principalId --out tsv)获取服务主体 ID 后,立即使用 az role assignment create 授予虚拟机或虚拟机规模集对“myStorageAcct”存储帐户的“读取者”访问权限:
az role assignment create --assignee $spID --role 'Reader' --scope /subscriptions/<mySubscriptionID>/resourceGroups/<myResourceGroup>/providers/Microsoft.Storage/storageAccounts/myStorageAcct