你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

如何使用 Azure CLI 管理 Azure 订阅

Azure CLI 可帮助你管理 Azure 订阅、创建管理组和锁定订阅。 你在 Azure 中可能有多个订阅。 你可以属于多个组织,或者组织可能会在多个组中划分对某些资源的访问权限。 Azure CLI 支持全局选择和按命令选择订阅。

有关订阅、计费和成本管理的详细信息,请参阅计费和成本管理文档

租户、用户和订阅

租户是包含整个组织的 Azure Active Directory 实体。 一个租户有一个或多个订阅和用户 。 用户是登录到 Azure 以创建、管理和使用资源的帐户。 一个用户可能有权访问多个订阅,但一个用户只与一个租户相关联。 订阅是与 Microsoft 签署的有关使用云服务(包括 Azure)的协议。 每个资源与某个订阅关联。

若要详细了解租户、用户与订阅之间的差别,请参阅 Azure 云术语字典

获取活动租户

使用 az account tenant listaz account show 获取活动租户 ID。

az account tenant list

az account show

更改活动租户

若要切换租户,需要以所需租户内的用户身份登录。 使用 az login 更改活动租户并更新你所属的订阅列表。

# sign in as a different user
az login --user <myAlias@myCompany.com> -password <myPassword>

# sign in with a different tenant
az login --tenant <myTenantID>

如果组织需要多重身份验证,你在使用 az login --user 时可能会收到此错误:

Due to a configuration change made by your administrator, or because you moved to a new location, you must use multi-factor authentication to access...

使用备用 az login --tenant 命令将提示你打开 HTTPS 页面并输入提供的代码。 然后,可以使用多重身份验证并成功登录。 若要了解有关使用 Azure CLI 登录选项的详细信息,请参阅使用 Azure CLI 登录

获取活动订阅

大多数 Azure CLI 命令在订阅中执行。 为获得最佳安全性,Azure CLI 命令不再默认订阅 ID 为当前的活动订阅。 现在必须使用命令中的 --subscription--scope 参数指定要在其中执行命令的订阅。

若要查看当前正在使用的订阅或者获取可用订阅的列表,请运行 az account showaz account list 命令。 转到了解如何将 Bash 与 Azure CLI 配合使用,查看使用 az account show 的方式的更多示例。

# get the current default subscription using show
az account show --output table

# get the current default subscription using list
az account list --query "[?isDefault]"

# store the default subscription  in a variable
subscriptionId="$(az account list --query "[?isDefault].id" -o tsv)"
echo $subscriptionId

提示

--output 参数是全局参数,适用于所有命令。 table 值以友好格式显示输出。 有关详细信息,请参阅 Azure CLI 命令的输出格式

订阅包含资源组。 Azure 资源组是用于保存 Azure 解决方案相关资源的容器。 若要了解如何管理订阅中的资源组,请参阅如何使用 Azure CLI 管理 Azure 资源组

更改活动订阅

Azure 订阅既有名称又有 ID。 可以通过使用 az account set 并指定所需的订阅 ID 或名称来切换到不同的订阅。

# change the active subscription using the subscription name
az account set --subscription "My Demos"

# change the active subscription using the subscription ID
az account set --subscription "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

# change the active subscription using a variable
subscriptionId="$(az account list --query "[?isDefault].id" -o tsv)"
az account set --subscription $subscriptionId

无法使用 az account set 命令将活动订阅更改为在不同租户中的订阅。 首先必须以所需租户中的用户身份登录。 如果尝试将订阅设置为其他租户内的订阅,将收到此错误:

The subscription of 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' doesn't exist in cloud 'AzureCloud'.

若要了解如何将新订阅添加到 Azure Active Directory 租户,请参阅将 Azure 订阅关联或添加到 Azure Active Directory 租户

创建 Azure 管理组

Azure 管理组包含订阅。 管理组提供了一种管理这些订阅的访问权限、策略和合规性的方法。 有关详细信息,请参阅什么是 Azure 管理组

使用 az account management-group 命令创建和管理 Azure 管理组。

可以使用 az account management-group create 命令为多个订阅创建管理组:

az account management-group create --name Contoso01

要查看所有管理组,请使用 az account management-group list 命令:

az account management-group list

使用 az account management-group subscription add 命令将订阅添加到新组:

az account management-group subscription add --name Contoso01 --subscription "My Demos"
az account management-group subscription add --name Contoso01 --subscription "My Second Demos"

要删除订阅,请使用 az account management-group subscription remove 命令:

az account management-group subscription remove --name Contoso01 --subscription "My Demos"

要删除管理组,请使用 az account management-group delete 命令:

az account management-group delete --name Contoso01

删除订阅或删除管理组不会删除或停用订阅。

设置 Azure 订阅锁定

作为管理员,你可能需要锁定订阅,以防止用户删除或修改订阅。 有关详细信息,请参阅锁定资源以防止意外更改

在 Azure CLI 中,请使用 az account lock 命令。 例如,az account lock create 命令可以防止用户删除订阅:

az account lock create --name "Cannot delete subscription" --lock-type CanNotDelete

备注

需要具有相应权限才能创建或更改锁。

要查看订阅上当前的锁,请使用 az account lock list 命令:

az account lock list --output table

如果将帐户设置为只读,则结果类似于向所有用户分配“读者”角色的权限。 要了解有关如何为单个用户和角色设置权限的信息,请参阅使用 Azure CLI 添加或删除 Azure 角色分配

要查看锁的详细信息,请使用 az account lock show 命令:

az account lock show --name "Cannot delete subscription"

可以使用 az account lock delete 命令删除锁:

az account lock delete --name "Cannot delete subscription"

请参阅