使用 Azure CLI 授予对资源的托管标识访问权限

本文介绍如何使用 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 向另一个资源分配托管标识访问权限

  1. 在此示例中,你将授予 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)
    
  2. 获取服务主体 ID 后,立即使用 az role assignment create 授予虚拟机或虚拟机规模集对“myStorageAcct”存储帐户的“读取者”访问权限

    az role assignment create --assignee $spID --role 'Reader' --scope /subscriptions/<mySubscriptionID>/resourceGroups/<myResourceGroup>/providers/Microsoft.Storage/storageAccounts/myStorageAcct