VM のマネージド ID で Storage へ資格情報レスにアクセスする

パスワードや接続文字列を一切使わずに、VM のシステム割り当てマネージド ID で Blob Storage からデータを取得します。データプレーンのロール割り当てと IMDS の仕組みを体験できる AZ-500 / AZ-204 対策ラボです。

中級50Azure 実環境

ラボ概要

パスワード、接続文字列、アクセス キーといった「秘密情報」の管理は、クラウド アプリケーション最大の悩みどころです。コードや設定ファイルに埋め込まれたキーは、リポジトリへの誤コミットやログ出力から漏えいすることが珍しくなく、定期的なローテーションの負担も無視できません。

マネージド ID は、この問題を根本から解決する Azure の仕組みです。VM などの Azure リソースに Microsoft Entra ID 上の ID を自動的に持たせ、リソース内からはインスタンス メタデータ サービス (IMDS) 経由でアクセス トークンを取得できます。開発者や運用者が資格情報を保存・管理する必要は一切ありません。あとは Azure RBAC で「Storage Blob Data Reader」のようなデータプレーン用ロールを割り当てるだけで、最小権限のアクセス制御が実現します。

このラボでは、公開 IP を持たない B1s の Linux VM を作成してシステム割り当てマネージド ID を有効化し、Storage アカウントの Blob に対する読み取りロールを割り当てたうえで、Run Command 経由で VM 内から az login --identity を実行して Blob を取得します。AZ-500 と AZ-204 の両方で頻出のシナリオを、実際に手を動かして確認します。

学習目標

  • システム割り当てマネージド ID の仕組みと、資格情報を排除するメリットを説明できる
  • az CLI で VM にシステム割り当てマネージド ID を有効化できる
  • Storage のデータプレーン用組み込みロール (Storage Blob Data Reader) をマネージド ID に割り当てられる
  • IMDS (169.254.169.254) からアクセス トークンを取得する流れを理解できる
  • VM 内から az login --identity を使い、資格情報なしで Blob を取得できる
  • 公開 IP のない VM を Run Command で操作できる

前提

  • CloudDo サンドボックスにサインイン済みであること
  • リージョンは japaneast (東日本) を使用します
  • 作業はサンドボックスに 割り当て済みのリソースグループ 1 つ の中だけで行います(新しいリソースグループの作成やサブスクリプション設定の変更はできません)
  • 手順はすべて Cloud Shell (Bash) の az CLI で完結します

ラボの構成

  1. 1Cloud Shell を起動して変数を準備する
  2. 2公開 IP なしの B1s VM を作成する
  3. 3システム割り当てマネージド ID を有効化する
  4. 4Storage アカウントを作成して Blob をアップロードする
  5. 5マネージド ID に Storage Blob Data Reader を割り当てる
  6. 6VM 内に Azure CLI をインストールする (Run Command)
  7. 7VM 内から az login --identity で Blob を取得する
  8. 8動作確認
  9. 9完了チェックリスト
  10. 10後片付け

詳細な手順は、ラボ開始後に画面内のガイドとして表示されます。

構成図

参考リソース