資格道場
記事法人
Google CloudLevel 4

難易度は Level 1(やさしめ)〜Level 5(難関) の5段階です。

GCP PDOのサンプル問題(本番形式・解説付き)

GCP PDO(Google Cloud・Professional Cloud DevOps Engineer(PDO))の出題形式を、実際の問題で確かめられます。ここに掲載する5問は、無料の会員登録で解ける模試 第1回(55問)の冒頭から抜粋したオリジナル問題です。当サイトは全550問を本番CBT準拠の形式で収録しており、この5問はそのごく一部にあたります。

設問1

ある小売企業の DevOps チームは、マイクロサービス 40 本をサービス単位の自律したチームで開発している。各サービスは dev・staging・prod の 3 環境を持ち、開発者が本番リソースを操作できない状態と、サービス廃止時にまとめて消せる構成が求められている。この要件を満たす Google Cloud のリソース階層はどれか。

  • 組織の直下に 1 つのプロジェクトを置き、その中に 40 本のサービスと 3 環境のリソースを作成する構成
  • 組織の下に部門フォルダとサービスごとのアプリケーションフォルダを置き、その下に dev・staging・prod の環境別プロジェクトを作成する構成(正解)
  • 組織の直下に開発者 1 人ごとの恒久プロジェクトを並べ、各開発者が自分のプロジェクトの中でサービスと 3 環境のリソースを作成する構成
  • 組織の下に環境ごとのプロジェクトを 3 つだけ置き、サービスの区別はリソース名の接頭辞と課金ラベルで表現する構成

解説

本文は DevOps Engineer 試験で推される既定を application-centric と環境別の組み合わせ、すなわち Org → Folder(部門) → Folder(application) → Project(app-dev / app-staging / app-prod) としており、デプロイの単位と権限の単位が一致すること、本番プロジェクトだけに厳しい組織ポリシーを掛けられること、アプリを廃止するときフォルダごと消せることが理由です。1 プロジェクトにすべてのアプリと全環境を入れてラベルで区別する構成は、ラベルが IAM・クォータ・API 有効化の境界にならないため開発者が本番リソースを操作でき、必ず誤りです。開発者 1 人につき 1 プロジェクトは隔離としては最強でも、組織ポリシーと課金の管理コストが跳ね上がるため恒久環境としては不適です。環境ごとの 3 プロジェクトに接頭辞とラベルで詰め込む構成も、境界がプロジェクトである以上サービス単位の権限分離とフォルダごとの廃止を実現できません。

設問2

ある製造業の組織では、組織レベルで `constraints/compute.vmExternalIpAccess` を適用して VM の外部 IP を禁止している。検証用の 1 プロジェクトだけ、期間を限って外部 IP を許可したいという要望が出た。Google Cloud の階層の性質を踏まえた対応はどれか。

  • 対象プロジェクトで組織ポリシーの `inheritFromParent` を切り、そのプロジェクト用の制約を上書きする(正解)
  • 対象プロジェクトの IAM ポリシーで、組織から継承したロールのうち該当の権限だけを引き算して除外する
  • 対象プロジェクトのファイアウォールで下り(egress)の許可ルールを優先度つきで追加し、期間を限って外部 IP の付与を通す
  • 対象プロジェクトを組織のない(no-org)状態へ移動し、既存の IAM を残したまま制約の対象から外す

解説

本文のとおり組織ポリシーは上から下へ継承しますが、下位で `inheritFromParent: false` による上書きが可能で、ここが IAM と決定的に違う点です。IAM は上から下へ継承し、その継承は取り消せず下位で引き算はできないため、IAM で除外する案は成り立ちません。ファイアウォールは通信の可否を決めるもので外部 IP の付与自体は止められず、逆に許可もできないため、外部 IP の制約の代わりになりません。プロジェクトの移動は `gcloud beta projects move` でフォルダ間に行うもので、移動により継承される IAM と組織ポリシーが変わるため、制約回避の手段として扱うのは適切ではありません。

設問3

ある企業が別会社を合併し、相手側の Google Cloud 組織にある VPC と自社 VPC の間で RFC1918 のプライベート通信を行いたい。2 つの VPC の CIDR は重複しておらず、双方のネットワーク管理者がそれぞれの VPC を引き続き所有する。適切な接続方式はどれか。

  • 自社のホストプロジェクトで Shared VPC を有効化し、相手組織のプロジェクトをサービスプロジェクトとして紐付ける
  • 相手組織のサービス側で service attachment を公開し、自社 VPC に Private Service Connect のエンドポイントを作成する
  • 自社 VPC にサブネットを追加し、相手組織のプロジェクトへ `roles/compute.networkUser` をサブネット単位で付与する
  • 両方の VPC で VPC Network Peering を明示的に作成し、ルートは交換されてもファイアウォールルールは交換されないため両側で許可を設定する(正解)

解説

本文は、組織をまたぐ、または別組織のパートナーと繋ぐ場面には VPC Network Peering が向くとし、ルートは交換されてもファイアウォールルールは交換されないため両側で許可が要ると述べています。Shared VPC は同一組織内でしか使えないため、組織をまたぐ要件では不適です。Private Service Connect は消費側から提供側へ向かう片方向で、サービスの入口を内部 IP として公開する仕組みであり、対等な相互通信の要件には合いません。`roles/compute.networkUser` はサブネット単位で Shared VPC の利用を許可するロールで、同一組織内の Shared VPC が前提となるため、この場面では使えません。

設問4

ある保険会社が、外部ベンダーの SaaS へ社内ネットワークからプライベートに接続したい。自社 VPC とベンダー側のネットワークは CIDR が重複しており、通信は自社側からベンダー側への一方向だけである。適切な方式はどれか。

  • VPC Network Peering をベンダー側 VPC と作成し、交換されたルートで重複する CIDR を解決する
  • Shared VPC のホストプロジェクトにベンダーのプロジェクトを紐付け、自社サブネットの利用を許可する
  • Private Service Connect のエンドポイントを自社 VPC の内部 IP として作成し、ベンダーの service attachment へ接続する(正解)
  • 自社 VPC のサブネットを増設して IP 空間全体を再設計し、ベンダー側の CIDR と重複しない範囲へ既存リソースを順次移行する

解説

本文は Private Service Connect の特徴として、消費側 VPC に内部 IP アドレスのエンドポイントを作ること、CIDR の重複があっても使えること、片方向で消費側から提供側へ向かうことを挙げ、パートナー SaaS への接続で使うとしています。VPC Network Peering は CIDR が重複していると作成できないため、この場面では選べません。Shared VPC は同一組織内でホストのサブネットをサービスプロジェクトへ貸す仕組みで、別組織のベンダーには適用できません。IP 空間の再設計は本文が「IP が重複している 2 拠点を繋ぐ」場面での代替として挙げるものですが、PSC が使える場面で既存リソースを移す必要はありません。

設問5

ある金融機関はホストプロジェクトの Shared VPC を複数のサービスプロジェクトに貸している。経理チームのプロジェクトからは経理用サブネットにしか VM を作れない状態にしたい。ネットワーク管理者が付与すべきロールと粒度はどれか。

  • 組織レベルで `roles/compute.xpnAdmin` を経理チームへ付与し、Shared VPC の有効化とサービスプロジェクトの紐付けを任せる
  • 経理用サブネットに対してのみ `roles/compute.networkUser` を経理チームのメンバーへサブネット単位で付与する(正解)
  • ホストプロジェクト全体に対して `roles/compute.networkUser` を経理チームへ付与し、ファイアウォールで経理以外の通信を拒否する
  • 経理チームのプロジェクトに基本ロールの Editor を付与し、IAM Conditions で `resource.name.startsWith(...)` の条件を付ける

解説

本文は、Shared VPC で付与するロールは組織レベルの `roles/compute.xpnAdmin` とサブネット単位の `roles/compute.networkUser` であり、サブネット単位で `networkUser` を絞ることで「経理チームのプロジェクトは経理サブネットにしか VM を作れない」を実現できると述べています。`roles/compute.xpnAdmin` は Shared VPC を有効化しサービスプロジェクトを紐付ける権限で、サブネットの利用範囲を絞る用途ではありません。ホストプロジェクト全体への `networkUser` はすべてのサブネットの利用を許してしまい、ファイアウォールは通信の可否であってサブネットへの VM 作成自体を止められません。基本ロールの Editor は本番では使わないロールで、`iam.serviceAccounts.actAs` を含むため権限昇格の余地が生まれます。

続きは、会員登録なしでそのまま50問解けます。採点と解説つきで、上と同じ本物の問題です。

登録なしで50問解く