你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
如何使用 Azure CLI 管理 Azure 订阅
Azure CLI 可帮助你管理 Azure 订阅、创建管理组和锁定订阅。你在 Azure 中可能有多个订阅。 你可以属于多个组织,或者组织可能会在多个组中划分对某些资源的访问权限。 Azure CLI 支持全局选择和按命令选择订阅。
有关订阅、计费和成本管理的详细信息,请参阅计费和成本管理文档。
术语
租户是 Microsoft Entra ID 的实例,其中包含了有关单个组织的信息。 多租户组织是具有多个 Microsoft Entra ID 实例的组织。 一个租户有一个或多个订阅和用户 。
用户是登录到 Azure 以创建、管理和使用资源的帐户。 用户可能有权访问多个租户和订阅。
订阅是与 Microsoft 签署的有关使用云服务(包括 Azure)的协议。 每个资源与某个订阅关联。 订阅包含资源组。
Azure 资源组是用于保存 Azure 解决方案相关资源的容器。 若要了解如何管理订阅中的资源组,请参阅如何使用 Azure CLI 管理 Azure 资源组
获取活动租户
使用 az account tenant list 或 az 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 命令在订阅中执行。 可以通过使用命令中的 --subscription
参数来指定要在其中执行命令的订阅。 如果未指定订阅,则该命令会使用当前的活动订阅。
若要查看当前正在使用的订阅或者获取可用订阅的列表,请运行 az account show 或 az account list 命令。 转到了解如何将 Bash 与 Azure CLI 配合使用,查看使用这些命令的更多示例。
下面是演示如何获取订阅信息的示例:
# get the current default subscription using show
az account show --output table
# get the current default subscription using list
az account list --query "[?isDefault]"
# get a subscription that contains search words or phrases
az account list --query "[?contains(name,'search phrase')].{SubscriptionName:name, SubscriptionID:id, TenantID:tenantId}" --output table
还可以将订阅信息存储在变量中,以便在脚本中使用。
# store the default subscription in a variable
subscriptionId="$(az account list --query "[?isDefault].id" --output tsv)"
echo $subscriptionId
# store a subscription of certain name in a variable
subscriptionId="$(az account list --query "[?name=='my case sensitive subscription full name'].id" --output tsv)"
echo $subscriptionId
提示
--output
参数是全局参数,适用于所有命令。 table 值以友好格式显示输出。 有关详细信息,请参阅 Azure CLI 命令的输出格式。
更改活动订阅
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 "[?name=='my case sensitive subscription full name'].id" --output tsv)"
az account set --subscription $subscriptionId
如果更改位于不同租户中的订阅,则还会更改活动租户。 要了解如何将订阅关联或添加到 Microsoft Entra 租户,请参阅《将 Azure 订阅关联或添加到 Microsoft Entra 租户》。
如果收到“... 的订阅不存在...”错误,请参阅疑难解答,了解可能的解决方案。
创建 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
注意
你需要对订阅具有 contributor
创建或更改锁的权限。
要查看订阅上当前的锁,请使用 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"
疑难解答
订阅不存在
除版式错误之外,当存在权限计时问题时,也可能会收到此错误。 例如,如果在当前终端窗口处于打开状态时已获得新订阅的权限,则可能会出现此错误。 解决方案是关闭并重新打开终端窗口,或使用 az logout
和 az login
刷新可用的订阅列表。
下面提供了用于查找和更改订阅的脚本。
# See what subscription you are currently using.
az account show
# Get a list of available subscriptions.
az account list --output table
# If the subscription you are seeking is not in the list
# close and reopen your terminal window,
# or logout and then sign in again.
az logout
az login
# Did your available subscription list change?
az account list --output table
# If the subscription you are seeking is still not in the list,
# contact your system administrator. You cannot change your
# subscription to an ID that is not in the list.
# If the subscription you are seeking is now in the list,
# change your subscription.
az account set --subscription 00000000-0000-0000-0000-00000000000