タグ: GDPR

  • 【Google認定MLエンジニア】機械学習パイプラインにおける機密データの取り扱い

    【Google認定MLエンジニア】機械学習パイプラインにおける機密データの取り扱い

    概要

    機械学習パイプラインで機密データ(PII:Personally Identifiable Information)を扱う際には、プライバシー保護とコンプライアンス遵守のために、適切な 匿名化(Anonymization)マスキング(Masking) の処理が必須です。本記事では、GCP認定MLエンジニア試験で問われる「Handling Sensitive Data」に関するベストプラクティスを、代表的な出題形式をもとに体系的に整理します。


    1. 基本原則と必要な対応

    対応項目概要
    機密列の削除クレジットカード番号や氏名などは、不要であれば完全に削除するのが最も安全な対応。
    ハッシュ化(Hashing)データを一方向に変換し、復元不能にする手法。クレジットカード番号やメールアドレスなどで使用。
    マスキング(Masking)部分的に見せて、一部を伏せる。名前や電話番号などの一部可視が許容されるケースで使用。
    フォーマット変更(日付など)生年月日は DATE_TRUNC() などで日単位→月単位に変換し、特定性を下げる。
    暗号化(Encryption)一部のデータでは保存時の暗号化が要求されるが、マスキングやハッシュと併用することもある。

    2. 出題パターンと対応例

    📌 パターン1:SQLベースのデータ匿名化(BigQuery)

    代表問題

    SELECT
      name,
      address,
      credit_card_number,
      birthdate,
      hash(email) AS anonymized_email
    FROM customer_data;

    対応

    • credit_card_number の削除
    • credit_card_number のハッシュ化(両方OK。出題意図次第)
    • ⚠️ name, address はマスキング不要な場合もあり
    • DATE_TRUNC() だけでは不十分な場合あり

    📌 パターン2:Apache Beam によるJavaコードのマスキング

    代表コード抜粋

    fields[2] = "*****"; // クレジットカード番号のマスキング

    対応

    • ✅ より安全なマスキング手法に変更(例えば SHA256 + サルト)
    • ✅ 他の機密列(氏名など)もマスキング
    • ❌ この場面では暗号化は不要とされることが多い

    📌 パターン3:Python(pandas)でのHIPAA対応

    代表コード抜粋

    df['name'] = 'REDACTED'
    df['ssn'] = 'XXX-XX-XXXX'
    df['birthdate'] = df['birthdate'].apply(lambda x: x.strftime('%Y-%m'))

    対応

    • name カラムの削除
    • ✅ 全ての機密列が正しく匿名化されているか確認
    • ⚠️ birthdateの処理は緩やかな対応でも許容されることが多い

    📌 パターン4:BigQueryでのPII処理とマスキング

    代表コード抜粋

    SELECT
      full_name,
      email,
      REGEXP_REPLACE(phone, r'\d', '*') AS masked_phone
    FROM raw_data;

    対応

    • full_name のマスキング
    • email のハッシュ化または部分マスキング
    • ❌ 暗号化はこの文脈では不要

    3. 試験対策ポイント

    ✅ EXAM FOCUS

    • 機密情報(クレジットカード番号、氏名、住所、メール、電話番号)は削除 or ハッシュ化 or マスキング
    • SQL/Java/Python問わず データ処理ロジックを読める力 が必要
    • 暗号化やスキーマ検証は、問題文の文脈次第で「不要」とされるケースあり

    ⚠️ CAUTION ALERT

    • hash()REGEXP_REPLACE() のような関数処理が適切かを吟味
    • HIPAA, GDPR などの規制準拠かどうかに注意
    • 一部の出題では「暗号化は不要」「検証は仮定済み」とされることもある

    まとめ

    GCP MLエンジニア試験では、「実装の文脈」と「規制の目的」を両立して考える力が求められます。単なる暗号化・マスキングだけでなく、不要な列の削除や、処理の十分性判断も含めて対策しましょう。