Azure CLIとPowerShellを使ったサインインやサブスクリプション切り替え方法を纏めてみた

Azure,PowerShell/Azure CLI

 Azureのリソースを操作する為のコマンドラインツールとしてはAzure CLIやAzure PowerShellがあります。

Azure CLI
Azure PowerShell

 Azureのリソースを操作する為にはAzureへサインインする必要があります。これはコマンドラインツールを使う場合も同様になります。
 今回はAzure CLIやAzure PowerShellでAzureへのサブスクリプションやテナントを指定したサインイン、サブスクリプション確認や切り替え、サインアウトまでを整理してみました。
 Azure CLIやAzure PowerShellのインストールについてはこちらを参照ください。

スポンサーリンク

Azureへのサインイン/サインアウトに関する逆引きコマンド対比表

 Azure CLIとAzure PowerShellを使ったサインイン/サインアウト周りの逆引きコマンド対比表です。
 サインインからテナント情報取得、サブスクリプション取得、テナントやサブスクリプション指定したサインイン、サインアウトまでのコマンドを整理してみました。

  Azure CLI Azure PowerShell
ログイン az login Connect-AzAccount
テナントのリスト取得 az account tenant list Get-AzTenant
テナント指定してサインイン az login -tenant “テナントID" Connect-AzAccount -Tenant “テナントID"
サブスクリプション指定してサインイン ー(ログイン後サブスクリプションを切り替え) Connect-AzAccount -SubscriptionId “サブスクリプションID"
サブスクリプションのリスト取得 az account subscription list Get-AzSubscription
az account list –output table
現在使用しているサブスクリプションを確認 az account show Get-AzContext
az account list –output table
サブスクリプションを切り替える az account set –subscription “サブスクリプションID" Set-AzContext -SubscriptionId “サブスクリプションID"
サインアウト az logout Disconnect-AzAccount

※az account list –output tableコマンド実行結果のIsDefaultにTrueと表示されているのが、現在利用しているサブスクリプションになります。

Azure CLIやAzure PowerShellを使ったサインインからサブスクリプション確認、切り替えまでを試してみた

 Azure CLIとAzure PowerShellを使ってサインインからサインアウトまで対比表で記載したコマンドをいくつか実行してみました。Azure CLI とAzure PowerShellでは実行後に出力される内容が異なります。

サインインを例に出力内容を確認

 サインインを実行してみます。Azure CLIとAzure PowerShellではログイン後に表示される内容に差異がある事が分かります。Azure CLIの場合はデフォルトJson形式で表示されます。

サインイン

Azure CLIの場合

 サインイン後にaz account subscription listの実行結果と同じ内容が表示されます。

az login
 {
  "cloudName": “AzureCloud",
  "homeTenantId": “テナントID",
  "id": “サブスクリプションID",
  "is Default": true,
  "managedByTenants": [],
  "name": “サブスクリプション名",
  "state": “Enabled",
  "tenantId": “テナントID",
  "user": {
   "name": “ユーザー名",
   "type": “user"
  }
 } 

※すべてのサブスクリプションが表示されます。
※is Default": true,となっているサブスクリプションを使用します。

Azure PowerShellの場合

 サインインしたサブスクリプションIDが表示されます。

Connect-AzAccount
Account SubscriptionName TenantId Environment
——-   —————-       ——–   ———–
ログインアカウント サブスクリプション名 テナントID AzureCloud

使用しているサブスクリプションを確認

 現在使用しているサブスクリプションをAzure CLI、Azure PowerShellそれぞれで確認します。

サブスクリプション確認

Azure CLI(az account show)の場合

 デフォルト使用するサブスクリプションが表示されます。

az account show
 {
  “environmentName": “AzureCloud",
  “homeTenantId": “テナントID",
  “id": “サブスクリプションID",
  “isDefault": true,
  “managedByTenants": [],
  “name": “サブスクリプション名",
  “state": “Enabled",
  “tenantId": “テナントID",
  “user": {
    “name": “ユーザー名",
    “type": “user"
   }
}

Azure CLI(az account list –output table)の場合

 Azure CLIの場合–output tableをつける事でテーブル形式での出力が出来ます。
 IsDefaultにTrueが付いているサブスクリプションをデフォルト使用します。

az account list –output table
Name CloudName SubscriptionId State IsDefault
—————————— ———– ———————————— ——- ———–
サブスクリプション名(1) AzureCloud サブスクリプションID(1) Enabled True
サブスクリプション名(2) AzureCloud サブスクリプションID(2) Enabled False

Azure PowerShellの場合

 デフォルトと使用するサブスクリプションが表示されます。

Get-AzContext
Name Account SubscriptionName Environment TenantId
—- ——- —————- ———– ——–
サブスクリプション名 (サブスクリプションID) アカウント名 サブスクリプション名 AzureCloud テナントID

使用するサブスクリプションを変更する

 使用するサブスクリプションの切り替えをAzure CLI、Azure PowerShellそれぞれでやってみます。

サインイン

Azure CLIの場合

 az account setコマンドでサブスクリプションを切り替える事が出来ます。
 設定するサブスクリプションIDはaz account list –output tableで事前に確認します。
 設定後サブスクリプションIDが変更されたかはaz account list –output tableで確認出来ます。

az account set –subscription “サブスクリプションID"

実行結果は表示されません。 

Azure PowerShellの場合

 Set-AzContextコマンドでサブスクリプションを切り替える事が出来ます。
 設定するサブスクリプションIDはGet-AzSubscriptionで事前に確認します。
 設定後サブスクリプションIDが変更されたかはGet-AzContextで確認出来ます。

Set-AzContext -SubscriptionId “サブスクリプションID"
Name Account SubscriptionName Environment TenantId
—- ——- —————- ———– ——–
サブスクリプション名 (サブスクリプションID) アカウント名 サブスクリプション名 AzureCloud テナントID

最後に

 今回はAzure CLIやAzure PowerShellを使ったAzureテナントへのサインインからサブスクリプション切り替え方法を整理してみました。
 Azure CLIやAzure PowerShellと同じ事が出来てもコマンド実行結果で表示される内容が違ったりして勉強になりました。
 今後も色々試してみたいと思います。

 Azure CLIやPowerShellを使った仮想マシン起動停止についてはこちら。