Azure AI Foundryが読み込み画面から進まない時の原因と解決策|RBAC不足・ネットワーク制御の徹底チェックリスト

Azure AI Foundry(旧 Azure AI Studio)にサインインするとローディング画面のまま固まり、ポータルが一切表示されない――そんな厄介な症状は、実は「通信は届いているのに、許可やネットワーク制御で弾かれている」ことが大半です。この記事では、最終的にRBAC(ロールベースアクセス制御)の不足が原因だった実例を踏まえ、再現しやすい切り分け手順と確実に直すためのチェックリストを、現場運用の目線で整理しました。

日程Fit。無料・登録不要。「いつ空いてる?」を、ひとつのリンクで。リンクを送って、○△×でかんたん日程調整。無料で日程を作る。
目次

結論と全体像

最終原因はAI Hub / AI Project 等の基盤リソースに対する RBAC 不足でした。適切なロール(少なくとも読み取り用の Reader、編集・作成を伴うなら Contributor 以上)を割り当てると、ローディングから即座に復帰し、ポータルが正常表示されました。

ローディングから進まない状態は、次のどれかが引き金になりがちです。

  • 認可エラー(403/AuthorizationFailed):RBAC が足りない、または割り当てが子リソースに継承されていない。
  • ネットワーク制御Public network access の無効化、選択 IP 限定、プロキシ/ファイアウォール/SSL インスペクション。
  • 組織側の制約:条件付きアクセス、PIM(特権の Just-In-Time 有効化漏れ)、Deny Assignment、Resource Lock。
  • 一時的障害:対象リージョンや依存サービスの断続的エラー。

最速で原因にたどり着くためのチェックリスト

まずは、時間対効果が高い順に下表のチェックを進めてください。5~10分で「権限問題か、ネットワーク問題か」を切り分けできます。

手順目的操作ポイント判定の目安次のアクション
ブラウザ開発ツールで失敗リクエスト確認隠れたエラーの正体を掴むF12 → Network → 再読み込み。
失敗行を選び Status / Response を確認
403 / AuthorizationFailed / MissingSubscriptionRegistration / RequestDeniedByPolicy権限・購読登録・ポリシー・PIM の有効化を重点確認
サインイン先テナント/サブスクリプションの再確認「見えているが別テナント」問題の排除ポータル右上のディレクトリ/サブスクリプション選択を確認意図しないテナント/サブスクリプションを選択していた正しい組み合わせに切替、再読み込み
Networking ブレード確認IP 制限/Private 接続の有無AI Hub/Project → Networking
Public access, Selected IPs, Private Endpoints
Public access 無効 or 選択 IP 限定現在のグローバル IP を登録 or 企業網から接続
IAM(アクセス制御)確認必要ロール付与の有無対象リソースの アクセス制御 (IAM) → ロールの割り当て自分に Reader/Contributor 等が無い最低限 Reader を付与(編集作業は Contributor 以上)
プロキシ/ファイアウォール/SSL 検査企業網のブロック検知社内プロキシ除外、SSL インスペクション対象外の確認特定ドメイン/証明書でブロック除外設定 or 社外ネットワークで再現確認
サービス障害の有無手元以外の要因除外Azure ステータスで対象リージョンと依存サービスを確認該当の断続エラーあり時間をおいて再試行 or リージョン切替
HAR 採取 → サポート起票再現性ある証跡を添付Network → Save all as HAR自己解決が難しい場合HAR を添付し解析依頼

今回の実例:RBAC 不足で進まないケース

症状は「Azure AI Foundry にアクセス後、ローディングアニメーションが回り続ける」状態。キャッシュ削除、複数ブラウザ、シークレットモード、モバイル回線などの基本対処でも改善せず、回線も下り 250 Mbps 程度で問題なし。開発者ツールの Network にて複数 API が 403 を返し、本文に AuthorizationFailed が含まれていることを確認しました。

IAM(アクセス制御)を見ると、Resource Group にのみロールが付与され、AI Hub およびその配下の AI Project や関連リソース(ストレージ、Key Vault、レジストリ等)には十分な権限が伝播していませんでした。AI Hub に Reader(閲覧)と運用担当に Contributor を付与後、画面を更新した瞬間に UI が復帰し、すべてのメニューが表示されました。

RBAC 設計の勘所:最低限どこに何を付けるか

「Resource Group に付けたから大丈夫」のつもりでも、継承範囲のズレ子リソースへの個別 Deny管理グループ/ポリシーの制約でアクセスが成立しないことがあります。次の表をベースに見直してください。

対象最低限必要なロール目的/理由注意点
サブスクリプションReader(閲覧者)一覧・メタデータ取得、UI 構築に必要な読み取りここだけ Reader でも UI は動くが、子に Deny があると詰まる
Resource GroupReader / Contributorグループ配下のリソース情報にアクセス継承が子に届かないケース(個別割り当てや Deny)に注意
AI HubReader 以上(UI 表示)
運用は Contributor 以上
ポータルが最初に読み込む中心リソースここが欠けるとローディングから進まないことが多い
AI Project(Hub 配下)Reader / Contributorプロジェクトのメタデータ取得・設定Hub と Project の両方に割り当てると確実
ストレージ / Key Vault / レジストリ等Reader(UI 表示)+ 必要に応じて Contributor接続検証やシークレット参照で必要Vault はアクセス ポリシーや RBAC 切替状態も確認

よくある誤設定と正しい設定

誤設定例何が起きるか正しい設定
Resource Group にだけロール付与AI Hub/Project の API 呼び出しで 403。UI はローディングで停止AI Hub と Project にも Reader/Contributor を明示付与
個人アカウントに付与、実際はグループ経由ログイン本人にロールが見えない/意図通りに効かない実サインイン アカウント(Entra ID)へ割り当て直し
PIM ロールの有効化を忘れる権限があるつもりでも実際は無効。403 が続くPIM をアクティブ化(多要素・承認)後に再読み込み
管理グループのポリシー/Deny Assignment を失念子の許可より上位の拒否が優先され操作不可上位の Deny/Policy を確認し、例外を申請

ブラウザ開発ツールで「読み込み停止」の正体を見破る

ローディングは UI の見かけでしかありません。実体はバックエンド API の失敗連鎖です。次の観点でログを見れば、ほぼ原因の目星がつきます。

  • Status401(未認証)か 403(認可失敗)か。
  • Response BodyAuthorizationFailedMissingSubscriptionRegistrationRequestDeniedByPolicy 等のキーワード。
  • Request URL:どのリソース プロバイダーに当たっているか(例:ストレージ、Key Vault など)。
  • Timing:「一発目から 403」なら根本的な権限不足、「一部だけ 403」なら子リソースまたはネットワーク。

典型的なレスポンス例(抜粋)

{
  "error": {
    "code": "AuthorizationFailed",
    "message": "The client '[email protected]' with object id '...' does not have authorization to perform action 'Microsoft.CognitiveServices/.../read' over scope '/subscriptions/.../resourceGroups/.../providers/...' or the scope is invalid."
  }
}
{
  "error": {
    "code": "RequestDeniedByPolicy",
    "message": "Resource '...' was disallowed by policy."
  }
}
{
  "error": {
    "code": "MissingSubscriptionRegistration",
    "message": "The subscription is not registered to use namespace 'Microsoft.CognitiveServices'."
  }
}

ネットワーク設定が原因のときに見る場所

企業ネットワークでは、下記が UI 停止の引き金になります。Networking ブレード社内プロキシ設定を同時に確認しましょう。

  • Public network access = Disabled:VPN/ExpressRoute 経由のみ許可。社外からは弾かれます。
  • Selected IPs:現在のグローバル IP がホワイトリストに無い。
  • Private Endpoint:Private DNS 構成不備で名前解決できずタイムアウト。
  • SSL インスペクション:ポータルや API の TLS が書き換えられ、認証に失敗。
  • 厳格なトラッキング防止/サードパーティ Cookie 拒否:シングルサインオンが成立せず 401/403 を誘発。

対処の要点

  1. 現在のグローバル IP を確認し、Selected IPs に追加。
  2. Private エンドポイントを使う場合、Private DNS ゾーンの関連付け/レコードを点検。
  3. プロキシ/セキュリティ製品で Azure 関連ドメインと証明書の例外を設定。
  4. 一時的に社外ネットワーク(テザリング等)で再現性を確認し、切り分け。

CLI での権限・設定チェック(コピペ可)

ポータルに入れない時は CLI が強力です。以下の順に実行し、権限の穴や登録漏れを洗い出します。

ログイン状態とコンテキスト確認

# ログイン
az login

# 現在のアカウントとテナント

az account show --output table

# 対象サブスクリプションに切替

az account set --subscription  

自分のロール割り当てを一覧

# サブスクリプション全体での割り当て
az role assignment list --assignee <YOUR_UPN_OR_OBJECT_ID> --all --output table

# 特定リソース(例:AI Hub)の割り当て

az role assignment list 
--assignee  
--scope /subscriptions//resourceGroups//providers/// 
--output table 

ロールを素早く付与(必要に応じて)

# Reader を AI Hub に付与する例
az role assignment create \
  --assignee <YOUR_UPN_OR_OBJECT_ID> \
  --role "Reader" \
  --scope "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RG>/providers/<PROVIDER>/<RESOURCE_TYPE>/<HUB_NAME>"

# 編集作業が必要なら Contributor

az role assignment create 
--assignee  
--role "Contributor" 
--scope "/subscriptions//resourceGroups//providers///" 

プロバイダー登録の漏れを救済

# よく使う名前空間の登録(不足時エラーの原因に)
az provider register --namespace Microsoft.CognitiveServices
az provider register --namespace Microsoft.MachineLearningServices
az provider register --namespace Microsoft.Storage
az provider register --namespace Microsoft.KeyVault
az provider register --namespace Microsoft.ContainerRegistry

「それでもダメ」な時に疑う 7 つのポイント

  1. PIM(特権の有効化)忘れ:ロールは割り当て済みでも、アクティブ化しないと権限ゼロです。
  2. 条件付きアクセス:特定の場所・デバイス・アプリのみ許可。別経路では認証が通らない。
  3. Deny Assignment:上位の拒否が勝つため、子の許可では覆せません。
  4. Resource Lock(削除/更新のロック):読み取りは可能でも、一部の操作が詰まる。
  5. Key Vault の認可モードVault access policyAzure RBAC の切替ミス。
  6. テナント/サブスクリプションの取り違え:ポータル右上のフィルタを再点検。
  7. ブラウザ拡張・トラッキング防止:SSO が壊れて 401/403。別プロファイルで検証。

ネットワーク周りの確認表(社内に渡せる版)

観点確認内容判定/対処
Public AccessAI Hub/Project の Public network access が Disabled かDisabled なら企業網/VPN 経由のみ許可。社外からの検証は不可
Selected IPs許可 IP に現在のグローバル IP が入っているか抜けていれば追加。動的 IP の場合はレンジで登録
Private EndpointPrivate DNS ゾーンのリンク・A レコード整合名前解決できないとタイムアウト。nslookup で検証
SSL インスペクションTLS 復号対象外に設定されているかポータル/API ドメインは例外に
プロキシ例外Azure 関連ドメインがブロックされていないか業務必須として許可リストへ追加

HAR 収集とエスカレーションのコツ

自己解決できない場合は、再現直後に HAR を採取してサポートへ渡しましょう。ポイントは次の通りです。

  • 問題が起こる直前に F12 を開き、Preserve log をオン。
  • ページを再読み込みし、読み込み停止を確認したらすぐ Save all as HAR
  • 発生時刻、対象テナント/サブスクリプション、操作内容(何を開いたか)をメモ添付。

再発防止:運用設計のベストプラクティス

  • ロールの標準プロファイルを用意(閲覧専用/運用/構築など)し、AI Hub・Project・関連リソースへ一括適用。
  • テナント/サブスクリプション命名規約とタグ運用を徹底し、フィルタミスを回避。
  • PIM の運用手順(有効化→作業→無効化)を Runbook 化。
  • Networking の変更申請テンプレート(Public/Private、IP 追加、DNS 変更)を整備。
  • 監査ログ/アラート:403・ポリシー違反・MissingRegistration を検知して通知。

「すぐ使える」復旧フロー(現場配布テンプレート)

  1. ブラウザ開発ツールで失敗 API の Status/Response を 1 件サンプル取得。
  2. AuthorizationFailed があれば、IAM で AI Hub/Project に自分が Reader 以上を持つか確認。
  3. 足りなければ、暫定で Reader を付与 → 画面更新で動作確認。
  4. 編集が必要なら Contributor を追加(PIM ならアクティブ化)。
  5. 403 が消えなければ、Networking(Public/Selected IP/Private)とプロキシ例外を確認。
  6. それでも不可なら、MissingSubscriptionRegistration の解消(プロバイダー登録)。
  7. 解決しない場合は HAR を採取してサポートにエスカレーション。

トラブルの兆候と対処の早見表

兆候考えられる原因一次対処恒久対策
ずっとローディングAI Hub への読み取り権不足Hub に Reader 付与Hub/Project へ標準ロールの自動付与
一部メニューだけ空白子リソースだけ権限不足子に個別で Reader 付与継承の整合&Deny の棚卸し
認証がループする条件付きアクセス/Cookie/SSO 問題別ブラウザ・別プロファイルで検証SSO 設計とブラウザポリシーの見直し
社外回線なら動くプロキシ/SSL インスペクション例外設定を追加ネットワーク標準の例外リスト化

FAQ(よくある質問)

Q. Contributor を付けたのに動きません。

A. PIM のアクティブ化漏れ、上位の Deny Assignment、条件付きアクセス、あるいはネットワーク側の選択 IP 制限が残っている可能性があります。WhoAmI 的に現在のトークンが反映されていない場合もあるため、サインアウト→サインインやブラウザプロファイル切替を試してください。

Q. どのロールを付ければ最低限 UI が出ますか?

A. AI Hub と AI Project に Reader が最短です。UI の表示だけなら十分な場面が多く、編集作業の必要に応じて Contributor を加えます。

Q. Resource Group に付ければ子にも効きますよね?

A. 原則は継承されますが、Deny Assignment や個別割り当ての上書きで効かないことがあるため、ハブ/プロジェクトへ明示付与すると確実です。

Q. 会社のプロキシが厳しくて……。

A. 一時的に社外経路で再現確認し、ネットワーク要因と切り分けてから、必要なドメインの例外登録を依頼するのが最短です。SSL インスペクションの対象外化も効果的です。

実運用での「ハマりパターン」事例集

  • 別テナントでの作業:招待で入った B2B テナント側にリソースがあり、既定テナントのままポータルに入っていた。
  • 多段ポリシーの副作用:管理グループの「特定 SKU 禁止」ポリシーが想定外の API を拒否し、UI 構築に失敗。
  • Key Vault だけ古い運用:Vault だけアクセス ポリシー方式のままで、RBAC を付けても UI が一部壊れる。
  • Private DNS の短時間不一致:ゾーンリンクが切れ、短時間だけ名前解決できずローディングに。
  • トークンの有効期限切れ:長時間のタブ放置でトークンが古く、401→サイレント失敗→ローディング。

復旧後にやっておきたい健全化タスク

  1. 標準ロール・テンプレートをコード化(Bicep/ARM/Terraform)し、ハブ作成時に自動付与。
  2. 監視:ポータル/API の 403/401 レートと MissingRegistration をメトリクス化。
  3. Runbook 整備:今回のチェックリストと CLI コマンドを社内 Wiki に固定化。
  4. ネットワークの常設例外:Azure 関連のプロキシ/SSL インスペクション例外を標準ポリシー化。

まとめ

  • ローディングから進まないのは「通信は届くが許可/制御で止まっているサイン」
  • 最短経路は、開発者ツールで 403/エラーコードを特定AI Hub/Project へ Reader/Contributor の順で確認。
  • ネットワーク制御(Public/Selected IP/Private、プロキシ、SSL 検査)と PIM/ポリシーも同時に点検。
  • 権限を正しく付けたら即時に UI が復帰するのが典型パターン。ダメなら HAR を採ってエスカレーション。

付録:今回のチェックリスト(配布用フル版)

手順目的操作ポイント期待される確認結果
ブラウザ開発ツールで失敗を特定権限かネットワークかを秒で切り分けF12 → Network → 再読み込み → 失敗行の Status/Response を確認403 AuthorizationFailed があれば RBAC 重点。RequestDeniedByPolicy はポリシー確認
Networking の確認Public/Private/Selected IP の把握AI Hub/Project → Networking ブレードPublic disabled なら社内回線/VPN 必須。Selected IP は現行 IP を追加
RBAC の確認自分のロールを可視化対象リソース → アクセス制御 (IAM)Hub/Project に Reader 以上。編集は Contributor 以上
プロキシ/SSL 検査の例外企業網の干渉排除Azure 関連ドメインの例外化社外回線で再現しないならネットワーク要因濃厚
サービス障害の確認外的要因の除外Azure ステータスでリージョンと依存サービスを確認障害なら待機かリージョン変更
HAR 収集サポート解析を加速Network → Save all as HAR失敗 API と時刻・テナント情報を必ず添付

補足:権限設定ミスの再掲

誤設定例正しい設定
リソースグループにだけ権限、AI Hub サブリソースは無権限継承を確認し、必要なら AI Hub と AI Project に個別割り当て
個人にロール付与したが、実際は Entra グループ経由でログインサインイン アカウントと割り当て先オブジェクトが一致しているか確認

要点の再確認:読み込みループは、裏側の API が 403 等で落ちているサインです。Network タブで失敗を特定し、RBAC・ネットワーク制御・ポリシー・PIM を順番に潰せば、最短で復旧できます。とりわけAI Hub/Project への Reader/Contributor の付与は即効性が高く、今回のケースでもそれで解消しました。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次