この記事のポイント
Azureリソースの操作自動化にはAzure CLIが第一候補。Bash親和性が高くCI/CDパイプラインとの統合が最も容易で、Windows・macOS・Linuxで同一スクリプトを使い回せる
MFA必須化(2025年10月〜)により対話型ログインだけでは自動化が止まる。CI/CD環境ではサービスプリンシパルかマネージドIDへの移行を早急に進めるべき
.NETやPowerShellに精通したチームならAzure PowerShellが有効だが、それ以外のチームではAzure CLIを標準化すべき。学習コストと運用効率の差が大きい
インフラのコード化にはAzure CLI+Bicepの組み合わせが最適。ARMテンプレートを直接書くのは可読性が低く避けるべき
ローカル環境の構築が不要な場面ではAzure Cloud Shellが有効。ブラウザから即座に使えるため、障害対応やワンショット操作に向いている

Microsoft MVP・AIパートナー。LinkX Japan株式会社 代表取締役。東京工業大学大学院にて自然言語処理・金融工学を研究。NHK放送技術研究所でAI・ブロックチェーンの研究開発に従事し、国際学会・ジャーナルでの発表多数。経営情報学会 優秀賞受賞。シンガポールでWeb3企業を創業後、現在は企業向けAI導入・DX推進を支援。
Azure CLI(Azure Command-Line Interface)は、Microsoftが提供するAzureリソース管理用のクロスプラットフォームコマンドラインツールです。Windows・macOS・Linuxで同じコマンド体系が使えるため、手作業のポータル操作をスクリプト化し、運用の自動化やCI/CDパイプラインへの組み込みに適しています。
本記事では、Azure CLIの基本概念からインストール方法、認証の仕組み(MFA必須化対応を含む)、主要コマンドの使い方、Azure PowerShellとの違い、CI/CDやBicepとの連携まで、2026年3月時点の最新情報をもとに体系的に解説します。
目次
Azure CLIとは
Azure CLI(Azure Command-Line Interface)は、Microsoftが提供するAzureリソースを管理するためのクロスプラットフォーム対応のコマンドラインツールです。Windows・macOS・Linuxのいずれからも同じコマンド体系でAzureの仮想マシン、ストレージ、ネットワークなどを操作できます。
Azure CLIは、AzureポータルのGUI操作をコマンドラインに置き換えるツールとして位置づけられています。手動でクリックしていた作業をスクリプトに落とし込めるため、繰り返し作業の自動化やCI/CDへの組み込みに向いています。
2026年3月時点の最新バージョンはv2.84.0(2026年3月3日リリース)です。月次で新バージョンがリリースされており、新しいAzureサービスへの対応やコマンドの追加が継続的に行われています。

Azure CLIの主な特徴
Azure CLIが多くの開発者・運用担当者に選ばれている理由は、以下の特徴にあります。

- クロスプラットフォーム対応
Windows・macOS・Linuxのどの環境でも同じコマンドが動作します。チームメンバーのOSが異なっていても、スクリプトを共有できる点は運用面で大きなメリットです。
- 直感的なコマンド構文
コマンドはaz+リソースの種類+操作という規則的な構造になっています。たとえばリソースグループの作成はaz group create、仮想マシンの一覧取得はaz vm listのように、覚えやすい命名規則です。
- JSON出力とクエリ機能
コマンドの実行結果はデフォルトでJSON形式で返されます。--queryオプションでJMESPath式を使ったフィルタリングができるため、必要な値だけをスクリプトに渡す処理が書きやすくなっています。
- スクリプト自動化との高い親和性
Bashスクリプトやシェルスクリプトとの相性が良く、変数展開・ループ・条件分岐と組み合わせて複雑な運用タスクを自動化できます。CI/CDパイプラインのステップとしても利用されています。
これらの特徴から、Azure CLIはAzureポータルの補助ツールではなく、運用自動化の基盤ツールとして活用されるケースが増えています。
Azure Cloud Shellとの関係
Azure Cloud Shellは、Azureポータル上で使えるブラウザベースのターミナル環境です。Cloud ShellにはAzure CLIとAzure PowerShellがプリインストールされており、ローカル環境へのインストールなしですぐにazコマンドを使い始められます。

Cloud Shellはポータルにログインした時点で認証済みのため、az loginの手順も不要です。ただし、セッションは無操作20分でタイムアウトし、永続ストレージにはAzureファイル共有の作成が必要です。日常的なスクリプト実行にはローカルインストールのほうが安定します。
つまり、「まずは試してみたい」ならCloud Shell、「本格的に使う」ならローカルインストールという使い分けが現実的です。
Azure CLIとAzure PowerShellの違い
Azureのコマンドラインツールにはもう1つ、Azure PowerShellがあります。どちらもAzureリソースの作成・管理・削除ができますが、設計思想とコマンド体系が異なります。
以下の表で両者の違いを整理しました。

| 比較項目 | Azure CLI | Azure PowerShell |
|---|---|---|
| コマンド構文 | az リソース 操作(例: az group create) | 動詞-Azリソース(例: New-AzResourceGroup) |
| 実行環境 | Bash / zsh / cmd / PowerShell | PowerShell |
| デフォルト出力 | JSON文字列 | PowerShellオブジェクト |
| クロスプラットフォーム | Windows / macOS / Linux | Windows / macOS / Linux(PowerShell 7以降) |
| 得意な用途 | シェルスクリプト・CI/CD・軽量な操作 | 複雑なオブジェクト加工・Windows管理タスクとの統合 |
| 学習コスト | Bash経験者なら低い | PowerShell経験者なら低い |
この表が示すように、技術的な優劣ではなく、チームが日常的に使うシェル環境が選択基準になります。Linux環境やCI/CDパイプライン中心の開発チームにはAzure CLI、Windows Server運用やActive Directory管理と一体化した管理チームにはAzure PowerShellが馴染みやすい傾向があります。
どちらを選ぶべきか
以下の判断フローが目安になります。

- チームの主要OSがLinux/macOS、またはCI/CDがBash前提 → Azure CLI
- Windows Server運用やActive Directory管理と統合したい → Azure PowerShell
- 両方のメンバーがいる → どちらでも動くCloud Shellから始めて、チームで統一する
なお、Azure CLIとAzure PowerShellは同じAzure Resource Manager(ARM)のAPIを呼び出しているため、操作できるリソースの範囲に差はありません。両方を混在させることも技術的には可能ですが、運用スクリプトの保守性を考えると、チーム内でどちらかに統一するのが現実的です。
Azure CLIのインストール方法
Azure CLIはWindows・macOS・Linuxの各環境にインストールできます。いずれのプラットフォームでも数分で完了し、インストール後はターミナルからazコマンドが使えるようになります。

Windowsでのインストール
WindowsではMSIインストーラーまたはwingetコマンドでインストールできます。
winget install -e --id Microsoft.AzureCLI
MSIインストーラーを使う場合は、公式のダウンロードページから取得して実行します。インストール後、PowerShellまたはコマンドプロンプトを新しく開くとazコマンドが認識されます。
macOSでのインストール
macOSではHomebrewでインストールするのが一般的です。
brew update && brew install azure-cli
Homebrewが導入済みであれば、この1行で完了します。
Linuxでのインストール
Debian/Ubuntu系ではワンラインスクリプトが用意されています。
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
RHEL/CentOS/Fedora系の場合は、公式のLinuxインストールガイドに従ってrpmリポジトリを追加してインストールします。
Docker / Azure Cloud Shellで使う
ローカル環境にインストールしたくない場合は、2つの方法があります。

- Docker
以前はMicrosoft公式のDockerイメージが提供されていましたが、v2.63.0以降メンテナンスが停止しています。コンテナ内でAzure CLIを使いたい場合は、Azure LinuxベースのコンテナにCLIを自分でインストールする方法が推奨されています。
- Azure Cloud Shell
Azureポータル上のCloud Shellには最新のAzure CLIがプリインストールされています。インストール不要で、ブラウザからすぐにazコマンドを実行できます。
インストール後はaz versionコマンドでバージョンが表示されることを確認します。2026年3月時点の最新はv2.84.0です。
Azure CLIの認証とログイン
Azure CLIでAzureリソースを操作するには、まず認証(サインイン)が必要です。利用シーンに応じて3つの認証方法が用意されています。

対話型ログイン(az login)
開発者が手動で作業する際に使う標準的な認証方法です。

az login
このコマンドを実行するとブラウザが開き、Microsoftアカウントの資格情報を入力して認証します。複数のサブスクリプションを持っている場合は、az account listで一覧を確認し、az account set --subscription "サブスクリプション名"で切り替えます。
サービスプリンシパルによる認証
CI/CDパイプラインやバッチスクリプトなど、人が介在しない自動化処理で使う認証方法です。

az login --service-principal -u <アプリケーションID> -p <クライアントシークレット> --tenant <テナントID>
サービスプリンシパルはMicrosoft Entra IDで作成し、必要なリソースへのRBACロールを割り当てて使います。クライアントシークレットの代わりに証明書を使うことで、さらにセキュリティを高めることもできます。
マネージドIDによる認証
Azure上で稼働する仮想マシンやAzure Functionsなどのリソースから認証する場合、マネージドIDが最もシンプルです。

az login --identity
マネージドIDを使えば、シークレットやパスワードを一切コードに含めずにAzureリソースへアクセスできます。資格情報の漏洩リスクがなく、ローテーションも不要なため、Azure上の自動化ではマネージドIDが推奨されています。
MFA必須化の影響と対応
Microsoftは2025年10月1日から、Azure CLI・Azure PowerShell・IaCツールなどコマンドラインツールでのサインインに多要素認証(MFA)を義務化しました(フェーズ2)。この要件はリソースの作成・更新・削除操作を行うユーザーIDに適用されます。
MFAの対象と対象外を整理すると、以下のとおりです。

| 認証方法 | MFA必須 | 備考 |
|---|---|---|
| ユーザーID(az login) | はい | 作成・更新・削除操作に適用 |
| サービスプリンシパル | いいえ | ワークロードIDのため対象外 |
| マネージドID | いいえ | ワークロードIDのため対象外 |
つまり、自動化スクリプトでユーザーIDを使っている場合は、サービスプリンシパルまたはマネージドIDへの移行が必要です。すでにワークロードIDで認証している場合はMFA必須化の影響を受けません。
この変更は2024年10月のフェーズ1(Azureポータル)に続くもので、コマンドラインツール経由の操作もすべてMFA対象になったことを意味します。自動化スクリプトの認証方式を未確認の場合は、早めに棚卸しすることをおすすめします。
CLI自動化スキルをAI業務自動化にも活かすなら
Azure CLIでリソース管理やスクリプト自動化を行ってきた経験は、AI業務自動化環境の構築・運用にも直結します。AI業務自動化ガイドでは、CLI操作の自動化力を活かしたAI導入の進め方を220ページにわたって解説しています。
CLI自動化スキルをAI業務自動化にも
Azure CLIの自動化力をAI環境構築に展開
Azure CLIでリソース管理やスクリプト自動化を行ってきた経験は、AI業務自動化環境の構築・運用にも直結します。220ページの実践ガイドで、Microsoft環境でのAI導入を計画してみませんか。
Azure CLIの基本的な使い方
Azure CLIの認証が完了したら、実際にリソースを操作してみましょう。ここではAzure CLIでよく使われる基本コマンドと、出力の制御方法を紹介します。

リソースグループの操作
Azureのすべてのリソースはリソースグループに所属します。まずリソースグループの作成・一覧・削除が基本操作です。

# リソースグループの作成
az group create --name MyResourceGroup --location japaneast
# リソースグループの一覧表示
az group list --output table
# リソースグループの削除
az group delete --name MyResourceGroup --yes
--location japaneastは東日本リージョンを指定しています。--output tableを付けると、JSON出力の代わりにテーブル形式で見やすく表示されます。
仮想マシンの操作
Azure CLIでの仮想マシン操作は、az vmコマンドグループで行います。

# 仮想マシンの作成
az vm create \
--resource-group MyResourceGroup \
--name MyVM \
--image Ubuntu2204 \
--size Standard_B2s \
--admin-username azureuser \
--generate-ssh-keys
# 仮想マシンの一覧表示
az vm list --resource-group MyResourceGroup --output table
# 仮想マシンの停止
az vm stop --resource-group MyResourceGroup --name MyVM
# 仮想マシンのサイズ変更
az vm resize --resource-group MyResourceGroup --name MyVM --size Standard_DS2_v2
--generate-ssh-keysを指定すると、SSH鍵がローカルに自動生成されます。既存の鍵を使う場合は--ssh-key-valueでパスを指定します。
ストレージアカウントの操作
Azureストレージアカウントの作成・管理もAzure CLIで効率的に行えます。

# ストレージアカウントの作成
az storage account create \
--name mystorageaccount \
--resource-group MyResourceGroup \
--location japaneast \
--sku Standard_LRS
# ストレージアカウントの一覧表示
az storage account list --resource-group MyResourceGroup --output table
# Blobコンテナーの作成
az storage container create --name mycontainer --account-name mystorageaccount
出力形式とクエリ(--output / --query)
Azure CLIのコマンド結果を効率的に扱うために、出力形式の切り替えとJMESPathクエリを使いこなすことが重要です。
出力形式は--outputオプションで切り替えられます。

| 形式 | 用途 |
|---|---|
| json(デフォルト) | スクリプトでのパース・加工に適する |
| table | 人間が目視確認するときに見やすい |
| tsv | シェル変数への代入やパイプ処理に便利 |
| yaml | 設定ファイルとの整合性確認向け |
--queryオプションを使うと、JSON出力から特定の値だけを抽出できます。
# リソースグループ名だけを一覧取得
az group list --query "[].name" --output tsv
# 仮想マシンの名前とサイズを表示
az vm list --query "[].{Name:name, Size:hardwareProfile.vmSize}" --output table
JMESPathの構文を覚えると、スクリプト内でjqなどの外部ツールを使わずにAzure CLIだけで値の抽出が完結します。公式のクエリガイドでより複雑なクエリの例も確認できます。
Azure CLIの活用事例
Azure CLIの真価は、個別コマンドの実行ではなく、複数のコマンドを組み合わせた運用自動化にあります。ここでは実務で多い3つの活用パターンを紹介します。

スクリプトによる運用自動化
日常的な運用タスクをBashスクリプトにまとめることで、手作業による操作ミスを防ぎ、作業時間を短縮できます。

以下は、開発環境の仮想マシンを業務時間外に自動停止するスクリプトの例です。
#!/bin/bash
# 開発用VMを一括停止するスクリプト
RESOURCE_GROUP="dev-resources"
# 開発用VMの一覧を取得して停止
for vm_name in $(az vm list -g $RESOURCE_GROUP --query "[].name" -o tsv); do
echo "Stopping $vm_name..."
az vm deallocate -g $RESOURCE_GROUP -n $vm_name --no-wait
done
az vm deallocateを使うことで、停止と同時にコンピューティング課金も停止します。--no-waitを付けると、各VMの停止完了を待たずに次のVMの処理に進むため、複数台を効率的に停止できます。
このスクリプトをcron(Linux)やタスクスケジューラ(Windows)で定期実行すれば、夜間や週末のコンピューティングコストを自動的に削減できます。開発環境のVM台数が10台を超えるようなチームでは、月額で数万円規模のコスト削減につながることも珍しくありません。
CI/CDパイプラインとの統合
Azure DevOpsやGitHub Actionsのパイプラインステップとして、Azure CLIを組み込むことができます。

GitHub Actionsの場合、azure/cli@v2アクションを使うとパイプライン内でazコマンドを直接実行できます。サービスプリンシパルで認証し、デプロイ・設定変更・リソース作成をコードとして管理する運用が一般的です。
Azure Pipelinesを使う場合も、AzureCLIタスクを定義してパイプラインYAML内にazコマンドを記述できます。いずれの場合も、インフラ操作がコードとしてバージョン管理され、レビュー可能になる点が手動操作との最大の違いです。
Bicep / IaCとの連携
Azure CLIはインフラのコード化(IaC)ツールとも連携します。特にMicrosoftが推進するBicepとの統合が進んでおり、az deployment group createコマンドにBicepファイルを直接指定してデプロイできます。

# Bicepテンプレートからリソースをデプロイ
az deployment group create \
--resource-group MyResourceGroup \
--template-file main.bicep \
--parameters @params.json
BicepはTerraformと比較して、Azure専用設計のためAzureの新機能への対応が早い点が特徴です。マルチクラウド環境ではTerraformが選ばれますが、Azure単独環境ではBicep+Azure CLIの組み合わせがシンプルな選択肢です。
実務では、Bicepでインフラ定義を書き、Azure CLIでデプロイし、GitHub Actions/Azure Pipelinesでパイプライン化するという3層構成が増えています。
Azure CLIの更新とトラブルシューティング
Azure CLIは月次で新バージョンがリリースされます。古いバージョンのまま使い続けると、新しいAzureサービスのコマンドが使えなかったり、セキュリティ修正が適用されないため、定期的な更新が必要です。

バージョン確認と更新
現在のバージョンを確認するには、以下のコマンドを実行します。

az version
更新方法はプラットフォームによって異なります。
| プラットフォーム | 更新コマンド |
|---|---|
| Windows | az upgrade |
| macOS(Homebrew) | brew upgrade azure-cli |
| Linux(Debian/Ubuntu) | sudo apt-get update && sudo apt-get install --only-upgrade -y azure-cli |
Windowsではaz upgradeコマンドで、インストール済みの拡張機能も含めて一括更新できます。--allオプションを付けると、すべての拡張機能も最新版にアップグレードされます。
Microsoftのサポートライフサイクルポリシーによると、サポートされるのは最新のマイナーバージョンのみです。古いバージョンでの不具合はサポート対象外となるため、少なくとも四半期に1回は更新することを推奨します。
プロキシ設定
社内ネットワークなどプロキシ経由でAzure CLIを使う場合は、環境変数を設定します。
export HTTP_PROXY=http://proxy-server:port
export HTTPS_PROXY=https://proxy-server:port
Windows環境ではsetコマンドまたはシステム環境変数で設定します。プロキシ設定が正しくないと、az loginやリソース操作でタイムアウトエラーが発生するため、社内IT部門にプロキシのアドレスとポートを確認してから設定してください。
よくあるトラブルと対処法
Azure CLIを使っていて遭遇しやすい問題と解決策を整理しました。

- 「az: command not found」と表示される
Azure CLIのインストールパスがPATH環境変数に追加されていない可能性があります。ターミナルを再起動するか、シェルのプロファイル(.bashrc / .zshrc等)にパスを追加してください。
- 「AADSTS50076: MFA required」エラー
2025年10月のMFA必須化以降、ユーザーIDでaz loginする際にMFAが求められます。自動化スクリプトの場合はサービスプリンシパルまたはマネージドIDでの認証に切り替えてください。
- 「The subscription is not found」エラー
az account listで利用可能なサブスクリプションを確認し、az account set --subscription "正しいサブスクリプション名"で切り替えます。テナントが異なる場合はaz login --tenant テナントIDで再ログインが必要です。
- コマンド実行が遅い
--no-waitオプションで非同期実行にするか、--output noneで出力を省略することで速度が改善する場合があります。大量のリソース一覧取得では--queryで対象を絞ることも有効です。
上記で解決しない場合は、公式のトラブルシューティングガイドを参照してください。
Azure CLIの料金
Azure CLI自体の利用に料金はかかりません。インストール・実行・アップデートのいずれも無料です。料金が発生するのは、Azure CLIを通じて作成・実行したAzureリソース(仮想マシン、ストレージ、データベースなど)の利用料のみです。

料金体系の構成要素
Azure CLIの料金は「ツール」と「作成したリソース」の2つに分けて整理すると分かりやすくなります。

- Azure CLI(ツール自体)
無料。オープンソース(MIT License)としてGitHubで公開されており、ライセンス費用も発生しません。
- Azureリソース(従量課金)
CLIから作成・変更したリソースの利用量に応じて課金されます。Azure CLIで操作したからといって追加料金が上乗せされることはなく、Azureポータルから同じリソースを作った場合と同額です。
コスト管理のポイント
Azure CLIによる自動化は、運用の効率化につながる一方で、スクリプトの誤動作で不要なリソースが大量に作成されるリスクもあります。以下のポイントを押さえておくとコスト事故を防ぎやすくなります。

- az vm deallocateで停止する
az vm stopだけではコンピューティング課金が続く場合があります。deallocateを使えばコンピューティングリソースが完全に解放され、課金も停止します。
- リソースグループ単位でまとめて削除
テスト環境をリソースグループにまとめておけば、az group deleteの1コマンドで関連リソースをすべて削除できます。
- Azure Cost Management CLIで費用を確認
az costmanagement queryコマンドで、スクリプトからコスト情報を取得できます。定期的なコストレポートの自動生成にも利用可能です。
CLIでリソースを作成する際は、Azureの料金計算ツールで事前にコストを見積もり、不要リソースの削除ルールを定めておくことをおすすめします。
CLI自動化スキルをAI業務自動化にも
Azure CLIの自動化力をAI環境構築に展開
Azure CLIでリソース管理やスクリプト自動化を行ってきた経験は、AI業務自動化環境の構築・運用にも直結します。220ページの実践ガイドで、Microsoft環境でのAI導入を計画してみませんか。
まとめ
Azure CLIは、Azureリソースを管理するためのクロスプラットフォーム対応コマンドラインツールです。本記事では、インストール方法から認証(MFA必須化対応を含む)、基本コマンド、PowerShellとの使い分け、CI/CDやBicepとの連携まで、実務で押さえるべきポイントを解説しました。
Azure CLIを活用する上で重要なのは、以下の3点です。
1つ目は、認証方式の選択です。手動作業にはaz login(対話型)、自動化にはサービスプリンシパルまたはマネージドIDを使い分けることで、MFA必須化にも対応できます。
2つ目は、チーム内でのツール統一です。Azure CLIとAzure PowerShellは機能的にほぼ同等のため、チームの技術スタックに合わせてどちらかに統一し、スクリプトの保守性を確保します。
3つ目は、段階的な自動化です。まずはポータルで手動実行している作業をazコマンドに置き換え、次にスクリプト化し、最終的にCI/CDパイプラインに組み込む——という段階を踏むことで、無理なく運用自動化を進められます。
Azure CLI自体は無料で、無料アカウントでも試せますが、利用できるAzureリソースは無料枠とクレジットの範囲に依存します。まずはaz login → az group create → az group deleteの一連の流れを試して、コマンドラインからのリソース操作を体験してみてください。













