Upgrade to Pro — share decks privately, control downloads, hide ads and more …

dbt+GCPで実現するPII管理と 一時権限付与の実装

okodoon
June 21, 2024
700

dbt+GCPで実現するPII管理と 一時権限付与の実装

okodoon

June 21, 2024
Tweet

Transcript

  1. CopyRight © Timee,inc. 2023 -                                       CONFIDENTIAL 自己紹介 大河戸裕一 バックエンドエンジニア ↓ データエンジニア

    ↓ アナリスト ↓ アナリティクスエンジニア okodoon ( @miburo_data ) 好き: 料理, DTM, SF 嫌い: サザエ 将来: お坊さん, カレー屋さん
  2. タイミーの実績 スキマ バイト No.1 ※1 ※2 [調査方法]インターネット調査 [調査期間]2024 年 2

    月 9 日~11 日 [調査概要]スキマバイトアプリサービスの実態調査 [調査 委託先]株式会社マクロミル 利用率 ・リピート率 ※1 ※2 導入事業者数 98,000企業 ワーカー数 700万人
  3. CopyRight © Timee,inc. 2023 -                                       CONFIDENTIAL どんなもの作ったかざっくり紹介 Data Loss Prevention API

    BigQuery BigQuery 実装 結果の確認 定期的にPIIに該当する データがないか確認 ポリシータグの付与 下流アウトプットへの伝搬
  4. CopyRight © Timee,inc. 2023 -                                       CONFIDENTIAL どんなもの作ったかざっくり紹介 Cloud Run IAM Slack

    App 利用申請 確認 PII利用者 承認者 承認 request create binding PolicyTag BigQuery Cloud Scheduler Pub/Sub remove binding Cloud Run (リリース前調整中の機能です !)
  5. CopyRight © Timee,inc. 2023 -                                       CONFIDENTIAL 導入の背景 : PIIとは(ざっくり) 個人情報(PII)とは、社会保障番号、氏名、メール・アドレス、電話番号など、 特定の個人に関連し、その個人の身元を明らかにするために使用できる情

    報です。 PIIには、直接識別子と間接識別子の2種類があります。 直接識別子は各 個人に固有のものであり、パスポート番号や運転免許証番号などが含まれ ます。 通常、1つの直接識別子でユーザーの身元を特定できます。 間接識別子は一意ではありません。 これらには、人種や出生地など、より 一般的な個人情報が含まれます。 単一の間接識別子では個人を識別でき ませんが、組み合わせることで個人を識別できます。 引用:個人情報(PII)とは

  6. CopyRight © Timee,inc. 2023 -                                       CONFIDENTIAL PII管理導入の背景 : 既存の体制の課題点 データ基盤に取り込む前に PIIデータ

    であると事前に判断する必要がある PIIに対するアクセス権限設定周りの 業務の作業漏れが怖い。 トイルは最小限にしたい この部署には見せていいけど、この 部署には見せてはいけない みたいなケースに対応できない
  7. CopyRight © Timee,inc. 2023 -                                       CONFIDENTIAL PII管理導入の背景 : 既存の体制の課題点 データ基盤に取り込む前に PIIデータ

    であると事前に判断する必要がある PIIに対するアクセス権限設定周りの 業務の作業漏れが怖い。 トイルは最小限にしたい この部署には見せていいけど、この 部署には見せてはいけない みたいなケースに対応できない PIIを検出する仕組みの導入 ポリシータグによる柔軟かつ堅牢な データの秘匿 PIIへのアクセス承認フローを 自動化して、権限を期限付きにする
  8. CopyRight © Timee,inc. 2023 -                                       CONFIDENTIAL dbtを用いたPIIの設定方法: dbtのschema.yml dbt_project.yml vars: USER_NAME_PII_TAG:

    {terraformで設定したユーザー名のポリシータグID} USER_ADDRESS_PII_TAG: {terraformで設定したユーザー住所のポリシータグID} USER_BIRTHDAY_PII_TAG: {terraformで設定したユーザー誕生日のポリシータグID} hogehoge.yml models: - name: hogehoge columns: - name: user_name data_type: STRING policy_tags: - '{{ var (“USER_NAME_PII_TAG" ) }}'
  9. CopyRight © Timee,inc. 2023 -                                       CONFIDENTIAL DLPを用いたPIIの検出:DLPの利点 なぜDLPが必要か Salesforceのコメントなど 自由入力されるため、どのような データが入るか想定しづらいような

    プロパティに対するデータ検出 ポリシータグを設定した結果 セキュリティリスクがどう低減したの かを監視可能 引用:Cloud DLP API による機密データの厳重な管理 (今回はしていないが) dbtがカバーしきれないような 文章内の一部だけを匿名化する ようなことも可能
  10. CopyRight © Timee,inc. 2023 -                                       CONFIDENTIAL ポリシータグ網羅性のチェック: DLP結果とポリシータグを BQテーブル化 Data Loss

    Prevention API BigQuery 検出結果を BQテーブル化 for dataset in datasets: tables = client.list_tables(dataset.dataset_id) for table in tables: table_ref = client.get_table(table) schema = table_ref.schema for field in schema: print("policy_tag: ", field.policy_tags) どのカラムにどのポリシータグが貼られているか出力 BigQuery 出力結果を BQテーブル化 リスクが高くポリシータグ が貼られていないカラム 群を一覧化
  11. CopyRight © Timee,inc. 2023 -                                       CONFIDENTIAL ポリシータグ網羅性のチェック: DLP結果とポリシータグを BQテーブル化 リスクが高くポリシータグ が貼られていないカラム

    群を一覧化 DLPの検出による 偽陽性パターン 付与が漏れていたもの INFOTYPEが一致するが PIIではないパターン (ex. 社内メンバーのメール アドレス) ポリシータグ付与 作業の実施 一覧に表示されない ように調整
  12. CopyRight © Timee,inc. 2023 -                                       CONFIDENTIAL PII Granter:PII Granter概要 Cloud Run

    IAM Slack App 利用申請 確認 PII利用者 承認者 承認 request create binding PolicyTag BigQuery Cloud Scheduler Pub/Sub remove binding Cloud Run
  13. CopyRight © Timee,inc. 2023 -                                       CONFIDENTIAL PII Granter:下準備 BigQuery dbt exposure

    による監視 PIIを持たないセマンティックレイ ヤー経由に統一 作成者の権限ではなく 閲覧者の権限でクエリが 実行されるように変更
  14. CopyRight © Timee,inc. 2023 -                                       CONFIDENTIAL まとめ PII Granterを用いた データ活用のスピード感を 落とさない権限申請フロー

    ドメインごとに分割して PII種別ごとにポリシータグを作成 DLPの検出を用いた 漏れのないPII管理 dbt + dbt osmosisを用いた 簡便なポリシータグ付与