Azure認定資格 WEB問題集&徹底解説
AZ-104:Microsoft Azure Administrator
問題文と選択肢
sub-prod には次の 3 つのリソースグループがあり、それぞれ次のリソースロックが設定されています。
- rg-guard(セキュリティ関連リソース用): ロックの種類は「削除不可 (CanNotDelete)」
- rg-runbook(運用自動化リソース用): ロックの種類は「読み取り専用 (ReadOnly)」
- rg-sandbox(開発検証用): ロックなし
また、sub-prod スコープには Azure Policy「必須タグ: CostCenter」が割り当てられており、効果 (Effect) は「追加 (Append)」に設定されています。
情報システム部の山本太郎は、rg-guard・rg-runbook・rg-sandbox の 3 つのリソースグループすべてに対して、所有者 (Owner) ロールを個別に割り当てられています。
山本が Azure portal から、タグを指定せずに新しい仮想ネットワークを作成しようとするとき、適用されているロックとポリシーを踏まえると、作成に成功するリソースグループの組み合わせはどれですか。
- rg-runbook と rg-sandbox
- rg-guard と rg-sandbox
- rg-sandbox のみ
- rg-guard、rg-runbook、rg-sandbox のすべて
A. rg-runbook と rg-sandbox
2 種類のロックの効果を逆に覚えた場合の答えです。
ReadOnly(読み取り専用)は、正規ユーザーの権限を閲覧者 (Reader) ロール相当に制限するロックで、既存リソースの更新だけでなく新しいリソースの作成も拒否します。リソースグループにかけたロックは配下に追加されるリソースにも継承されるため、rg-runbook では仮想ネットワークを作成できません。
一方、CanNotDelete(削除不可)は読み取りと変更を許すので、rg-guard では作成に成功します。rg-runbook を含み rg-guard を外したこの組み合わせは誤りです。
B. rg-guard と rg-sandbox
rg-guard のCanNotDelete は「削除」だけを禁止するロックで、読み取りと変更(新規作成を含む)は許可されます。rg-sandbox はロックがないため、所有者の山本は問題なく作成できます。
sub-prod の Azure Policy は効果がAppend(追加)で、タグを指定しない作成要求に対しては CostCenter タグを要求に追加するだけです。Append が Deny のように要求を拒否するのは、要求に含まれる既存の値を別の値で上書きすることになる場合に限られ、本問ではタグを指定していないのでこの例外は起きません。
よって作成に成功するのはrg-guard と rg-sandboxで、これが正解です。
C. rg-sandbox のみ
CanNotDelete を「変更も禁止するロック」と誤解するか、Append ポリシーを「タグが無い作成を拒否する」と誤解した場合の答えです。
CanNotDelete は読み取りと変更を許し、削除だけを禁止するため、rg-guard での新規作成は成功します。また Append はタグを付与して要求を通すだけで、作成自体は拒否しません(もし Append が拒否するなら rg-sandbox も失敗するはずで、この選択肢は自己矛盾します)。
D. rg-guard、rg-runbook、rg-sandbox のすべて
「3 つのリソースグループすべてで所有者だから、何でもできる」と考えた場合の答えです。
リソースロックはすべてのユーザーのアクセス許可をオーバーライドする仕組みで、RBAC とは異なり所有者を含むすべてのユーザー・ロールに制限を適用します。所有者はロックを解除する権限(Microsoft.Authorization/locks/*)は持っていますが、ロックがかかったままでは rg-runbook での作成は ReadOnly によって拒否されます。
CanNotDelete は「消すな」だけ、ReadOnly は「触るな(作るな)」。ロックの前では Owner も無力。
正解への思考ルート
問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。| 要件 | 判断ポイント |
|---|---|
| rg-guard は削除不可 (CanNotDelete) ロック | CanNotDelete は読み取りと変更を許し、削除だけを禁止する。新規作成は成功する →選択肢(C)を消す |
| rg-runbook は読み取り専用 (ReadOnly) ロック | ReadOnly は閲覧者ロール相当に制限し、新規作成も拒否する。ロックは配下に追加するリソースにも継承される →選択肢(A・D)を消す |
| 山本は 3 つのリソースグループすべてで所有者 (Owner) | ロックはユーザーのアクセス許可より優先される。Owner でもロックがある限り拒否される →選択肢(D)を消す |
| sub-prod に「必須タグ CostCenter」ポリシー(効果は Append)、タグを指定せずに作成 | Append はタグを要求に追加するだけで作成を拒否しない(拒否になるのは既存の値を別の値で上書きする場合のみ)。rg-sandbox は成功 →選択肢(B)が正解 |
ひっかけポイント
- 「ReadOnly は既存リソースの変更を止めるだけ、CanNotDelete は変更全般を止める」と逆向きに覚えていると選択肢 A を選んでしまう。CanNotDelete は名前どおり「削除できない」だけ
- 「必須タグ」という名前からDeny(タグが無ければ拒否)を連想しやすいが、効果は Append。効果の種類で結果が変わるので、ポリシー名ではなく効果を読む
- Owner は「すべての権限」を持つため選択肢 D に引かれるが、ロックはすべてのユーザー権限をオーバーライドする。Owner にできるのは「ロックを外してから作業する」ことであって、ロックを無視することではない
- ReadOnly ロックはコントロールプレーン(Azure Resource Manager)の操作を止める。リソースの作成は Resource Manager への書き込み要求なので確実に止まる(データプレーンの読み書きとは区別する)
出題バリエーション
同じ知識が本番では条件を変えて出題されます。| 問題文がこう変わったら | 正解はこう変わる |
|---|---|
| 「ポリシーの効果がDeny(CostCenter タグが無ければ拒否)」 | タグを指定しない作成はどのリソースグループでも失敗する(ロックの有無に関係なくポリシーで拒否)。 |
| 「作成要求の同じフィールドに、Append が設定しようとする値とは異なる値が既に指定されている」 | Append が要求の値を別の値で上書きすることになるためDeny として動作し、作成が拒否される。なおタグの付与・修正には Append ではなくModify 効果の使用が推奨されている。 |
| 「rg-guard の既存の仮想ネットワークを削除しようとする」 | CanNotDelete によって拒否される(rg-runbook も ReadOnly で拒否、rg-sandbox だけ成功)。 |
| 「rg-runbook で既存の仮想マシンを起動・再起動しようとする」 | 起動・再起動は POST 要求のため、ReadOnly ロックで拒否される(「変更しないように見える操作」も止まる定番の例)。 |
| 「山本が先に rg-runbook のロックを削除してから作成する」 | Owner はロックを削除する権限を持つため、ロック解除後は rg-runbook でも作成に成功する。 |
リファレンス
この問題を解くために必要な知識を扱う公式ドキュメントです。| 知識項目 | 公式ドキュメント |
|---|---|
| CanNotDelete と ReadOnly の効果・ロックの継承・ロックがユーザー権限より優先されること | インフラストラクチャを保護するためにAzure リソースをロックする |
| Append 効果の評価タイミングと Deny として動作する条件・タグには Modify を推奨 | Azure Policy の定義における append 効果 |
sub-prod には次の 3 つのリソースグループがあり、それぞれ次のリソースロックが設定されています。
- rg-guard(セキュリティ関連リソース用): ロックの種類は「削除不可 (CanNotDelete)」
- rg-runbook(運用自動化リソース用): ロックの種類は「読み取り専用 (ReadOnly)」
- rg-sandbox(開発検証用): ロックなし
また、sub-prod スコープには Azure Policy「必須タグ: CostCenter」が割り当てられており、効果 (Effect) は「追加 (Append)」に設定されています。
情報システム部の山本太郎は、rg-guard・rg-runbook・rg-sandbox の 3 つのリソースグループすべてに対して、所有者 (Owner) ロールを個別に割り当てられています。
山本が Azure portal から、タグを指定せずに新しい仮想ネットワークを作成しようとするとき、適用されているロックとポリシーを踏まえると、作成に成功するリソースグループの組み合わせはどれですか。
- rg-runbook と rg-sandbox
- rg-guard と rg-sandbox
- rg-sandbox のみ
- rg-guard、rg-runbook、rg-sandbox のすべて
次の問題前の問題
会員機能
お役立ち情報
姉妹サイト
AWS
- CLF:クラウドプラクティショナー
- SAA:ソリューションアーキテクト-アソシエイト
- AIF:AIプラクティショナー
- SOA:CloudOpsエンジニア-アソシエイト
- DVA:デベロッパー-アソシエイト
- DEA:データエンジニア-アソシエイト
- MLA:機械学習エンジニア-アソシエイト
- SAP:ソリューションアーキテクト-プロフェッショナル
- DOP:DevOpsエンジニア-プロフェッショナル
- AIP:生成AIデベロッパー-プロフェッショナル
- SCS:セキュリティ-専門知識
Microsoft Azure
- AZ-900:Microsoft Azure Fundamentals
- AZ-104:Microsoft Azure Administrator
- AI-901:Microsoft Azure AI Fundamentals
- DP-900:Microsoft Azure Data Fundamentals