Skip to content

MS_AzureCLI

nishi_74322014 edited this page Aug 21, 2026 · 2 revisions

Azure CLI

概要

  • Azure Subscription の管理で、そろそろ必要になったので。
  • Azure PowerShellの Python 版
    (Python があれば動作する)。

移行メモ(補足): 「Python 版」というのは実装言語の話で、
利用者が Python を意識する必要はない
(インストーラに Python が同梱される)。
Python 実装であることの実務上の意味は、
Windows / Linux / macOS で同じ挙動になるという点にある。

詳細

インストール

Windows

  • 管理者として PowerShell を開始し、次のコマンドを実行。

    Invoke-WebRequest -Uri https://aka.ms/installazurecliwindows -OutFile .\AzureCLI.msi
    Start-Process msiexec.exe -Wait -ArgumentList '/I AzureCLI.msi /quiet'
  • 普通に、インストーラー(MSI)もあるもよう。
    https://aka.ms/installazurecliwindows

補足(現在の推奨): 現在は winget が最も簡単である。

winget install -e --id Microsoft.AzureCLI

Linux

パッケージ マネージャ(apt / dnf / zypper)から導入する。

Linux と同じ方法で行ける。

インストールの確認

> az -v
azure-cli                         2.0.77
...

ログイン

Windows端末

OAuth 2.0 for Native Apps の Loopback Interface Redirection
OAuth 2.0 for Native Apps

> az login
You have logged in. Now let us find all the subscriptions to which you have access...

SSH端末

OAuth 2.0 Device Authorization Grant

> az login
To sign in, use a web browser to open the page https://microsoft.com/devicelogin
and enter the code <認証コード> to authenticate.

補足(この 2 つの違いが示すもの): ブラウザが開ける端末では
ループバック リダイレクトhttp://localhost:PORT に認可コードを受ける)、
ブラウザが無い端末では デバイス コード フロー(別端末で URL とコードを入力)が
使われる。

これは OAuth 2.0 の
**「ネイティブ アプリで認可コードをどう受け取るか」**という
一般的な課題への標準的な解であり、
Azure CLI に限らず gh / kubectl / Docker などでも同じ仕組みが使われている。
CLI ツールがブラウザを開く挙動の背景として知っておくとよい。

なお、CI/CD で使う場合は対話ログインではなく
サービス プリンシパルAzure Service Principal
または マネージド IDAzure Managed Identity)を使う。

az login --service-principal -u <appId> -p <secret> --tenant <tenantId>
az login --identity   # マネージド ID(シークレット不要・推奨)

サブスクリプション切替

# 一覧
az account list --output table
# 選択
az account set --subscription "My Demos"

便利コマンド

# subscription の一覧
az account subscription list --output table
# location の一覧
az account list-locations --output table

補足(--query が最大の武器): Azure CLI は既定で JSON を返すため、
JMESPath による絞り込みが強力に効く。

# 名前とリソース グループだけを表で
az vm list --query "[].{name:name, rg:resourceGroup}" -o table

# 特定の条件で絞る
az vm list --query "[?powerState=='VM running'].name" -o tsv
出力形式 用途
-o json(既定) スクリプトで jq に渡す
-o table 人が読む
-o tsv シェル変数に代入(引用符が付かない)

-o tsvVAR=$(az ... -o tsv) のように使うと便利で、
スクリプト内で最も多用する。

企業内から使う場合は HTTP_PROXY / HTTPS_PROXY 環境変数を設定する。

参考

Microsoft Learn


Tags: 移行, シェル, インフラストラクチャ, クラウド, Azure

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally