【正解】B
【0からの解説】
①前提知識
・リソース階層: Google Cloud のリソースは「組織 → フォルダ → プロジェクト → リソース」の階層で管理されます。上位で設定した組織のポリシーは、下位のフォルダやプロジェクトに継承されます。
・組織ポリシー サービス: 組織全体でリソースの構成に制約をかける仕組みです。リソース ロケーション制約(constraints/gcp.resourceLocations)は、リソースを作成できるロケーションを「許可する値(allowed)」または「拒否する値(denied)」のリストで制限するリスト型の制約で、in:eu-locations のような値グループでまとめて指定することもできます。
②要件の整理
・「すべての」リソースが EEA 内のロケーションを使うようにする
・プロジェクトは複数のフォルダに分散している(今後フォルダやプロジェクトが増える可能性もある)
・この問題で問われているのは「どの階層に設定するか(組織 or フォルダ)」と「許可リストか拒否リストか」の 2 点です。リソース ロケーション制約を使うこと自体は問題文で決まっているので、この 2 つの軸で 4 つの選択肢を比べます。
③正解 B の理由
・設定する階層: 組織レベル(階層の最上位)で設定すれば、既存のすべてのフォルダ・プロジェクトだけでなく、今後作成されるフォルダ・プロジェクトにも自動で継承されます。フォルダごとに設定すると、設定漏れや、組織直下に作られたプロジェクトが対象外になるリスクがあります。
・許可リスト方式: 許可する EEA 内のロケーションを列挙する(allowlist)方式なら、それ以外はすべて拒否されます。新しいリージョンが追加されても自動では許可されないため、確実に EEA 内に限定できます。
【誤りの選択肢】
A:許可リスト方式は正しいものの、フォルダ レベルでは各フォルダに個別に設定する必要があり、新設フォルダや組織直下のプロジェクトへの設定漏れが起こり得ます。「すべてのリソース」を確実に制限するには組織レベルの B に劣ります。
C:フォルダ レベルである点に加え、拒否リスト方式は EEA 外のロケーションをすべて列挙し続ける必要があり、Google Cloud に新しいリージョンが追加されると、それが拒否リストに無い限り許可されてしまいます。漏れが生じやすく管理負荷も高い方法です。
D:組織レベルである点は正しいものの、拒否リスト方式のため C と同じく新リージョン追加時に漏れが生じ、要件を確実に満たせません。許可リスト方式の B が適切です。
【参考】
リソース階層について | Resource ManagerCloud Storage の組織のポリシーに関する制約