Azure for Students のサブスクリプションで Azure Machine Learning のワークスペースを作成しようとしたとき、「RequestDisallowedByAzure」エラーで何度試しても失敗してしまう――この記事では、その原因であるリージョン制限ポリシーの仕組みと、具体的な回避手順を分かりやすく解説します。
Azure Machine Learning ワークスペースが作成できない問題の全体像
「Azure Machine Learning(AML)のワークスペースを作ろうとしたら、RequestDisallowedByAzure というエラーが出て先に進めない」。特に Azure for Students を使っている学生の方から、この相談はとてもよくあります。
クレジット残高はまだ十分あるのに、どのリージョンを選んでもワークスペース作成が失敗する。エラー名に “Disallowed” と書いてあるので、
- 「学生サブスクリプションだと Azure Machine Learning が使えないのでは?」
- 「有料サブスクリプションにアップグレードしないとダメ?」
と不安になりますが、実際には 学生サブスクリプションでも AML のワークスペース作成は可能 です。問題の正体は、サブスクリプションに適用されている Azure Policy(ポリシー)によるリージョン制限 によって、特定の場所以外へのデプロイがブロックされていることがほとんどです。
この記事では、「RequestDisallowedByAzure」が発生する原因と仕組みを整理しながら、ポータルと CLI の両方から確認・解決する具体的な手順 を詳しく紹介します。
RequestDisallowedByAzure エラーは何を意味しているのか
まずは、問題となるエラー RequestDisallowedByAzure がどのような性質のエラーなのかを理解しておきましょう。
RequestDisallowedByAzure は「ポリシー違反」による拒否
RequestDisallowedByAzure は、Azure 側の設定やポリシーにより、リクエストそのものが許可されない ときに発生するエラーです。代表的には、次のような状況で返されます。
- サブスクリプションに 「Allowed resource deployment regions」ポリシー が適用されていて、許可されていないリージョン を指定している
- 組織・テナントのポリシーにより、特定のリソースタイプや SKU が禁止されている
エラー名だけ見ると「Azure Machine Learning がサポートされていないのでは?」と誤解しがちですが、実際には サービス未サポートではなく、サブスクリプション側の制限 であることが重要なポイントです。
似たエラーとの違い
Azure でリソース作成に失敗するとき、他にもいくつか類似したエラーが存在します。意味の違いを整理しておきましょう。
| エラーコード | 主な意味 | 主な原因 |
|---|---|---|
| RequestDisallowedByAzure | Azure 側ポリシーによりリクエストが拒否された | Allowed regions ポリシー、リソース制限ポリシー など |
| AuthorizationFailed | 操作を行う権限がない | ロール割り当て不足、RBAC 設定ミス |
| ResourceQuotaExceeded | サブスクリプションやリージョンのクォータ超過 | コア数上限、GPU 制限、ストレージアカウント数上限 など |
| SubscriptionNotRegistered | リソースプロバイダーが未登録 | Microsoft.MachineLearningServices などが Unregistered |
今回のテーマである Azure for Students + Azure Machine Learning ワークスペース作成失敗 では、ほぼ確実に RequestDisallowedByAzure=リージョン制限ポリシー が原因だと考えて問題ありません。
Azure for Students と「Allowed resource deployment regions」ポリシー
学生向けの Azure for Students サブスクリプションには、運用・コスト管理・コンプライアンス保護の観点から、あらかじめいくつかのポリシーが割り当てられているケースがあります。その中でも今回のエラーと直接関係するのが、次のような名前のポリシーです。
- Allowed resource deployment regions
- Allowed locations
- リソースのデプロイを許可するリージョン
このポリシーは、「このサブスクリプションでは、リソースを作成できるリージョンを次の一覧に絞る」といったルールを強制するものです。パラメーターとして指定されている Allowed locations(許可された場所) に含まれないリージョンへリソースを作ろうとすると、まさに RequestDisallowedByAzure で拒否されます。
Allowed locations ポリシーのイメージ
| ポリシー設定例 | Allowed locations(許可リージョン)の内容 | 影響 |
|---|---|---|
| パターン A | Japan East, Japan West | 日本国内リージョンにしかリソースを作成できない |
| パターン B | East US, West Europe | 特定の海外リージョンだけ利用可能 |
| パターン C | Japan East のみ | Japan East 以外へのデプロイはすべて拒否 |
同じ Azure for Students であっても、どのリージョンが許可されているかはアカウントごとに異なる可能性があります。そのため、知人と同じ手順で操作しているのに自分だけエラーになる、といったことも起こり得ます。
「AML が使えるリージョン」と「ポリシーで許可されたリージョン」の両方を見る
Azure Machine Learning 自体にも、「このリージョンでは提供していない」といった制約があります。そのため、実際に AML ワークスペースを作成するには次の条件を両方満たす必要があります。
- サブスクリプションのポリシーで 許可されているリージョン であること
- そのリージョンで Azure Machine Learning が提供されている こと
Allowed locations を確認したうえで、その中から AML が利用可能なリージョンを選ぶ ことが、RequestDisallowedByAzure を回避するための重要なポイントになります。
ポータルから行う具体的な確認・対処手順
ここからは、Azure ポータルを使って問題を解決する手順 を、順を追って解説します。スクリーンショットがなくても再現できるように、画面名や項目名をできるだけそのまま書いています。
手順 1: Azure for Students が有効か確認する
まずは前提として、サブスクリプション自体が有効であることを確認しましょう。
- Azure ポータルで左メニューの [サブスクリプション] を開く
- 対象のサブスクリプションが 「Azure for Students」 になっていることを確認
- 状態が 有効(Enabled) になっていることを確認
- 必要に応じて [コストの管理 + 請求] でクレジット残高を確認
ここで有効期限切れやクレジット失効が発生している場合、エラーの前にそもそもサブスクリプションが使えない状態になっています。その場合は、学生プランの再有効化や別サブスクリプションの用意が必要です。
手順 2: Azure Policy で「許可リージョン」ポリシーを特定する
次に、サブスクリプションにどのようなポリシーが割り当てられているかを確認します。
- Azure ポータルで [ポリシー] を開く
- 左メニューから [割り当て] を選択
- 一覧の中から、次のような名前のポリシーを探す
- Allowed resource deployment regions
- Allowed locations
- リソースのデプロイを許可するリージョン など
- 該当しそうなポリシーをクリックし、詳細画面を開く
表示名はテナントや環境によって微妙に異なることがありますが、「リージョン」「場所」「location」 といったキーワードが含まれているポリシーを重点的に確認すると見つけやすくなります。
手順 3: Allowed locations の一覧を確認する
ポリシー詳細画面が開いたら、[パラメーター] タブ(もしくは同様の項目)を開き、次のような項目を探します。
- Allowed locations
- listOfAllowedLocations
- 許可された場所 など
そこには、次のようにリージョン一覧が並んでいるはずです。
- japaneast
- japanwest
- eastus
- westeurope
- …
この一覧が、自分のサブスクリプションでリソース作成が許可されているリージョンのすべて です。Azure Machine Learning のワークスペースも、基本的にこの中のいずれかのリージョンで作成する必要があります。
手順 4: リソース グループを許可リージョンに作成する
ここで見落としがちなのが、リソース グループ(RG)のリージョン です。
Azure Machine Learning のワークスペースは、所属するリソース グループと同じリージョン になっている必要があります。Allowed locations で許可されていないリージョンに RG がある場合、その RG 配下に AML ワークスペースを作ろうとしても RequestDisallowedByAzure で弾かれてしまいます。
- Azure ポータルで [リソース グループ] を開く
- [作成] をクリック
- サブスクリプションに「Azure for Students」を選択
- [リージョン] に、Allowed locations で確認した許可リージョンのいずれかを選択
- RG 名を付けて作成
既存 RG を流用する場合は、RG のリージョンが Allowed locations に含まれているか を必ず確認してください。
手順 5: AML ワークスペース作成時のリージョンと依存リソースを合わせる
準備が整ったら、実際に Azure Machine Learning ワークスペースを作成します。
- Azure ポータルで [Azure Machine Learning] を検索して選択
- [+ 作成] > [Azure Machine Learning] ワークスペース をクリック
- サブスクリプションに「Azure for Students」を選択
- 先ほど作成した 許可リージョン内のリソース グループ を選択
- [リージョン] に、RG と同じ許可リージョンを選択
- ワークスペース名など必要な情報を入力
- ストレージ / Key Vault / Application Insights / Container Registry などを既存リソースから選ぶ場合は、同じリージョンのものを選択
特に、既存のストレージアカウントや Key Vault を再利用する場合、うっかり別リージョンのものを選んでしまう と、ポリシー違反となって RequestDisallowedByAzure が発生しやすくなります。迷う場合は、まずは「新規作成」で同一リージョンに揃えるのがおすすめです。
Azure CLI を使った確認・トラブルシュート方法
ポータルの UI だけでも対応は可能ですが、Azure CLI を使うと、ポリシーや許可リージョンの一覧を素早く確認 できます。リモート開発環境やターミナル派の方はこちらの手順も覚えておくと便利です。
リソースプロバイダーの登録状況を確認する
まずは、Azure Machine Learning のリソースプロバイダーがサブスクリプションに登録されているかを確認します。
# AML のリソースプロバイダー登録状態を確認
az provider show -n Microsoft.MachineLearningServices --query registrationState
# 必要に応じて登録
az provider register -n Microsoft.MachineLearningServices
ここが Registered になっていないと、別のエラー(SubscriptionNotRegistered など)が発生する可能性があります。RequestDisallowedByAzure 対策以前の前提条件として、まず確認しておきましょう。
「Allowed resource deployment regions」ポリシーを CLI から探す
次に、サブスクリプションに割り当てられているポリシーの一覧から、「Allowed resource deployment regions」系のポリシーを探します。
# 表示名に "Allowed resource deployment regions" を含むポリシー割り当てを検索
az policy assignment list \
--query "[?contains(displayName, 'Allowed resource deployment regions')].{name:name, displayName:displayName}"
ここで得られる name が、後続のコマンドで詳細を参照するときに使用する識別子です。
CLI から許可リージョンの一覧を取得する
ポリシー割り当て名が分かったら、次のようにして Allowed locations の値を取得できます。
# <policy-assignment-name> の部分を、上で取得した name に置き換える
az policy assignment show \
--name <policy-assignment-name> \
--query "parameters.listOfAllowedLocations.value"
環境によっては、パラメーター名が listOfAllowedLocations ではなく listOfAllowedRegions などになっていることもあります。その場合は、--query をいったん外して実行し、返ってきた JSON の中からパラメーター名を確認するのがおすすめです。
よくあるハマりどころと対策パターン
RequestDisallowedByAzure によくある「やりがちなミス」を、原因と対策のセットで整理しておきます。
| 症状 | 原因 | 対策 |
|---|---|---|
| どのリージョンを選んでもワークスペース作成が失敗する | Allowed locations に含まれていないリージョンを選び続けている | ポリシーで許可されたリージョン一覧を確認し、その中からリージョンを選択する |
| 特定のリソースグループだけ失敗する | その RG のリージョンが許可リージョン外 | 許可リージョン内に新しく RG を作成し、そこで AML ワークスペースを作る |
| 既存ストレージを使うと失敗し、新規作成だと成功する | 既存ストレージのリージョンが許可リージョン外、または AML ワークスペースと不一致 | 依存リソースのリージョンをワークスペースと揃える/新規作成で同一リージョンに統一 |
| エラーメッセージが長く、何が悪いのか分かりにくい | ポリシー名や詳細を確認していない | アクティビティ ログから「どのポリシーに拒否されたか」を確認する |
特に、リソースグループや依存リソースのリージョンを揃える という点は、普段あまり意識していないと見落としやすいポイントです。
アクティビティ ログで「どのポリシーに弾かれたか」を特定する
それでも原因がよく分からない場合は、Azure ポータルの [アクティビティ ログ] を確認すると、どのポリシーで拒否されたかを詳しく確認できます。
- Azure ポータルで、失敗したリソースグループまたはサブスクリプションを開く
- 左メニューから [アクティビティ ログ] を選択
- 操作名で「Create or Update Workspace」など、該当する操作をフィルタリング
- ステータスが「失敗」となっているイベントをクリック
- [JSON] タブ などから詳細情報を確認し、
policyAssignmentIdpolicyDefinitionId
ここに表示されているポリシーが、リクエストをブロックした張本人です。名前に「Allowed locations」などが含まれていれば、リージョン制限ポリシーが原因だとほぼ確定できます。
学生サブスクリプションで Azure Machine Learning はどこまで使える?
ここまでの内容から分かるように、Azure for Students でも Azure Machine Learning のワークスペース作成は可能 です。ただし、運用上の制限やクォータによって、次のような制約がかかることがあります。
- 利用できるリージョンが ポリシーで制限 されている
- 利用可能なコンピューティングサイズ(CPU/GPU)の 上限 がある
- サブスクリプションのクレジット残高が減ると、ジョブ実行中にエラーになる可能性がある
とはいえ、学習目的で小さめの CPU クラスターを作り、Notebook で実験する程度であれば、Azure for Students でも十分に活用できます。RequestDisallowedByAzure でつまずいている場合は、まずリージョン制限を正しく理解し、ポリシーの範囲内で使いこなすことを目指すとよいでしょう。
有料サブスクリプションへのアップグレードを検討するタイミング
どうしても、Allowed locations に含まれないリージョンで Azure Machine Learning を使いたいケースもあると思います。その場合、Azure for Students ではポリシーを変更できないことが多いため、一般の従量課金サブスクリプション(Pay-As-You-Go)などへの切り替え を検討することになります。
アップグレードや別サブスクリプションの追加を検討すべきタイミングの例をいくつか挙げておきます。
- 研究上の要件で、特定のリージョン(例: North Europe)を利用する必要がある
- GPU クラスターなど、学生サブスクリプションではクォータ制限が厳しいリソースを継続的に利用したい
- 学外の共同研究者と同一サブスクリプションやリージョンで環境を揃える必要がある
その一方で、有料サブスクリプションでは 無料クレジットの保護がなくなり、うっかり高額請求が発生するリスク もあります。アップグレード前には次のような対策も忘れずに設定しておきましょう。
- 予算アラート(コストアラート)を設定する
- 不要なリソースはこまめに停止・削除する運用を決めておく
- テスト用途のサブスクリプションと本番用途のサブスクリプションを分ける
チェックリスト:RequestDisallowedByAzure 解消までの流れ
最後に、この記事で説明した内容を チェックリスト形式 でまとめます。上から順に確認していくことで、原因を一つずつ潰していくことができます。
| チェック項目 | 確認する内容 |
|---|---|
| サブスクリプションの状態 | 「Azure for Students」が有効で、クレジットが残っているか |
| Allowed locations ポリシー | 「Allowed resource deployment regions」などのポリシー割り当てを特定したか |
| 許可リージョンの特定 | ポリシーのパラメーターから、許可されたリージョン一覧を把握したか |
| リソースグループのリージョン | RG が許可リージョン内に作成されているか、ワークスペースと同じリージョンか |
| AML ワークスペースのリージョン | Allowed locations に含まれるリージョンを選択しているか |
| 依存リソースのリージョン | ストレージ / Key Vault / Application Insights / Container Registry を同一リージョンに揃えているか |
| リソースプロバイダーの登録 | Microsoft.MachineLearningServices が Registered になっているか |
| アクティビティ ログの確認 | どのポリシーにリクエストが拒否されたかをアクティビティ ログで確認したか |
上記をすべて満たしているのになお問題が解消しない場合は、
- テナント管理者やサポート窓口に、ポリシーの詳細を問い合わせる
- 別サブスクリプション(例: 従量課金)の利用を検討する
といった次のステップに進むとよいでしょう。
まとめ:学生サブスクリプションでも AML は使える。鍵は「リージョン制限ポリシー」
最後に、この記事の要点を一言でまとめます。
学生向けサブスクリプションでも Azure Machine Learning のワークスペースは作成可能です。
RequestDisallowedByAzure はサービス未サポートではなく、リージョン制限ポリシーによる拒否 が主な原因です。
Azure Policy の「Allowed resource deployment regions」で 許可されたリージョンを特定し、その範囲内でリソースグループとワークスペースを作成 すれば、多くの場合は解決できます。
「学生プランだから無理なのかも…」と諦めてしまう前に、まずはこの記事の手順に沿って、Allowed locations とリージョン設定を一つずつ確認してみてください。環境構築さえ乗り越えれば、Azure Machine Learning を使った機械学習や MLOps の学習が、ぐっとスムーズに進むはずです。

コメント