Azure for Studentsでストレージアカウントを作ろうとすると「Resource was disallowed by Azure…」と表示され、Central USやEast USに変えても失敗することがあります。これは多くの場合、サブスクリプションに割り当てられたリージョン制限ポリシーが原因です。許可リージョンの確認方法と、確実に作成する手順をまとめます。
現象:Azure for Students でストレージアカウントが作成できない
Azure ポータルから「ストレージ アカウント」を新規作成しようとすると、作成ボタンを押した直後(または検証後)にエラーで失敗し、次のような文言が表示されることがあります。
Resource ‘○○○’ was disallowed by Azure: This policy maintains a set of best available regions where your subscription can deploy resources.
場所(リージョン)を Central US / West US / East US などに変更しても同じエラーが出る場合、原因は「そのリージョンがストレージに未対応」ではなく、サブスクリプション側のポリシーで“許可されていないリージョン”を選んでいるケースが濃厚です。
まず確認しておきたいこと
- Azure 側で作成を拒否している=作成フォームの入力ミスではない
- 同じ操作でも、昨年度の Azure for Students では通ったのに、今年は弾かれることがある
- ドロップダウンに表示されるリージョン一覧は「一般的に使える候補」であり、あなたのサブスクリプションで許可されているとは限らない
結論:これは Azure Policy(ポリシー)によるリージョン制限
エラー文に policy という言葉が含まれている場合、Azure Resource Manager(ARM)のデプロイ処理で Azure Policy が評価され、拒否(Deny)されたことを示しています。学生向けや無償クレジット付きのサブスクリプションでは、利用できるリージョンがあらかじめ制限されることがあり、許可一覧にないリージョンを選ぶと作成できません。
| エラーの見え方 | 主な原因 | 対処の方向性 |
|---|---|---|
| Resource was disallowed by Azure / policy maintains a set of best available regions… | Azure Policy(許可リージョン制限)の Deny | 許可リージョンを確認し、その中から選んで作成 |
| Location is not available for subscription / This location is not available… | サブスクリプションでそのリージョンが提供対象外、または登録状態の問題 | 別リージョンを選ぶ/リソースプロバイダー登録や契約種別を確認 |
| Quota exceeded / Request limit exceeded | コア数・インスタンス数・ストレージ等のクォータ上限 | クォータ確認、削除、上限引き上げ申請(可能なプランのみ) |
なぜ今年は作成できないのか:サブスクリプション更新で「許可リージョンのセット」が変わることがある
Azure for Students は年度の切り替えや契約の更新、再発行などが入ると、同じ「学生向け」でも 適用される制限(ポリシー)や許可リージョンのセットが変わることがあります。過去に問題なく作れたのは、当時は制限が緩かった、または別の許可リージョンが割り当てられていた可能性が高いです。
学生向けプランでリージョンが制限される背景としては、次のような理由が挙げられます。
- コスト管理:無償クレジットの範囲で、比較的安定して提供できるリージョンに集中させる
- コンプライアンス:教育機関・国/地域の要件(データ所在地など)に合わせやすくする
- 容量・混雑回避:一部リージョンの混雑時に、学生サブスクリプションの新規作成を抑制する
ポイントは「US リージョンを選べば何とかなる」という話ではなく、あなたのサブスクリプションに割り当てられた“許可リスト”に入っているかどうかがすべて、という点です。許可が数リージョン(例:3〜5程度)に絞られているケースもあります。
最短で解決する方法:Azure Policy で許可リージョンを確認し、その中から選ぶ
対処はシンプルで、許可されているリージョンを特定し、そのリージョンでストレージアカウントを作成するだけです。まずは Azure ポータルで許可リストを確認しましょう。
Azure ポータルで許可リージョンを確認する手順
- Azure ポータルにサインイン(複数サブスクリプションがある場合は Azure for Students を選択)
- 検索バーで 「ポリシー」(Azure Policy)を開く
- 左メニューで 「作成」→「割り当て」(Authoring → Assignments)を開く
- スコープ(Scope)が対象サブスクリプションになっていることを確認し、一覧を検索する
- 次のような名前の割り当てを探す(似た名前もあります)
- Allowed resource deployment regions
- Allowed locations
- 「location」「地域」「リージョン」などを含むポリシー
- 該当ポリシーを開き、パラメーター(Parameters)に設定されている 許可リージョンの一覧を確認する
- ストレージアカウント作成時に、その一覧に含まれるリージョンを選択して再作成する
| チェック項目 | どこを見る | 判断のコツ |
|---|---|---|
| 割り当て(Assignments)の有無 | Azure Policy → 割り当て | 「Allowed locations」「Allowed resource deployment regions」があれば最優先で確認 |
| 許可リージョン一覧 | 割り当て詳細 → Parameters | 表示されるリージョンが「作成画面の候補」と一致しないことがある |
| 複数ポリシーの重なり | 同じスコープで複数割り当てがないか | 許可されるリージョンは「すべての制限を満たす範囲(積集合)」になる |
ストレージアカウント作成で確実に通すための実務的コツ
- いったん「許可リストの先頭のリージョン」で作る:最初は迷わず 1 つ決めて作成し、作成後に要件を満たすか確認する
- リソースグループも同じリージョンで作っておく:リソースグループ自体の場所は課金に直結しませんが、環境によっては「リソースグループの場所も許可リストに含める」ポリシーが併用されることがあります
- リージョン名の表記ゆれに注意:例)「Japan East」と「japaneast」など。IaC(Bicep/Terraform)では内部表記が必要な場合があります
ポリシーが見つからない・許可リージョンが分からないときの調べ方
「ポリシー(割り当て)」を見てもそれらしい項目が出ない場合、次のどちらかが多いです。
- 割り当てが 上位スコープ(管理グループなど)で行われており、表示フィルターや権限の関係で見えにくい
- ポリシー名が想定と違い、検索キーワードに引っかかっていない
失敗したデプロイの詳細から「どのポリシーで弾かれたか」を特定する
最も確実なのは、失敗したデプロイのエラー詳細を見る方法です。
- ストレージアカウント作成を失敗させたリソースグループ(または「通知」から)へ移動
- 「デプロイ」(Deployments)を開き、失敗したデプロイを選択
- エラーの詳細(Details / Operation details)を開き、JSON に近い詳細情報を表示
- policyAssignment / policyDefinition / allowed locations などの記載を探す
ポリシー拒否の場合、詳細の中に次のような情報が含まれることが多いです(表示は環境により異なります)。
- どの割り当て(Assignment)で拒否されたか
- どの定義(Definition)に違反したか
- どのパラメーター(許可リージョン)を満たしていないか
| 調査ポイント | 場所 | 見つかるもの |
|---|---|---|
| デプロイの失敗詳細 | リソースグループ → デプロイ | 拒否したポリシー名、割り当てスコープ、エラーコード(RequestDisallowedByPolicy など) |
| アクティビティ ログ | サブスクリプション/リソースグループ → アクティビティ ログ | ポリシー評価結果や失敗理由の要約 |
| Policy Insights(利用できる場合) | ポリシー → 準拠性/インサイト | どのリソースがどのポリシーに違反したかの一覧 |
CLI / PowerShell で許可リージョンを確認する(GUI が見づらいときに便利)
授業や演習で素早く原因を切り分けたい場合、コマンドで確認できると楽です。ここでは代表例として Azure CLI と PowerShell(Az モジュール)の例を紹介します。権限が不足している場合は一覧が取得できないことがあります。
Azure CLI の例
まずサブスクリプション ID を確認し、ポリシー割り当て一覧から「Allowed」「location」などを含むものを探します。
az account show --query id -o tsv
# 割り当て一覧(サブスクリプションスコープ)
az policy assignment list --scope /subscriptions/ -o table
# 表示名で絞り込み(例)
az policy assignment list --scope /subscriptions/
--query "[?contains(displayName,'Allowed') || contains(displayName,'location')].{name:name,displayName:displayName}" -o table
# 割り当ての詳細(parameters を確認)
az policy assignment show --name --scope /subscriptions/
出力の中に parameters や listOfAllowedLocations のような項目があれば、そこが許可リージョンの実体です。
PowerShell(Az)の例
# サブスクリプションスコープの割り当てを取得
Get-AzPolicyAssignment -Scope "/subscriptions/<SUBSCRIPTION_ID>" |
Where-Object { $_.Properties.DisplayName -match "Allowed|location|地域|リージョン" } |
Select-Object Name, @{n="DisplayName";e={$_.Properties.DisplayName}}
# 割り当ての詳細(パラメーター確認)
$pa = Get-AzPolicyAssignment -Name "" -Scope "/subscriptions/"
$pa.Properties.Parameters
演習用のテンプレート(Bicep / ARM / Terraform)を使っている場合は、location を変数化し、許可リージョンだけを選ぶ運用にしておくと、毎年の更新で許可リストが変わっても対応しやすくなります。
よくある落とし穴:リージョンを直したのに通らないとき
「許可リージョンを選んだはずなのにまだ失敗する」場合は、リージョン以外の制限や、別の場所(リソースグループ、テンプレート側の location、既定値)に原因が残っていることがあります。
| つまずきポイント | 具体例 | 解決策 |
|---|---|---|
| テンプレート/スクリプト側の location が別リージョン | Bicep/ARM/Terraform の既定値が East US のまま | location を変数化し、許可リストの値を入れる。デプロイ前にパラメーターを確認 |
| リソースグループ作成自体が制限に引っかかる | 「リソースグループの場所」も Allowed locations に含めるポリシーがある | リソースグループも許可リージョンで新規作成してやり直す |
| 複数ポリシーが同時に効いている | Allowed locations に加えて、特定リソース種別だけ別制限がある | デプロイ失敗詳細から「どのポリシーが拒否したか」を突き止め、条件を満たす |
| リージョンは許可だがサービス側の提供状況が違う | 一部機能(例:ZRS/特定冗長化)がそのリージョンで未対応 | 冗長化オプションやアカウント種別を標準(既定)に戻して作成し、後から要件に合わせる |
希望リージョンが許可リストにない場合:現実的な選択肢
Allowed locations を見ても「どうしても使いたいリージョン」が含まれていないことがあります。この場合、そのサブスクリプションのルール自体を変える必要があるため、個人の学生サブスクリプションでは自力での解決が難しいことが多いです。
| 選択肢 | できること | 注意点 | おすすめ度 |
|---|---|---|---|
| 許可リージョン内で運用に寄せる | すぐにストレージアカウントを作成できる | 教材や検証で「指定リージョン」が前提だと調整が必要 | 最優先 |
| 教育機関の管理者に相談(組織テナントの場合) | 管理者がポリシー変更できる可能性がある | 権限・ガバナンス方針次第。学生側で勝手に変更はできない | 条件次第 |
| Microsoft サポートへ相談(個人の場合) | プランや制限の確認、別案内の可能性 | 学生プランの仕様として変更不可の場合もある | 必要なら |
| 別サブスクリプションを用意(有償/別プラン) | 希望リージョンを使える可能性が高い | 課金が発生する。授業用なら学校の提供枠がないか先に確認 | 最終手段 |
補足:リージョン制限があっても「使い方」で困りにくくする設計のヒント
学生の演習では「とりあえず動けばOK」になりがちですが、リージョン制限がある環境ほど、最初に設計を少し工夫すると後が楽になります。
ヒント:リージョンを“固定”ではなく“選択式”にする
IaC(Bicep / Terraform)やスクリプトで location を直書きすると、許可リージョンが変わった瞬間に詰みます。location を変数(パラメーター)化し、許可リージョンから選べる作りにしておくのが鉄板です。
ヒント:授業の手順書は「許可リージョン確認」を最初に入れる
毎年トラブルになりやすいポイントなので、演習手順の冒頭に「Azure Policy で Allowed locations を確認してから進める」を入れておくと、受講者の詰まりが激減します。
さらに深掘りしたい人向け:公式ドキュメントを探すときのキーワード
背景理解や、別のポリシー制限(SKU 制限、タグ強制、パブリックアクセス制限など)にも応用したい場合は、Microsoft Learn で次のキーワードを検索すると整理しやすくなります。
- Azure Policy overview(Azure Policy 概要)
- Policy assignment / scope(割り当て、スコープ)
- Allowed locations / Allowed resource deployment regions
- RequestDisallowedByPolicy(ポリシー違反の代表的エラー)
- Policy compliance / Policy Insights(準拠性、インサイト)
よくある質問
Central US / East US に変えてもダメです。US のどれかなら通るのでは?
通るかどうかは「US かどうか」ではなく、あなたのサブスクリプションの許可リストに含まれているかで決まります。US の複数リージョンがまとめて禁止されているケースもあります。
ポータルの一覧に許可リージョンが出てきません
作成画面の候補は全ユーザー向けの一般的な一覧で、あなたの許可リストが反映されていないことがあります。先に Azure Policy の Parameters で許可リストを見て、そこにあるリージョン名を選ぶのが確実です。
ポリシーを自分で解除できますか?
権限とスコープ次第です。組織テナントでは管理グループで割り当てられていることが多く、学生ユーザーが解除するのは現実的ではありません。個人の Azure for Students でも、仕様として制限が固定されている場合があります。まずは 許可リージョンで運用し、どうしても必要なら管理者やサポートへ相談する流れがおすすめです。
ストレージアカウント以外(VM など)も同じように作れませんか?
Allowed locations のポリシーは、ストレージに限らず多くのリソースに影響します。まずは 許可リージョンの把握を行い、演習で使うリソースを同じリージョンに寄せるとスムーズです。
まとめ:許可リージョンを特定してから作れば解決できる
Azure for Students でストレージアカウントが作成できない場合、原因の多くは リージョン制限ポリシー(Allowed locations)です。Azure Policy の割り当てから許可リージョン一覧を確認し、その中のリージョンを選んで作成すれば通ります。年度更新で条件が変わっても慌てないよう、location を変数化するなど、運用と手順を整えておくのがコツです。

コメント