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

SnowflakeのRBACを用いて 安全なデータ活用を促進する

SnowflakeのRBACを用いて 安全なデータ活用を促進する

2022.10.21『KGDC Tech Conference #3 KDDIグループの「ごったに!」会』にて、Supership プロダクト開発本部 アドテクノロジーセンター 今村 豊 が登壇の際に投影した資料です。
イベント詳細はこちら:https://kgdc.connpass.com/event/261136/

広告配信データの活用を目的としたDWHをHadoopベースのオンプレ基盤からSnowflakeに移行しました。この移行に伴い実装した、よりデータを安全に活用できるようにするためのアクセス制御の事例をご紹介しました。

今回紹介したような大量データ(1PB)を取り巻く基盤に関わる業務に興味がある方向けのポジションの募集もありますので、気になる方は以下のエンジニア職種の募集要項をご確認ください。
https://supership.jp/recruit/

Supership株式会社

October 21, 2022
Tweet

More Decks by Supership株式会社

Other Decks in Programming

Transcript

  1. 広告配信ログのライフサイクル: いままで 6 オンプレミスデータセンター 広告配信 広告データ集約 データ活用・分析 開発者 データアナリスト ScaleOut

    DSPの広告配信ログはオンプレ→クラウドを経由しつつ集約・加工の上で活用される。 プロダクト企画 セールス ここを移行しました
  2. 制約: Snowflakeの (Secure) Viewを利用する。 14 Main データベース フィルタなし生データ Y社向け分析プロジェクト用データベース CREATE

    VIEW YYY AS SELECT .. FROM .. WHERE 事業者コード = Y社 CREATE VIEW ZZZ AS SELECT .. FROM .. WHERE 事業者コード = Z社 Z社向け分析プロジェクト用データベース フィルタのかかっていないデータに対して抽出条件の制約をかけたViewを定義する。 事業者ごとに参照が許可されたデー タだけを抽出する。
  3. ユーザ 職能ロール アクセス制御 ロール 関連付け: Snowflakeのロールベースのアクセス制御(RBAC)を利用する。 16 Y社向け分析プロジェクト用 データベース Y社プロジェクト

    実績レポートロール Y社配信実績SELECT可 Y社配信実績 Y社配信ユーザ Y社プロジェクト セグメント分析ロール Y社配信ユーザSELECT可 セールス アナリスト 用途×制約×ユーザの対応をロール として割り当てる。
  4. このアプローチのPros/Cons Pros • 管理対象オブジェクトはDatabase, View, Roleだけでありシンプル • データのコピーを作らずにビューで処理しているので、制約条件が変わっても過去データのバック フィル不要 Cons

    • 同じ制約条件のついたデータアクセス(= 同じ定義のビュー)であってもプロジェクトごとに定義する ので重複は多い ◦ 構成はTerraformでやっているので繰り返しについてはあまりつらみがない ▪ terraform planが長い、などはあるが。。。 17
  5. おわりに 今回紹介したデザインはSupership独力ではなく、グループ会社である • ちゅらデータ 菱沼さん • DATUM STUDIO 城内さん に多大なご支援を頂きながらなんとか完成に漕ぎ着けました

    本当に助かりました。ありがとうございます! 他にもコスト最適化などまだ課題山盛りですが頑張ります。 今回紹介したような大量データ(1PB)を取り巻く基盤に関わる業務に興味がある方向けのポジションの募 集もありますので、気になる方は以下のエンジニア職種の募集要項をご確認ください。 https://supership.jp/recruit/ ご清聴頂きありがとうございました。 21
  6. Appendix: 全体の構成 22 オンプレ AWS データバッファ Snowflake環境 Snowflake Managed Account

    HDFS S3 bucket Database for cleansed data Database project X external table A’ native table A Database for curated data native table B secure view A secure view B share for customer データ共有先企業 secure view B AWS for processing MWAA distcp storage integration referenced by view referenced by view referenced by share 1) insert/copy 2) insert executed by DAG Databricks Databrick cluster w/ spark connector