Azure for Students で仮想マシンやストレージ、Azure Machine Learning ワークスペースを作ろうとしたら、どのリージョンを選んでも「RequestDisallowedByAzure」で拒否される──そんな状況に陥っていませんか?この記事では、学生サブスクリプション特有のリージョン制限の仕組みと、自分のサブスクリプションで本当に使えるリージョン一覧の確認方法、そしてエラーの具体的な解決手順までをまとめて解説します。
学生向け Azure サブスクリプションで頻発する「RequestDisallowedByAzure」エラーとは
Azure for Students などの学生向けサブスクリプションでリソースを作成しようとしたとき、デプロイが失敗し、エラー詳細に次のようなコードが表示されることがあります。
{
"code": "InvalidTemplateDeployment",
"details": [
{
"code": "RequestDisallowedByAzure",
"message": "Resource 'xxx' was disallowed by Azure ..."
}
]
}
英語メッセージでは「このサブスクリプションで利用できる“ベストなリージョン”のセットを維持するためのポリシーにより、このリソースは拒否された。別のリージョンが必要ならサポートに連絡してほしい」といった趣旨の説明が続きます。実際に Microsoft Q&A や Reddit でも、Azure for Students で VM や Storage、Function App、Static Web App などを作成しようとして同様のエラーに遭遇した事例が多数報告されています。
ここで混乱しがちなのが、似た名前のエラー RequestDisallowedByPolicy との違いです。後者は Azure Policy によってリソース作成がブロックされたときに出る汎用エラーで、組織側で設定したポリシー(例:特定の VM SKU だけ許可する、タグを必須にするなど)が原因になります。
一方 RequestDisallowedByAzure は、主に Microsoft 側が管理しているサブスクリプションレベルの制限(特に「利用可能リージョンの制限」)に引っかかったときに出ることが多く、Azure for Students や教育向けサブスクリプションでよく見られます。
エラーコードごとの典型的な意味の違い
| エラーコード | 典型的な原因 | 誰が管理している制限か | 主な確認場所 |
|---|---|---|---|
RequestDisallowedByAzure | Azure が管理する「利用可能リージョン」などの制限に違反 | Microsoft / テナント全体の管理者 | Azure Policy の割り当て、一部はサポート窓口経由 |
RequestDisallowedByPolicy | 組織やサブスクリプションに割り当てられた Azure Policy に違反 | 自組織の管理者(テナント管理者 / サブスクリプション管理者) | Azure Policy、アクティビティ ログ |
どちらも「ポリシー違反」である点は同じですが、学生サブスクリプションの場合は特に前者の RequestDisallowedByAzure が、「利用できるリージョンが思ったよりもずっと少ない」という形で現れます。
なぜ Azure for Students はリージョンが制限されているのか
Azure for Students や教育機関向けサブスクリプションでは、次のような理由から「利用可能リージョンを限定するポリシー」が標準で割り当てられているケースがあります。
- データセンターごとの収容能力(キャパシティ)の調整
- 各地域・国ごとの法規制やコンプライアンス
- 教育向けの無料枠を特定地域に集中させる運用方針
Microsoft Q&A 上でも、「Azure for Students では通常 5 つほどのリージョンに限定されており、その内容は利用者ごとに異なる」といった回答が公式コミュニティ モデレーターから出ています。
つまり、Azure の公式リージョン一覧や一般的なブログ記事に書かれている「このサービスは〇〇リージョンで利用可能」といった情報だけでは不十分で、
- そのサービスが該当リージョンで提供されているか(製品側の制限)
- 自分のサブスクリプションがそのリージョンを許可しているか(ポリシー側の制限)
この二つを同時に満たすリージョンを選ばないと、デプロイが失敗してしまいます。
リージョン制限の正体:Azure Policy「Allowed locations」
Azure には「Allowed locations(許可された場所)」という名前の組み込みポリシーがあります。公式ドキュメントでは、このポリシーは「組織がリソースをデプロイできるリージョンを制限するために使う」と説明されており、Effect を Deny にすることで、許可されていないリージョンへのリソース作成をブロックします。
このポリシーには allowedLocations または listOfAllowedLocations という配列パラメーターがあり、ここに japaneast や francecentral といったリージョンコードが列挙されています。
学生サブスクリプションでは、テナントやサブスクリプションにこの種のポリシーが自動的に割り当てられ、「Allowed resource deployment regions」や「Allowed locations」といった名前で適用されていることがよくあります。
Allowed locations ポリシーで制限されるもの
- 仮想マシン、ストレージ アカウント、App Service、Azure Machine Learning ワークスペース など、ほとんどのリージョン指定型リソース
- リソース グループ自体の場所を制限する「Allowed locations for resource groups」ポリシー
- 特定のリソース種別にだけ適用されるカスタム ポリシー
このため、「リソースのリージョンは許可された場所だが、リソース グループのリージョンが非許可だった」というパターンや、その逆のパターンでもエラーになることがあります。
自分の学生サブスクリプションで「使えるリージョン一覧」を確認する(ポータル編)
もっともシンプルな確認方法は、Azure ポータルの「ポリシー」ブレードから Allowed locations ポリシーのパラメーターを直接見ることです。Microsoft Q&A でも同じ手順が推奨されています。
前提:正しいサブスクリプションを選択しておく
- ポータル右上の「ディレクトリ + サブスクリプション」から、対象の Azure for Students サブスクリプションを選択しておきます。
Allowed locations ポリシーのパラメーターを確認する手順
- Azure ポータル左側メニューで 「ポリシー」 をクリックします。
- 「作成」や「定義」ではなく、左メニューから 「割り当て」(Assignments)を選択します。
- 画面上部のスコープが 対象サブスクリプション になっていることを確認します。
- 割り当て一覧から、次のような名前のポリシーを探します。
- Allowed locations
- Allowed locations for resource groups
- Allowed resource deployment regions
- 許可された場所(日本語 UI の場合)
- 該当のポリシーをクリックし、「パラメーター」 タブを開きます。
- Allowed locations または listOfAllowedLocations の値に、使えるリージョンコードの一覧が表示されます。
表示例(イメージ)
| リージョンコード | 日本語の呼び名の一例 |
|---|---|
| francecentral | フランス中部 |
| switzerlandnorth | スイス北部 |
| norwayeast | ノルウェー東部 |
| polandcentral | ポーランド中部 |
| spaincentral | スペイン中部 |
上の一覧はあくまで一例であり、実際には利用者ごとに異なるリージョンが表示されることが、コミュニティでの報告からも確認されています。
この一覧に表示されたリージョンが、あなたの学生サブスクリプションで利用できる候補です。逆に言えば、ここにないリージョンへは基本的にデプロイできません。
CLI で Allowed locations を確認する方法(スクリプトで一気に一覧化)
ポータルからうまく確認できない場合や、スクリプトで機械的にリージョン一覧を取り出したい場合は、Azure CLI を使う方法が便利です。Microsoft Q&A でも、学生サブスクリプションの Allowed locations を抽出するサンプル クエリが紹介されています。
準備:Azure CLI にログイン
az login
az account set --subscription <学生サブスクリプションのID>
ポリシー割り当ての中から Allowed locations を探す
まずは、対象サブスクリプションにどのようなポリシーが割り当てられているか、一覧を確認します。
az policy assignment list \
--subscription <サブスクリプションID> \
-o table
この中から、表示名に「Allowed locations」や「Allowed resource deployment regions」が含まれている行を見つけます。
Allowed locations パラメーターだけを抽出する例
次のようなクエリを使うと、Allowed locations パラメーターに設定されたリージョンコードだけを一覧表示できます。
az policy assignment list \
--subscription <サブスクリプションID> \
--query "
[?properties.parameters.listOfAllowedLocations.value != null].
properties.parameters.listOfAllowedLocations.value[]
" \
-o tsv
ポリシー定義によっては、パラメーター名が allowedLocations の場合もあるので、そのときはクエリ内の名前を読み替えてください。
このコマンドの結果として、例えば
francecentral
switzerlandnorth
norwayeast
polandcentral
spaincentral
といった形で、許可されたリージョンコードが 1 行ずつ表示されます。これが、そのサブスクリプションで実際に使えるリージョン一覧です。
許可リージョンに合わせてリソースを作成する具体的な手順
ここまでで「自分のサブスクリプションで利用可能なリージョン」がわかったら、次はその中から実際にリソースを作成できるリージョンを選びます。
重要なのは、次の 3 点です。
- リソース グループの場所 が Allowed locations に含まれていること
- 個々のリソースの場所 も Allowed locations に含まれていること
- 使いたい Azure サービスが、そのリージョンで提供されていること(製品側のリージョン対応)
1. リソース グループを許可リージョンに作成
例として、Allowed locations に francecentral が含まれている場合の CLI 例です。
REGION=francecentral
az group create -n rg-student-demo -l $REGION
ポータルから作る場合は、「リソース グループの作成」画面でリージョンに France Central を選択します。
2. App Service(Web アプリ)を許可リージョンにデプロイ
App Service の場合、リージョンは App Service プランに紐づきます。プランを許可リージョンで作成し、そのプラン上に Web アプリを作るイメージです。
# 必要に応じてリソース プロバイダーを登録
az provider register --namespace Microsoft.Web
# App Service プラン(場所はプランに紐づく)
az appservice plan create \
-g rg-student-demo \
-n plan-student-demo \
-l $REGION \
--sku B1
# Web アプリ本体(プランの場所が使われる)
az webapp create \
-g rg-student-demo \
-p plan-student-demo \
-n mywebapp-<一意な文字列>
ここで $REGION には、先ほど確認した Allowed locations の中から選んだリージョンコードを入れてください。
3. Azure Machine Learning ワークスペースを許可リージョンにデプロイ
Azure Machine Learning ワークスペースも、リージョン指定が必要なリソースの一つです。リージョンごとに利用できる機能が異なる場合があるため、Microsoft の公式ドキュメントや「Products by region」ページもあわせて確認しておくと安心です。
# Machine Learning 用プロバイダー登録(必要に応じて)
az provider register --namespace Microsoft.MachineLearningServices
# CLI 拡張機能(未導入なら)
az extension add -n ml
# ワークスペース作成
az ml workspace create \
-n mlw-student-demo \
-g rg-student-demo \
-l $REGION
ここでも、リソース グループとワークスペースのリージョンが両方とも Allowed locations に含まれていることが重要です。
それでも失敗するときに確認したいポイント
「Allowed locations に載っているリージョンを選んだのに、まだ RequestDisallowedByAzure で落ちる」という場合、次のような別の要因が絡んでいる可能性があります。
1. 別のポリシー(Allowed resource types / SKU 制限)に引っかかっている
Azure Policy には、リージョンではなく「許可するリソースの種類」や「許可する VM SKU」を制限する組み込みポリシーもあります。たとえば以下のようなものです。
- Allowed virtual machine SKUs(特定 SKU 以外を禁止)
- Not allowed resource types(特定のリソース種類を禁止)
- App Service や Cosmos DB など、個別サービスに対するカスタム ポリシー
学生サブスクリプションでは、無料枠や教育目的に合わせて、一部の SKU やリソースが禁止されていることがあります。この場合、リージョン自体は許可されていても、選んだ SKU(例:Premium、Isolated、Free など)が禁止されているためにエラーになることがあります。
2. サービス未提供リージョンや特殊 SKU を選んでいる
Azure の各サービスは、すべてのリージョンで提供されているわけではありません。たとえば新しいリージョンや特殊な地理(Government、China など)では、App Service や Machine Learning など一部のサービスが未提供だったり、一部の機能が制限されていたりします。
そのため、以下を確認してください。
- 「Products by region」ページで、対象サービスが選んだリージョンで利用可能かどうかを確認する。
- 選択している SKU(Free / Basic / Premium など)が、そのリージョンでサポートされているか確認する。
3. リソース グループのリージョンだけが非許可になっている
よくあるパターンとして、「リソースは許可リージョンなのに、リソース グループが非許可リージョン」というものがあります。この場合、リソース グループ作成時点で別の Allowed locations ポリシーに引っかかってしまい、そのグループ配下にリソースを作れません。
対処法として、
- Allowed locations for resource groups のパラメーターを確認する
- 許可リージョンで新たにリソース グループを作り直す
- 新しいリソース グループに対してリソースを再作成する
といった手順を取る必要があります。
4. 冗長構成や子リソースが非許可リージョンを参照している
一部のサービス(例:地理冗長ストレージ、リージョン ペアを利用した DR 構成など)は、「ペア リージョン」や「複製先リージョン」を内部的に利用します。このとき、複製先に指定されるリージョンが Allowed locations に含まれていないと、RequestDisallowedByAzure でブロックされることがあります。
5. リソース プロバイダー未登録
Azure Machine Learning や App Service など、一部サービスは事前にリソース プロバイダーを登録しておく必要があります。
- Azure Machine Learning:
Microsoft.MachineLearningServices - App Service / Function App:
Microsoft.Web
az provider register --namespace Microsoft.MachineLearningServices
az provider register --namespace Microsoft.Web
これ自体は RequestDisallowedByAzure を直接引き起こす原因ではないことが多いですが、同時に発生しているとトラブルシューティングを複雑にするため、先に登録しておくとスムーズです。
アクティビティ ログとポリシーの診断情報を使った深堀り
なぜブロックされたのかをより正確に知りたい場合は、Azure ポータルの 「アクティビティ ログ」 に記録されている失敗イベントを確認するのが有効です。Microsoft のトラブルシューティング記事でも、RequestDisallowedByPolicy エラーの診断手順として推奨されています。
アクティビティ ログで確認するポイント
- デプロイが失敗したリソース グループやサブスクリプションを開く。
- 「アクティビティ ログ」で 状態 = 失敗 のイベントを選択する。
- 「JSON」タブや「生のエラー(Raw error)」タブを開く。
- エラー詳細に含まれる以下の情報を確認する。
policyAssignmentIdpolicyDefinitionIddetails[].code(RequestDisallowedByAzure/RequestDisallowedByPolicyなど)
この情報をもとに、「どのポリシーがどのリソースを拒否しているのか」を特定できます。もし自分でポリシーを変更できない場合でも、サポートや管理者に相談するときの材料として役立ちます。
どうしても必要なリージョンが許可されていない場合の選択肢
Allowed locations を確認しても、どうしても使いたいリージョン(例:East US / Japan East など)が許可一覧に含まれていない場合、学生サブスクリプションの範囲では自分でポリシーを変更することは基本的にできません。
現実的な選択肢としては次のようなものがあります。
1. サポート チケットを起票して相談する
- Azure ポータルの「ヘルプとサポート」から新しいサポート リクエストを作成し、RequestDisallowedByAzure エラーの詳細を添付して相談します。
- 教育機関のテナントに紐付いたサブスクリプションの場合、学校側の IT 管理者経由での問い合わせが必要なこともあります。
2. 教育機関や講師に相談する
授業やオンライン講座のハンズオン手順が「East US でデプロイしてください」となっている場合でも、学生サブスクリプションの制限により同じリージョンが使えないことがあります。その場合は、
- Allowed locations の一覧を共有し、「この中のリージョンに読み替えてもよいか」相談する
- 教材側のテンプレート(ARM/Bicep)やスクリプトのリージョンを許可リージョンに書き換える
といった対応を検討しましょう。
3. 一般の従量課金サブスクリプションなどを併用する
卒業研究や本格的な検証など、どうしても特定リージョンでの検証が必要な場合は、
- 従量課金の Azure サブスクリプション
- Visual Studio サブスクリプション付属の Azure クレジット
など、別のサブスクリプションを併用するという選択肢もあります。ただし、この場合は無料枠の範囲を超えた利用に料金が発生する点には十分注意してください。
再発防止のためのチェックリスト
RequestDisallowedByAzure / RequestDisallowedByPolicy によるデプロイ失敗を避けるために、作業のたびに次のポイントを確認しておくと安心です。
| チェック項目 | 具体的な確認内容 |
|---|---|
| Allowed locations の把握 | ポリシーの Allowed locations / listOfAllowedLocations パラメーターで、自分の許可リージョン一覧を確認したか。 |
| リソース グループの場所 | リソース グループのリージョンが Allowed locations に含まれているか。 |
| リソース本体の場所 | VM / Storage / App Service / ML ワークスペースなど、作成するリソースのリージョンが Allowed locations に含まれているか。 |
| サービスのリージョン対応 | 「Products by region」やサービス ドキュメントで、選んだリージョンで当該サービス・SKU が提供されているか確認したか。 |
| 他のポリシー制限 | Allowed resource types / Allowed virtual machine SKUs など、別ポリシーによる制限を受けていないか。 |
| リソース プロバイダー登録 | Microsoft.Web や Microsoft.MachineLearningServices など、必要なリソース プロバイダーを登録済みか。 |
簡易版チェックリストとしては、次のように覚えておくとよいでしょう。
- □ Allowed locations で 自分の許可リージョン を把握した
- □ リソース グループ と リソース本体 の場所がどちらも許可リージョンになっている
- □ 使いたいサービスがそのリージョンで提供されている
- □ 別ポリシー(場所・リソース種類・SKU)による制限がない
- □ 必要なリソース プロバイダー登録を実施済み
よくあるハマりパターンと具体例
パターン1:Allowed locations に含まれるリージョンでもエラーになる
典型的には次のような原因が多いです。
- リソース グループは許可リージョンだが、VM の SKU が別ポリシーで禁止されている
- Storage Account は許可リージョンだが、冗長化設定(例:GZRS)の内部で非許可リージョンを参照している
- Static Web App など、バックエンド側で別リージョンを使うサービス特有の制限に引っかかっている
こうした場合は、アクティビティ ログとポリシーの割り当てを突き合わせながら、
- SKU を変更する(Free → Basic / Standard など)
- 冗長化やバックアップ オプションを変更する
- 同じサービスを別リージョンで試す
といった調整が必要になります。
パターン2:ポリシー割り当てに Allowed locations が見当たらない
一部の学生サブスクリプションでは、ポリシーがテナント単位や上位の管理グループに割り当てられており、自分のサブスクリプションの「ポリシー > 割り当て」には表示されない場合があります。その場合でも、エラー メッセージとして RequestDisallowedByAzure が出ていれば、内部的には同種のリージョン制限ポリシーが動いていると考えられます。
このケースでは、自分で制限内容を変えることはできないため、テナント管理者や Microsoft サポートにエラー詳細を共有し、対応可能かどうか相談することになります。
パターン3:ハンズオン教材のリージョン指定とぶつかる
クラウド学習教材では、「East US にリソース グループを作成し、同じリージョンに VM をデプロイする」といった前提が書かれていることが多いですが、学生サブスクリプション側で East US が禁止されていると、そのままではハンズオンを完了できません。
この場合、
- 教材のリージョン指定を、自分の Allowed locations の中のリージョンに読み替える
- ARM/Bicep テンプレート内の
locationパラメーターを、許可リージョンに置き換える
といったアプローチで対応できます。ただし、サービスによってはリージョンに依存した機能(例:可用性ゾーン、特定の AI モデルの提供リージョンなど)が絡むため、完全に同じ挙動にならない可能性がある点には注意が必要です。
まとめ:まずは「自分の Allowed locations を見る」ことから始めよう
Azure for Students で発生する RequestDisallowedByAzure エラーの多くは、「サブスクリプションごとに設定されたリージョン制限」に起因しています。Allowed locations ポリシーによって許可されたリージョンは、他の人と同じとは限らず、あなたのアカウント固有の組み合わせになっている場合もあります。
そのため、問題解決の第一歩は次の 2 ステップです。
- ポータルまたは CLI で、自分の Allowed locations(許可リージョン一覧)を特定する
- その中でサービスが提供されているリージョンを選び、リソース グループとリソース本体を同じ場所に作成する
それでもエラーが続く場合は、別ポリシー(リソース種類や SKU の制限)や、冗長化・子リソースのリージョン設定、リソース プロバイダー登録状況などを総合的に見直し、必要に応じてサポートや管理者に相談しましょう。
一度自分のサブスクリプションの制限を把握しておけば、今後の学習や検証で同じトラブルに悩まされることはぐっと減ります。まずは Azure ポータルの「ポリシー > 割り当て」から、あなたの Allowed locations を確認してみてください。

コメント