使用 Azure CLI 向托管标识分配对资源的访问权限
Azure 资源的托管标识是 Microsoft Entra ID 的一项功能。 支持 Azure 资源的托管标识的每个 Azure 服务都受其自己的时间线限制。 在开始之前,请务必查看资源的托管标识的可用性状态以及已知问题。
为 Azure 资源配置托管标识后,便可以授予该托管标识对其他资源的访问权限,这一点与安全主体一样。 此示例展示了如何使用 Azure CLI 授予 Azure 虚拟机或虚拟机规模集的托管标识对 Azure 存储帐户的访问权限。
如果还没有 Azure 帐户,请先注册试用帐户,然后再继续。
先决条件
如果你不熟悉 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 资源(如 Azure 虚拟机或 Azure 虚拟机规模集)上启用托管标识后:
此示例要授予 Azure 虚拟机对存储帐户的访问权限。 首先,我们使用 az resource list 获取名为 myVM 的虚拟机的服务主体:
spID=$(az resource list -n myVM --query [*].identity.principalId --out tsv)
对于 Azure 虚拟机规模集,使用的命令相同,但获取名为“DevTestVMSS”的虚拟机规模集的服务主体:
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
后续步骤
- Azure 资源的托管标识概述
- 若要启用 Azure 虚拟机上的托管标识,请参阅使用 Azure CLI 在 VM 上配置 Azure 资源的托管标识。
- 若要启用 Azure 虚拟机规模集上的托管标识,请参阅使用 Azure CLI 在虚拟机规模集上配置 Azure 资源的托管标识。