Azure CLI を使用して Azure サブスクリプションを管理する方法

Azure CLI を使用すると、Azure サブスクリプションの管理、管理グループの作成、サブスクリプションのロックを楽に行うことができます。 Azure 内では複数のサブスクリプションを使用できます。 ユーザーは複数の組織に所属でき、また組織はグループ間で特定のリソースへのアクセスを分割できます。 Azure CLI では、サブスクリプションをグローバルに選択することも、コマンドごとに選択することもできます。

サブスクリプション、請求、およびコスト管理の詳細については、課金とコスト管理に関するドキュメントをご覧ください。

テナント、ユーザー、サブスクリプション

"テナント" とは、組織全体を含む Azure Active Directory エンティティです。 テナントには、1 つ以上の "サブスクリプション" と "ユーザー" があります。 ユーザーとは個人であり、1 つのテナント (ユーザーが属している組織) にのみ関連付けられています。 ユーザーは、Azure にサインインしてリソースを作成、管理、および使用するアカウントです。 1 人のユーザーが複数の "サブスクリプション" にアクセスできる場合があります。サブスクリプションとは、Azure をはじめとするクラウド サービスを使用するための Microsoft との契約です。 各リソースは、サブスクリプションに関連付けられています。

Azure サブスクリプションでのコマンド

多くの Azure CLI コマンドは、サブスクリプション内で動作します。 コマンドで subscription パラメーターを使用して、どのサブスクリプションを使用するかをいつでも指定できます。 このパラメーターは省略可能です。 サブスクリプションを指定しない場合、コマンドでは、現在アクティブなサブスクリプションが使用されます。

現在使用しているサブスクリプションの確認、または使用可能なサブスクリプションの一覧の取得を行うには、az account show または az account list コマンドを実行します。

# 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 list of subscriptions except for the default subscription
az account list --query "[?isDefault == \`false\`]"

# get the details of a specific subscription
az account show --subscription MySubscriptionName

ヒント

--output パラメーターはグローバル パラメーターであり、すべてのコマンドで使用できます。 table 値を指定すると、出力がわかりやすい形式で表示されます。 詳細については、「Azure CLI コマンドの出力形式」をご覧ください。

サブスクリプションにはリソース グループが含まれます。 Azure リソース グループは、Azure ソリューションの関連するリソースを保持するコンテナーです。 コマンドで、アクティブなサブスクリプションのリソースを操作する場合は、--subscription を指定する必要はありません。

このコマンドでは、指定したリソース グループにストレージ アカウントが作成されます。

az storage account create --resource-group StorageGroups --name storage136 \
    --location eastus --sku Standard_LRS

ストレージ グループが現在アクティブなサブスクリプションに属していない場合、このコマンドは失敗します。

次のセクションで説明するように、必要に応じて、アクティブなサブスクリプションを変更するか、コマンドでサブスクリプションを指定してください。

az storage account create --resource-group StorageGroups --subscription "My Demos" \
    --name storage136 --location eastus --sku Standard_LRS

アクティブなサブスクリプションを変更する

az account set コマンドを使用して、アクティブなサブスクリプションを変更できます。

az account list コマンドを使用して、サブスクリプションの一覧を取得します。

az account list --output table

このコマンドにより、アクセスできるすべてのサブスクリプションが一覧表示されます。 アクティブなサブスクリプションは、IsDefault 列で True とマークされます。 想定したサブスクリプションが表示されない場合は、--refresh パラメーターを追加して、サブスクリプションの最新の一覧を取得してください。

別のサブスクリプションに切り替えるには、切り替え先のサブスクリプション ID または名前と共に az account set を使用します。

az account set --subscription "My Demos"

サブスクリプションには、名前と ID (GUID) の両方があります。 これらのコマンドには、いずれかを使用できます。 スペースを含む名前を使用する場合は、引用符を使用します。

az account list コマンドをもう一度実行すると、IsDefault 列に現在アクティブなサブスクリプションが表示されます。

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"

参照