Google PDE: データガバナンス、セキュリティ、信頼性、コスト運用 — 学習ガイド
こちらの一部です: Google Professional Data Engineer — 学習ガイド. 検証済みの解答で練習: Google試験ハブ, または時間制限付き模擬試験に挑戦: ExamRoll.io.
概要
このセクションでは、Google Cloudにおけるデータガバナンス、セキュリティ、信頼性、コスト運用のための設計パターンと運用プラクティスを要約します。BigQuery、Cloud Storage、Dataflow、Dataplex、および関連サービスに焦点を当てています。重点を置くのは、最小権限、暗号鍵管理、メタデータと分類、ポリシーベースのアクセス、コンプライアンス証跡、アクション可能なSLOによるオブザーバビリティ、コスト管理です。トレードオフ、障害モード、および実践的な構成も含まれており、安全で監査可能、かつ効率的なデータプラットフォームを実現します。
ID、アクセス、ガバナンス
IAM、サービスアカウント、権限借用、Workload Identity、最小権限
- IDの境界
- Cloud IdentityまたはGoogle Workspaceを介したユーザーとグループ
- ワークロード用のサービスアカウント。可能な限り低いリソースレベル(例:プロジェクトではなくデータセット)で、スコープを絞ったロールを割り当てます。
- 最小権限
- 基本ロールよりも事前定義ロールを優先します。BigQueryの場合、プロジェクトレベルの閲覧者ではなく、データセットに対してbigquery.dataViewerのようなロールを使用します。
- 権限はグループに付与します。メンバーシップはユーザーごとのIAMではなく、IdPで管理します。
- 職務の分離:鍵管理、データアクセス、管理のロールを分離します。
- 権限借用とWorkload Identity連携
- サービスアカウントの権限借用(roles/iam.serviceAccountTokenCreator)を使用して、CI/CDや自動化が長期的な鍵を保存しないようにします。
- OIDC/SAMLを使用したWorkload Identity連携を利用して、外部IDがサービスアカウントのキーファイルなしで短期的なトークンを取得できるようにします。
- 障害モードと緩和策
- 過剰なプロジェクトレベルのロールはラテラルムーブメント(水平展開)につながります。Cloud Asset Inventoryで監査します。
- サービスアカウントの秘密鍵の紛失:鍵の作成を禁止します。組織のポリシー制約を使用して鍵のダウンロードをブロックします。発見された場合はローテーションします。
- IDの境界
Dataplexガバナンス、Data Catalog、ビジネスメタデータ、リネージ
- Dataplexは、レイク、ゾーン、アセットを提供し、一元化されたポリシーによってBigQueryとCloud Storageのガバナンスを統合します。
- Data Catalogは、ビジネス用語集、タグテンプレート、技術メタデータを保持します。タグを介してビジネスメタデータ(所有者、PII分類、RTO/RPOなど)を付与します。
- リネージは、上流と下流の関係をキャプチャします。Dataflow、Dataproc、BigQueryとのDataplexリネージ統合を使用して、影響範囲とコンプライアンスのスコープを追跡します。
- トレードオフ
- 一元化されたガバナンスは初期オーバーヘッドを増加させますが、長期的なリスクを低減し、監査を迅速化します。
ポリシータグ、分類、行レベルアクセス、列マスキング
- 分類
- Data Catalogのポリシータグで分類体系(例:public、internal、confidential、restricted)を定義します。
- ポリシータグをBigQueryの列に付与します。IAMをタグにバインドすることで、アクセス権がテーブルをまたいで分類に従うようになります。
- 列マスキング
- BigQueryのデータマスキングポリシーを使用して、権限のない閲覧者に対して機密性の高い列をハッシュ化またはNULL化します。
例:
- 分類
undefined
- 行レベルアクセス
- 行アクセスポリシーを使用して、tenant_idやregionなどの属性でレコードをフィルタリングします。
例:
undefined
障害モード
- パイプラインで使用されるサービスアカウントにポリシータグのIAM権限が付与されていないと、クエリが失敗します。必要に応じて、サービスエージェントにポリシータグの閲覧者/アクセサーを含めます。
- ユーザーごとの選択性が高い述語が多い場合、行ポリシーはパフォーマンスを低下させる可能性があります。厳密な分離が必要な場合は、テナントごとにデータセットを分ける粗粒度の方法を優先します。
機密データの検出と非識別化
- Sensitive Data Protectionを使用して、Cloud StorageとBigQueryを継続的にスキャンします。テンプレートを使用して、レイク/ゾーンごとに検出構成を作成します。
- 非識別化変換を使用します:トークン化、結合可能性のための確定的暗号化、またはマスキング。
- 変換キーはCloud KMSに保存します。再識別キーはデュアルコントロールで別途保管します。
- トレードオフ
- 確定的暗号化は結合を可能にしますが、頻度情報が漏洩する可能性があります。必要に応じて、フォーマット保持暗号化やバケット化を追加します。
- サンプリングは検出スキャンのコストを削減しますが、出現頻度の低いPIIを見逃す可能性があります。
セキュリティとコンプライアンスの運用
暗号化、Cloud KMS、CMEK、シークレットの取り扱い
- 保管時の暗号化と転送中の暗号化はデフォルトで有効です。規制上のキー管理が要件となる場合は CMEK を有効化します (BigQuery, GCS, Pub/Sub, Dataflow)
- キー管理
- キーはデータと同じリージョンに配置します。サービスエージェント (例: BigQuery Service Agent) に roles/cloudkms.cryptoKeyEncrypterDecrypter を付与します
- キーは定期的にローテーションします。無効化されたキーや破棄がスケジュールされたキーを監視します
- 障害モード
- CMEK キーを無効化したり、サービスエージェントの権限を取り消したりすると、ロード、クエリ、エクスポートが失敗します。キーの状態変化に関するアラートを設定します
- クロスリージョンでのキー使用は許可されていません。ジョブ作成エラーを避けるためにロケーションを一致させます
- シークレット
- データベースの認証情報や API トークンには Secret Manager を使用します。IAM を介してアクセスを許可し、Secret Manager のログで監査します
- コード、コンテナ、ノートブックにシークレットを埋め込まないでください。実行時のアクセスを介してシークレットをマウントします。サポートされている場合は IAM データベース認証を優先します
監査ログ、アクセスレビュー、コンプライアンス証跡、保持
- BigQuery、GCS、Pub/Sub のデータアクセスログを組織全体で有効化します。CMEK を使用する書き込み専用のロギングプロジェクトにエクスポートします
- 集約ログシンクを作成し、BigQuery (分析用) と Cloud Storage (バケットの保持ロックによる長期的な不変アーカイブ用) に転送します
- 定期的なアクセスレビューと構成ドリフトの検出には、Cloud Asset Inventory と Policy Analyzer を使用します
- 保持
- コンプライアンス要件に従ってログの保持期間を設定します。GCS ではオブジェクトのバージョニングと保持ポリシーを使用します
- BigQuery では、デフォルトのテーブル有効期限を設定し、短期的なロールバックにはテーブルスナップショットやタイムトラベルを利用します。重要なデータセットは別のプロジェクトにアーカイブします
- 証跡
- Dataplex タグ (例: “SOX-C2: Evidence in project X, sink Y”) を使用して統制マッピングを維持し、エクスポートを自動化し、スケジュールされたクエリを実行して証明書を生成します
信頼性、オブザーバビリティ、品質、コスト管理
データ品質のディメンション、検証フレームワーク、インシデント対応
- ディメンション: 正確性 (accuracy)、完全性 (completeness)、一貫性 (consistency)、適時性 (timeliness)、有効性 (validity)、一意性 (uniqueness)、整合性 (integrity)
- 取り込み時と変換時に検証を実装
- BigQuery テーブルと GCS アセットに対する Dataplex Data Quality ルールセット
- Dataflow/Dataproc での Great Expectations または Deequ によるスキーマとコンテンツのチェック
- 豊富なエラーコンテキストを付けて、失敗したレコードをデッドレターテーブルまたはバケットにルーティング。不正なレコードを隔離することでデータ損失を回避
- インシデント対応
- 深刻度、オーナー、コミュニケーションチャネル、ロールバック計画、RACI を定義
- ランブックを自動化して、ウィンドウのバックフィルやデッドレターの再処理を実行。修正前に影響を受けるテーブルのスナップショットを取得
Cloud Monitoring、ロギング、アラート、エラーバジェット、SLO
- メトリクスの公開: Dataflow のバックログ、BigQuery のスロット使用率、クエリレイテンシ、GCS のレイテンシ/エラー、Pub/Sub の未確認メッセージ
- SLO
- 例: 「30日間にわたり、ストリーミングイベントの 99.9% が 5 分以内に BigQuery で利用可能になる」
- エラーバジェットのバーンレートを追跡し、急な消費ではページング通知、緩やかな消費ではチケットを発行
- ログベースのメトリクスとアラート
- BigQuery ジョブの失敗、DLP の検出結果、KMS キーのエラーに関するログベースのメトリクスを作成
- 高度なログフィルタを使用して、特定のテーブルへの追記やアクセス異常についてアラートを送信
コスト配分、予算、クエリ制御、ストレージライフサイクル、キャパシティプランニング
- 配分と予算
- すべてのジョブ、データセット、バケット、リザベーションにラベルとタグを使用。請求データを BigQuery にエクスポートし、Pub/Sub 通知付きの予算を作成
- BigQuery のコスト管理
- パーティショニングとクラスタリングを使用してスキャンバイト数を削減
クエリジョブに maximumBytesBilled を設定。クライアント/ジョブ設定の例:
- 配分と予算
undefined
- 予測可能なワークロードには BigQuery Reservations でスロットを予約。アサインメントを介してインタラクティブなクエリとバッチを分離
ストレージライフサイクル
- GCS: ライフサイクルルールを使用して、N 日後にコールドストレージに移行または削除。ロールバックが必要な場合はオブジェクトのバージョニングを有効化
- 例 (要約): 30日後に現行バージョンでないものを削除。コンプライアンスゾーンのためにバケットの保持ポリシーを 365 日に設定
- BigQuery: 一時的なデータセットにはデフォルトのテーブル有効期限を設定。破壊的な変更の前にスナップショットを取得
キャパシティプランニング
- Dataflow: ワーカーの最大数を設定し、自動スケーリングを有効化。マシンタイプを適切なサイズに調整。ホットキーを避けるために入力をシャーディング
- Pub/Sub: 公開/消費クォータとメッセージ保持期間を検証
- ネットワーク: エグレス、リージョン間の移動、データベース用のプライベートサービスアクセスを考慮
ディザスタリカバリ、バックアップ、マルチリージョンでの回復力、ランブック
- RTO/RPO に基づいてサービスを分類し、それに応じてコールド/ウォーム/ホットパターンを選択
- バックアップ
- BigQuery: 定期的なテーブルスナップショット。必要に応じてオフプラットフォームでの保持のために GCS にエクスポート
- GCS: 耐久性のためにデュアルリージョンまたはマルチリージョンバケットを使用。WORM コンプライアンスのためにバケットロックを有効化
- データベース: Cloud SQL と Bigtable でのマネージドバックアップ。リストアをテスト
- マルチリージョン
- エグレスとレイテンシを最小限に抑えるため、コンピューティングとストレージを同じマルチリージョン内に配置。必要でない限り、大陸間の依存関係を回避
- ランブック
- フェイルオーバー、キーのリカバリ、KMS のインシデント手順、エクスポートからの再ハイドレーション、BigQuery リザベーションの再割り当てを文書化
- ゲームデーを通じて DR をテスト。回復までの時間を追跡し、SLO を更新
実践的な問題シナリオ
NovaRetail Analytics は、複数のブランドと提携し、トランザクションデータを含む日次 CSV を共有分析プラットフォームに取り込んでいます。ファイルは Cloud Storage のランディングバケットに到着し、時折、不正な形式の行が含まれています。プラットフォームは、各クライアントが自身のデータにのみアクセスできるように最小権限を強制し、機密フィールドを検出し、特定の監査テーブルに行が追加されたときに即時アラートを提供する必要があります。同社はまた、コスト管理とリカバリ計画も必要としています。
アプローチ:
テナントを分離し、最小権限を強制する
- クライアントごとに専用の BigQuery データセット (例: client_a_analytics) を作成。クライアントのグループにのみ適切なデータセットロール (bigquery.dataViewer, bigquery.jobUser) を付与し、IAM や VPC-SC (該当する場合) を介して承認されたユーザーにのみ BigQuery API の使用を制限する。
- 理由: テナントごとのデータセットは、影響範囲を限定し、行レベルのポリシーの複雑さを単純化します。データセットレベルでの最小権限のスコープ設定は、デフォルトでテナント間のアクセスを防ぎます。
スキーマ、分類、マスキングを統制する
- Data Catalog のポリシータグのタクソノミ (public, internal, confidential, restricted) と、オーナー、データスチュワード、RTO/RPO のためのタグテンプレートを定義する。各クライアントデータセットの機密性の高い列 (email, card_suffix) にポリシータグを付与する。権限のないロールに対してビューを制限するために、BigQuery のマスキングポリシーを適用する。
- 例:
undefined
- 理由: 中央集権的なタグは、テーブル全体で統一された制御を提供します。マスキングは、データを複製することなく、デフォルトで安全な読み取りを保証します。
PII を検出し、必要に応じて非識別化を強制する
- Sensitive Data Protection の検出を構成して、ランディングバケットとキュレーションされた BigQuery テーブルをスキャンする。一般的な PII 用の検査テンプレートと、結合ユースケースのためにメールアドレスを決定論的にトークン化するための非識別化テンプレートを使用する。
- 理由: 自動検出は手動のエラーを削減します。決定論的なトークン化は、プライバシーと分析の結合要件のバランスを取ります。
サービスアカウント、権限借用、CMEK でパイプラインを保護する
- 必要なロールのみを持つ Dataflow サービスアカウントを使用する: ランディングバケットに対する storage.objectViewer、ターゲットデータセットに対する bigquery.dataEditor、および必要に応じてポリシータグへのアクセス。クライアントデータセットに CMEK を使用し、BigQuery と Dataflow のサービスエージェントに CryptoKey Encrypter/Decrypter ロールを付与する。
- 理由: 絞り込まれたロールと CMEK は、最小権限とキー管理の要件を満たします。サービスエージェントのキーへのアクセスは、ジョブの失敗を防ぎます。
エラー隔離を備えた回復力のある取り込みを構築する
- CSV を読み取り、スキーマを検証し、有効な行をパーティション分割された BigQuery テーブルに書き込むバッチ Dataflow ジョブを実行する。無効な行は、エラー詳細 (ファイル名、行番号、理由) とともに BigQuery のデッドレターテーブルにルーティングする。
- 理由: サイドアウトプットは、有効なデータをブロックすることなく、分析のために不正なデータを保持します。パーティション分割テーブルは、スキャンコストを削減し、クエリを高速化します。
リネージとビジネスメタデータを作成する
- ランディングバケットとデータセットを Dataplex のレイクにアセットとして登録する。Dataflow ジョブのリネージ収集を有効にし、キュレーションされたテーブルにビジネスメタデータ (データオーナー、機密性、保持期間) をタグ付けする。
- 理由: 一元化されたガバナンスは、影響分析、監査への対応、および標準化されたスチュワードシップを可能にします。
監視、アラート、監査を行う
- 管理者アクティビティ監査ログとデータアクセス監査ログを有効にし、CMEK を使用して中央のロギングプロジェクトと分析用の BigQuery にエクスポートする。BigQuery の insert ジョブに対する高度なフィルタを使用して、監査テーブルに追加された新しい行に対するログベースのアラートを追加する。そのシンクを Pub/Sub にエクスポートし、監視ツールが消費できるようにする。
- 理由: ログは改ざん防止の証拠となります。ターゲットを絞ったアラートは、必要なテーブルについてのみ通知し、ノイズを削減します。
コスト管理とクエリのガードレールを強制する
- クエリジョブに maximumBytesBilled の設定を要求し、カーディナリティの高い列 (例: order_id) でクラスタリングを活用する。予算を適用し、ジョブとデータセットにラベル (client, environment) を設定する。BigQuery Reservations を使用して、インタラクティブな分析をスケジュールされたロードから分離する。
- 理由: ガードレールは暴走コストを防ぎます。ラベルはチャージバックを可能にします。スロットの分離は予測可能なパフォーマンスを維持します。
保持と DR を実装する
- ランディングバケットで、オブジェクトのバージョニングと 30 日後にオブジェクトを削除するライフサイクルルールを有効にする。コンプライアンスゾーンのために保持ポリシーを設定する。BigQuery で、ステージングテーブルにデフォルトのテーブル有効期限を設定し、キュレーションされたテーブルの定期的なテーブルスナップショットを取得する。KMS のバックアップ手順とテーブルのリストア手順をランブックに保存し、四半期ごとにテストする。
- 理由: ライフサイクル管理はストレージコストを削減します。スナップショットと文書化されたランブックは回復可能性を保証します。テストは RTO/RPO の仮定を検証します。
定期的なアクセスレビューと品質 SLI/SLO
- 四半期ごとに、Cloud Asset Inventory を使用して IAM ポリシーをエクスポートし、承認されたベースラインと比較する。「日次ファイルの 99% が到着後 30 分以内に処理される」などの SLO を定義し、バーンレートに関するアラートを設定する。Dataplex Data Quality ルールを使用してデータ品質 SLI (完全性、有効性) を追跡し、違反をインシデント対応にルーティングし、バックフィルを自動化する。
- 理由: 定期的なレビューは権限の肥大化を防ぎます。SLO 主導の運用は、ユーザーエクスペリエンスに合わせて取り組みを調整します。自動化された品質チェックは、リグレッションを早期に検出します。
技術的なトレードオフと対処される障害モード:
- CMEK の設定ミスやキーの無効化は、Dataflow のロードと BigQuery のクエリを中断させます。KMS の状態とサービスエージェントの権限に関する監視は必須です。
- きめ細かな行レベルのポリシーを多用すると、パフォーマンスが低下する可能性があります。テナントにはデータセットの分離を推奨します。
- 検出スキャンはコストがかかる可能性があります。ゾーンごとにスコープを絞り、適切な場所でサンプリングし、まれな PII を見逃すリスクを受け入れます。
- アラート疲れは応答性を低下させます。テーブル/アクションごとに正確なフィルタを構築し、展開前にテストします。
これらの問題を練習する → · ExamRoll.ioで時間制限付き練習 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
試験に合格する →