模擬問題集 › GCP-PDE › 練習問題 2

GCP-PDE 練習問題 2|データ処理システムの設計

Professional Data Engineer・無料公開(全 200 問中 15 問を無料公開中)

問題
あなたは、医療データと財務データを含む新しい BigQuery テーブルのデータ ガバナンス戦略を定義しています。臨床研究者が財務情報を含まない患者の医療データにアクセスできるようにし、一方で経理チームには最小限の患者識別子とともに財務データのみにアクセスできるようにする、スケーラブルなソリューションが必要です。どうすればよいですか?

選択肢と解説

  • ✓
    IAM 権限を使用して、BigQuery テーブルに列レベルのセキュリティ ポリシーを実装する。
  • 2
    個人を特定できる情報(PII)、財務データ、匿名化された医療データ用に別々のテーブルを作成する。IAM 権限を使用して各テーブルへのアクセスを制御する。
  • 3
    IAM 権限を使用して、BigQuery テーブルに行レベルのセキュリティ ポリシーを実装する。
  • 4
    承認済みのデータのみを公開する承認済みビューを持つ、別々のデータセットを作成する。

解説

【正解】A

【0からの解説】
①前提知識:BigQuery では、テーブル単位・データセット単位の IAM に加えて、より細かいアクセス制御が用意されています。
・列レベルのセキュリティ:「ポリシータグ」を階層構造(タクソノミー)で定義し、テーブルの列に付けます。そのポリシータグに対して「きめ細かい読み取り(Fine-Grained Reader)」ロールを持つユーザーやグループだけが、その列の値を読み取れます。同じタグを多数のテーブルの列に付ければ、アクセス方針を一元的に適用できます(権限のないユーザーにマスクした値を返す動的データ マスキングも組み合わせられます)。
・行レベルのセキュリティ:行アクセス ポリシーにより、条件に合う「行」だけを特定のユーザーに見せる仕組みです。
②要件の整理:(1) 1 つのテーブルに医療データ列と財務データ列が同居する、(2) 臨床研究者には医療データの列のみ(財務列は不可)、(3) 経理チームには財務データの列と最小限の患者識別子の列のみ、(4) 「スケーラブル」=データ量や利用者、テーブルが増えても管理が破綻しない方法。どの患者の行も両チームが参照する前提なので、分けたいのは「行」ではなく「列(属性)」です。
③正解の理由:列レベルのセキュリティなら、例えば「医療」「財務」「患者識別子(機微)」といったポリシータグを列に付け、臨床研究者グループには医療タグ、経理グループには財務タグと必要最小限の識別子列のタグだけを許可する、という形で 1 つのテーブルのまま要件を満たせます。データを複製せず、新しいテーブルや列が増えてもタグを付けるだけで同じ方針が適用されるため、スケーラブルで管理しやすいガバナンスになります。

【誤りの選択肢】
B:用途別にテーブルを分割すると、同じデータを複数のテーブルに分けて持つための ETL と同期処理が必要になり、不整合のリスクや運用負荷が増えます。利用部門や組み合わせが増えるたびにテーブルが増えるため、スケーラブルではありません。
C:行レベルのセキュリティは「どの行を見せるか」を制御する機能です。今回の要件は同じ患者の行の中で医療の列と財務の列を出し分けることなので、行のフィルタでは実現できません。
D:承認済みビューでも、ビューごとに公開する列を選べば似たことは可能です。しかしチームごとにデータセットとビューを作成・維持する必要があり、テーブルのスキーマ変更や利用部門の追加のたびにビューを修正しなければなりません。列単位の制御はポリシータグによる列レベルのセキュリティで一元管理するほうがスケーラブルで、ビューの管理の手間が増える分だけ A に劣ります。

【参考】
安全な BigQuery データ ウェアハウスにデータをインポートする
列へのアクセスを制御する | Dataform
← 練習問題 1練習問題 3 →
GCP-PDE の模擬問題集は全 200 問

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

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

GCP-PDE の無料公開問題

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