Azure認定資格 WEB問題集&徹底解説

AZ-104:Microsoft Azure Administrator

正解 B問題
分野1:Azure ID とガバナンスの管理 タスクステートメント1.3:Azure サブスクリプションとガバナンスの管理
合格に向けて、もっと深く学習する
豊富な問題と詳細なAzureサービス解説を、1 時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
精密機器メーカーの北斗精密工業は、単一の Azure サブスクリプション「sub-prod」で全社のクラウド基盤を運用しています。
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 のすべて
解説 頻出度★★★★★
この問題は、「CanNotDelete × ReadOnly × ロックなし × Append ポリシー × Owner ロール」が重なった状況で、CanNotDelete は削除だけを止めて作成は許す/ReadOnly は作成も止める/ロックは Owner の権限より優先される/Append はタグを足すだけで作成を拒否しないを 1 つずつ正しく当てはめられるかがポイント

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 でも作成に成功する。
関連サービスの解説 Azure Virtual Network (VNet)
Azure Policy
リソースロック
リソースグループ
リファレンス この問題を解くために必要な知識を扱う公式ドキュメントです。
知識項目 公式ドキュメント
CanNotDelete と ReadOnly の効果・ロックの継承・ロックがユーザー権限より優先されること インフラストラクチャを保護するためにAzure リソースをロックする
Append 効果の評価タイミングと Deny として動作する条件・タグには Modify を推奨 Azure Policy の定義における append 効果
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 100%
No.12 解説
精密機器メーカーの北斗精密工業は、単一の Azure サブスクリプション「sub-prod」で全社のクラウド基盤を運用しています。
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 のすべて

(会員限定)当問題の評価をお願いします。改善に活用します。