模擬問題集 › GCP-PCA › 練習問題 9

GCP-PCA 練習問題 9|セキュリティとコンプライアンスのための設計

Professional Cloud Architect・無料公開(全 200 問中 15 問を無料公開中)

問題
あなたの会社は、コンプライアンス監査を実施するために外部の監査法人を雇いました。会社のガバナンス ポリシーでは、外部監査人は単一の Google グループで管理し、そのグループに audit-evidence-bucket という名前の Cloud Storage バケットへの一時的な読み取り専用アクセスを付与することが求められています。アクセスは個々の監査人の ID まで追跡可能でなければならず、また監査業務の期間中(10 月の 1 か月間全体)のみ有効でなければなりません。管理上のオーバーヘッドを避け、会社のガバナンス ポリシーに準拠した、安全なアクセス制御戦略が必要です。 どうすればよいですか?

選択肢と解説

  • ✓
    Google グループに roles/storage.objectViewer ロールを付与する IAM ポリシー バインディングを適用する。このバインディングに、10 月 1 日から 11 月 1 日までアクセスを自動的に許可する時間ベースの IAM Condition を構成する。
  • 2
    サービス アカウントを作成し、バケットに対する roles/storage.objectViewer ロールを付与する。バケット内の各オブジェクトについて、有効期限を 11 月 1 日とする署名付き URL を生成して共有する。
  • 3
    Cloud Scheduler を使用して、10 月 1 日に Google グループへの roles/storage.objectViewer の IAM バインディングを追加する Cloud Run functions のスクリプトと、11 月 1 日にその IAM バインディングを削除するもう 1 つのスクリプトを実行する。
  • 4
    Workforce Identity 連携を使用して、監査人のグループを Google グループにマッピングする。roles/storage.objectViewer ロールをこの Google グループにバインドする。プロバイダでセッションの有効期間を 1 か月に構成する。

解説

【正解】A

【0からの解説】
① 前提知識
・IAM ポリシー バインディング: 「誰に(プリンシパル)」「どのロールを」付与するかの組み合わせです。Google グループをプリンシパルにすると、グループのメンバー全員にロールが付与され、メンバーの追加・削除だけでアクセスを管理できます。
・IAM Conditions: ロールの付与に条件を付ける機能です。日時の属性 request.time を使えば、例えば request.time >= timestamp("…-10-01T00:00:00Z") && request.time < timestamp("…-11-01T00:00:00Z") のように、指定した期間だけ有効な一時的アクセスを宣言的に設定できます。Cloud Storage で IAM Conditions を使うには、バケットで均一なバケットレベルのアクセス(uniform bucket-level access)を有効にします。
・roles/storage.objectViewer(Storage オブジェクト閲覧者): オブジェクトの一覧表示と読み取りだけができる読み取り専用ロールです。
・グループ経由でアクセスしても、Cloud Audit Logs のデータアクセス監査ログ(Cloud Storage では有効化が必要)には実際にアクセスした個人のアカウントが記録されるため、個人単位で追跡できます。

② 要件と制約語の整理
・外部監査人は単一の Google グループで管理する(ガバナンス ポリシー)。
・一時的な読み取り専用アクセス、対象は audit-evidence-bucket。
・個々の監査人の ID まで追跡可能であること。
・10 月の 1 か月間だけ有効であること。
・管理上のオーバーヘッドを避けること。

③ 正解 A が要件をどう満たすか
・Google グループに roles/storage.objectViewer を付与することで、ガバナンス ポリシーどおり「単一のグループ」「読み取り専用」を満たします。
・時間ベースの IAM Condition により、10 月 1 日から 11 月 1 日までの間だけアクセスが有効になり、期限が来れば自動的にアクセスが失効します。誰かが手動でロールを外す必要も、スクリプトを保守する必要もないため、管理上のオーバーヘッドが最小です。
・各監査人は自分の Google アカウントでアクセスするため、監査ログで個人を特定できます。

【誤りの選択肢】
B:署名付き URL は、URL を知っている人なら誰でもアクセスできる「持参人払い」型の仕組みで、アクセスは署名したサービス アカウントの権限で行われるため、個々の監査人の ID まで追跡できません。オブジェクトごとに URL を生成・配布する手間もかかり、新しく追加された証跡ファイルにも対応できません。さらに V4 署名付き URL の有効期限は最長 7 日間であり、1 か月後の 11 月 1 日を有効期限にすること自体ができません。
C:スケジュールに合わせて IAM バインディングを追加・削除すれば動作はしますが、Cloud Scheduler や Cloud Run functions(旧 Cloud Functions)のコードを自前で作成・保守する必要があり、ジョブの失敗で権限が外れないなどのリスクもあります。IAM Conditions で宣言的に実現できることを独自実装で置き換えるもので、「管理上のオーバーヘッドを避ける」要件に反します。
D:Workforce Identity 連携は、外部の ID プロバイダ(IdP)のユーザーを Google Cloud に直接サインインさせる仕組みで、外部 IdP の属性を「Google グループにマッピングする」ものではありません。プロバイダのセッション有効期間は最長でも 12 時間であり、1 か月には設定できません。またセッション時間はアクセス期間(10 月中のみ)を制限する仕組みでもないため、期間限定アクセスの要件を満たせません。IdP 連携の構築という不要な管理負荷も発生します。

【参考】
IAM Conditions の概要 | Identity and Access Management (IAM)
Identity and Access Management | Cloud Storage
← 練習問題 8練習問題 10 →
GCP-PCA の模擬問題集は全 200 問

本番形式の練習テスト 4 回を、試験モード/演習モードで受験できます。 全問に解説付き、ドメイン別の弱点分析にも対応。模試プラン(月額 ¥980)からご利用いただけます。

GCP-PCA の模試を受ける料金プランを見る

GCP-PCA の無料公開問題

問題 1問題 2問題 3問題 4問題 5問題 6問題 7問題 8問題 9問題 10問題 11問題 12問題 13問題 14問題 15