SlideShare a Scribd company logo
1 of 41
Download to read offline
BigQueryにおけるポリシータグ
を用いた秘密情報管理とデータ連携
株式会社ZOZO
技術本部 MA部 MA開発2ブロック 谷口恵輔(@csk_pos)
Copyright © ZOZO, Inc.
1
© ZOZO, Inc. 2
株式会社ZOZO
技術本部 MA部 MA開発2ブロック
谷口 恵輔
● データ基盤や配信基盤の開発と運用をしています
● 以前は位置情報の分析をしていました
● 沖縄に住んでいます
2
© ZOZO, Inc.
https://zozo.jp/
● ファッションEC
● 1,500以上のショップ、8,400以上のブランドの取り扱い
● 常時90万点以上の商品アイテム数と毎日平均2,600点以上の新着 商品
を掲載(2022年9月末時点)
● ブランド古着のファッションゾーン「ZOZOUSED」や
コスメ専門モール「ZOZOCOSME」、靴の専門モール
「ZOZOSHOES」、ラグジュアリー&デザイナーズゾーン
「ZOZOVILLA」を展開
● 即日配送サービス
● ギフトラッピングサービス
● ツケ払い など
3
© ZOZO, Inc.
https://wear.jp/
4
● ファッションコーディネートアプリ
● 1,600万ダウンロード突破、コーディネート投稿総数は1,300万件以上
(2022年9月末時点)
● ピックアップタグから最新のトレンドをチェック
● コーディネート着用アイテムを公式サイトで購入可能
● WEAR公認の人気ユーザーをWEARISTAと認定。モデル・タレント・デザ
イナー・インフルエンサーといった各界著名人も参加
© ZOZO, Inc. 5
https://zozo.jp/zozomat/
● 自宅にいながら簡単に高精度な足の3D計測ができる計測マット
● 計測したデータをもとに、自分の足型と靴の“相性度” を表示
● NIKEやCONVERSEなど4,976型以上のアイテムに対応
(2022年9月末時点)
© ZOZO, Inc. 6
https://zozo.jp/zozoglass/
● 自宅で簡単・高精度にご自身の顔の肌の色を計測できる
フェイスカラー計測ツール
● ECにおけるコスメ購入時の課題であった「色選び」に関する
不安や悩みを解消
● 肌の色を構成する成分、ヘモグロビン量とメラニン量を画像
から推定
● コスメ専門モール「ZOZOCOSME」で取り扱うベースメイクの
一部に対応
● 計測者数125万人を突破(2022年9月末時点)
© ZOZO, Inc.
目次
1. データ基盤の紹介
2. ポリシータグの選定理由
3. ポリシータグを活用したデータ連携
4. ポリシータグ運用時に考慮すること
5. まとめ
7
© ZOZO, Inc.
目次
1. データ基盤の紹介
2. ポリシータグの選定理由
3. ポリシータグを活用したデータ連携
4. ポリシータグ運用時に考慮すること
5. まとめ
8
© ZOZO, Inc.
データ基盤の紹介
9
● オンプレのSQL ServerからBigQueryへデータを連携
Dataflow
Pub/Sub BigQuery
リアルタイム差分
SQL Server Fluentd on GKE
(Change Tracking)
BigQuery
日次全量
Dataflow
BigQuery
リアルタイム全量
© ZOZO, Inc.
秘密情報管理で抱えていた課題
10
● 秘密情報はマスクしてBigQueryへ連携
○ マスク処理を変更した場合は過去データを捨てるしかなかった
○ 秘密情報の元データがないため、分析者がマスク処理を作りにくい
○ メルマガ配信など秘密情報が必要なシステムで利用できない
● セキュリティ面での課題
○ BigQueryへ連携する際に秘密情報の有無を利用者が申請する運用をとっていた
○ 秘密情報ではないのにマスク化されて使えないデータがあった
© ZOZO, Inc.
目次
1. データ基盤の紹介
2. ポリシータグの選定理由
3. ポリシータグを活用したデータ連携
4. ポリシータグ運用時に考慮すること
5. まとめ
11
© ZOZO, Inc.
ポリシータグとは
● ポリシータグとは
○ BigQueryでカラム単位のアクセス制御が可能なリソース
○ 性別や年齢など秘密情報を掛け合わせると個人の特定に繋がる
○ テーブル全体ではなくカラム単位でアクセス制御することで、個人の特定を防ぐ
12
引用:https://cloud.google.com/bigquery/docs/best-practices-policy-tags
© ZOZO, Inc.
ポリシータグを採用した理由①
● 匿名化による機密性の高さ
○ ポリシータグはカラム単位で参照権限を付与できる
■ 承認済みビューでは秘密情報が複数ある場合、必要以上の権限を与えてしまう
■ カラム単位でのアクセス制御では個人の特定はできない
■ プロジェクトのオーナーでも権限がなければ見られないため、
誤って参照することを防止できる
13
Authorized views
https://cloud.google.com/bigquery/docs/authorized-views
© ZOZO, Inc.
ポリシータグを採用した理由②
● 機密性と利便性の両立
○ 承認済みビューは利用者が使いにくい
■ プレビューでデータを確認できない
■ 秘密情報が含まれていないカラムも、データを確認するには全てのカラムをSELECTする必要がある
○ ポリシータグは利用者が使いやすい
■ スキーマからどのカラムが秘密情報か確認できる
■ プレビューでデータの中身を確認できる
14
© ZOZO, Inc.
ポリシータグを採用した理由③
● データ基盤の保守運用
○ 既存のテーブルに秘密情報を追加しやすい
■ 秘密情報のなかったテーブルを承認済みビューにするのは大変
■ 利用状況を調べ利用者にクエリを書き換えてもらう必要がある
○ 秘密情報の権限管理がしやすい
■ GCPプロジェクトを横断して共通のポリシータグを付与できる
■ どのアカウントに権限を付与しているかTerraformで管理できる
15
© ZOZO, Inc.
目次
1. データ基盤の紹介
2. ポリシータグの選定理由
3. ポリシータグを活用したデータ連携
4. ポリシータグ運用時に考慮すること
5. まとめ
16
© ZOZO, Inc.
データ連携後に利用者が参照するテーブル
17
分類に基づいてマスクされたカラム
(例) メールアドレスの@以降を抽出
命名規則:カラム名_マスキングアルゴリズム_masked
どの分類のポリシータグが付与されているか
何件のカラムがアクセス制御されているか
© ZOZO, Inc.
ポリシータグを活用したデータ連携
18
Dataflow
Pub/Sub BigQuery
リアルタイム差分
SQL Server Fluentd on GKE
(Change Tracking)
BigQuery
日次全量
Dataflow
BigQuery
リアルタイム全量
© ZOZO, Inc.
秘密情報の分類マスタの作成と運用整備
19
● 秘密情報の分類マスタを作成
○ 秘密情報管理シートで分類を管理
○ 分類に応じてポリシータグやマスクカラムを追加
■ (例) 分類がメールなら@以降のドメイン抽出、誕生日なら誕生月で丸めたマスクカラムを追加する
© ZOZO, Inc.
分類マスタに対応したポリシータグ
20
● 分類マスタに対応したポリシータグを準備
○ 秘密情報の分類マスタに対応するようポリシータグを作成
○ ポリシータグはTerraformで管理
© ZOZO, Inc.
ポリシータグを用いた日次バッチ連携
21
Dataflow
Pub/Sub BigQuery
リアルタイム差分
SQL Server Fluentd on GKE
(Change Tracking)
BigQuery
日次全量
Dataflow
BigQuery
リアルタイム全量
© ZOZO, Inc.
ポリシータグを用いた日次バッチ連携
22
BigQuery / 公開
SQL Server Dataflow BigQuery / 非公開
bq query
© ZOZO, Inc.
ポリシータグを用いた日次バッチ連携
23
BigQuery / 公開
SQL Server Dataflow BigQuery / 非公開
bq query
● SQL Serverから非公開環境
○ Dataflowを用いてSQL Serverから非公
開環境へロード
○ ポリシータグは付与されていないため
非公開にしている
© ZOZO, Inc.
ポリシータグを用いた日次バッチ連携
24
BigQuery / 公開
SQL Server Dataflow BigQuery / 非公開
bq query
● 非公開環境から公開環境
○ 公開環境へ連携する際に、秘密情報の分
類に基づき、マスクカラムとポリシータグを
追加
○ ポリシータグの付与にはポリシータグのリ
ソースIDを含むスキーマが必要
© ZOZO, Inc.
ポリシータグを用いたリアルタイムデータ連携
25
Dataflow
Pub/Sub BigQuery
リアルタイム差分
SQL Server Fluentd on GKE
(Change Tracking)
BigQuery
日次全量
Dataflow
BigQuery
リアルタイム全量
© ZOZO, Inc.
ポリシータグを用いたリアルタイムデータ連携
26
Dataflow
Pub/Sub BigQuery
リアルタイム差分
SQL Server Fluentd on GKE
(Change Tracking)
Dataflow Pub/Sub Kinesis
© ZOZO, Inc.
ポリシータグを用いたリアルタイムデータ連携
27
Dataflow
Pub/Sub BigQuery
リアルタイム差分
SQL Server Fluentd on GKE
(Change Tracking)
Dataflow Pub/Sub Kinesis
● Fluentdでマスクカラムを追加
○ 秘密情報の分類マスタに基づいてFluentd
でマスクカラムを追加
○ Cloud Pub/SubへPublishする際にattribute
属性に秘密情報カラムを追加
マスクカラム追加
© ZOZO, Inc.
ポリシータグを用いたリアルタイムデータ連携
28
Dataflow
Pub/Sub BigQuery
リアルタイム差分
SQL Server Fluentd on GKE
(Change Tracking)
Dataflow Pub/Sub Kinesis
● 秘密情報をDROPしたCloud Pub/Sub
○ Dataflowを用いてattribute属性に含まれる秘
密情報をDROPする
○ 秘密情報を必要としない場合は秘密情報が含
まれていないTopicを参照してもらう
© ZOZO, Inc.
ポリシータグを用いたリアルタイムデータ連携
29
Dataflow
Pub/Sub BigQuery
リアルタイム差分
SQL Server Fluentd on GKE
(Change Tracking)
Dataflow Pub/Sub Kinesis
● BigQueryにストリーミングインサート
○ Terraformで事前にポリシータグを付与した
テーブルを作成
○ BigQueryからはマスクカラムと秘密情報を
参照できる
© ZOZO, Inc.
ポリシータグを用いたリアルタイムデータ連携
30
BigQuery
リアルタイム差分
BigQuery
日次全量
BigQuery
リアルタイム全量
● 共通のポリシータグを利用
○ リアルタイム全量 = リアルタイム差分 + 日次全量
○ 異なるGCPプロジェクトで共通のポリシータグを利用
Project A Project A
Project B
© ZOZO, Inc.
目次
1. データ基盤の紹介
2. ポリシータグの選定理由
3. ポリシータグを活用したデータ連携
4. ポリシータグ運用時に考慮すること
5. まとめ
31
© ZOZO, Inc.
ポリシータグ運用注意①
32
● スキーマの変更や削除が大変
○ 日次バッチで連携する場合は全量上書くため簡単
○ リアルタイム連携はスキーマの変更、削除が大変です
■ ポリシータグを付与したテーブルは
カラムの削除に「ALTER TABLE」が使えない
テーブル連携を止め、クエリを用いた上書きが必要
■ デプロイ時の運用負荷が高い
Alpha category references are no longer a supported type, please use
policy tags instead: ''
BigQuery(Table)
リアルタイム差分
BigQuery(table)
日次全量
BigQuery(view)
リアルタイム全量
© ZOZO, Inc.
ポリシータグ運用注意②
33
引用:https://cloud.google.com/bigquery/docs/column-level-security-intro#views
● テーブルにマスクカラムが必要
○ 承認済みビューとポリシータグを組み合わせたマスクカラムの生成はできない
○ ポリシータグを使う場合はマスクしたカラムも必要
○ 今だと動的マスキングを使う方法もある
■ ただし、利用者が秘密情報だと思い意図せず利用する場合もあるのでトレードオフ
dynamic data masking
https://cloud.google.com/bigquery/docs/column-data-ma
sking-intro
© ZOZO, Inc.
ポリシータグ運用注意③
34
● ジョブに失敗した際ポリシータグが外れないよう注意
○ bq query実行時にスキーマが壊れていた
○ ワークフロージョブの失敗は検知できるが、BigQueryのクエリジョブは実行され
ポリシータグが付与されていないテーブルが作られてしまった
bqコマンドに渡しているスキーマのJSONが間違っていても
クエリが実行されてしまう問題
https://qiita.com/shiozaki/items/689610ca4cdf7954b3ea
© ZOZO, Inc.
ポリシータグ運用注意④
35
● 秘密情報分類マスタ整備
○ 過去に分類マスタのカラムとSQL Serverのカラムで表記ズレがあり、秘密情報なのにポリシー
タグが付与されなかった
○ バリデーションを導入し、秘密情報分類マスタの品質を担保する必要がある
© ZOZO, Inc.
目次
1. データ基盤の紹介
2. ポリシータグの選定理由
3. ポリシータグを活用したデータ連携
4. ポリシータグ運用時に考慮すること
5. まとめ
36
© ZOZO, Inc.
まとめ
37
● オンプレのSQL ServerからBigQueryへデータを連携している
● ポリシータグを選定したのはセキュリティ、利用者の利便性、データ基盤の保守運
用の点で優れていたから
● 日次とリアルタイムデータ連携でポリシータグを用いた連携方法が異なる
● ポリシータグ導入の際は運用の注意点を考慮する必要がある
● 導入するには秘密情報の分類マスタや運用整備も必要
© ZOZO, Inc.
テックブログ の紹介①
38
BigQueryにおけるポリシータグを 用 いた 秘 密 情 報 管 理 とデータ 連 携 の 仕 組 み
https://techblog.zozo.com/entry/policy-tag-usage-to-protect-bigquery-sensitive-data
本日話したことの詳細について記事を書い
ています。執筆時とインフラ構成多少変わっ
ています
© ZOZO, Inc.
テックブログ の紹介②
39
全 社 共 通 データ 基 盤 を 廃 止 して 新 しいデータ 基 盤 に 引 越 した 話
https://techblog.zozo.com/entry/data-infrastructure-replacement
現在のデータ基盤のインフラ構成を書いてい
ます。リプレイスの経緯やデータ
基盤構築の際は参考にしてみてください
© ZOZO, Inc.
テックブログ の紹介③
40
ZOZOTOWNを 支 えるリアルタイムデータ 連 携 基 盤
https://techblog.zozo.com/entry/real-time-data-linkage-infrastructure
本日話したリアルタイムデータ基盤の詳細
を書いています。現在はGKEで運用してい
ますが、基本構成は同じです
zozo bigquery policy tag usage

More Related Content

What's hot

YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...NTT DATA Technology & Innovation
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)NTT DATA OSS Professional Services
 
[B31] LOGMinerってレプリケーションソフトで使われているけどどうなってる? by Toshiya Morita
[B31] LOGMinerってレプリケーションソフトで使われているけどどうなってる? by Toshiya Morita[B31] LOGMinerってレプリケーションソフトで使われているけどどうなってる? by Toshiya Morita
[B31] LOGMinerってレプリケーションソフトで使われているけどどうなってる? by Toshiya MoritaInsight Technology, Inc.
 
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチアーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチYusuke Suzuki
 
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮Hibino Hisashi
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)昌桓 李
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)NTT DATA Technology & Innovation
 
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説Masahiko Sawada
 
新機能によるデータベースシステムの改善ポイント
新機能によるデータベースシステムの改善ポイント新機能によるデータベースシステムの改善ポイント
新機能によるデータベースシステムの改善ポイントオラクルエンジニア通信
 
YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)
YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)
YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)NTT DATA Technology & Innovation
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Masahiko Sawada
 
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)NTT DATA Technology & Innovation
 
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...Masahiko Sawada
 
Javaトラブルに備えよう #jjug_ccc #ccc_h2
Javaトラブルに備えよう #jjug_ccc #ccc_h2Javaトラブルに備えよう #jjug_ccc #ccc_h2
Javaトラブルに備えよう #jjug_ccc #ccc_h2Norito Agetsuma
 

What's hot (20)

YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
 
[B31] LOGMinerってレプリケーションソフトで使われているけどどうなってる? by Toshiya Morita
[B31] LOGMinerってレプリケーションソフトで使われているけどどうなってる? by Toshiya Morita[B31] LOGMinerってレプリケーションソフトで使われているけどどうなってる? by Toshiya Morita
[B31] LOGMinerってレプリケーションソフトで使われているけどどうなってる? by Toshiya Morita
 
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチアーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
 
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
 
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
 
新機能によるデータベースシステムの改善ポイント
新機能によるデータベースシステムの改善ポイント新機能によるデータベースシステムの改善ポイント
新機能によるデータベースシステムの改善ポイント
 
YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)
YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)
YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会
 
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
 
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
 
Javaトラブルに備えよう #jjug_ccc #ccc_h2
Javaトラブルに備えよう #jjug_ccc #ccc_h2Javaトラブルに備えよう #jjug_ccc #ccc_h2
Javaトラブルに備えよう #jjug_ccc #ccc_h2
 
Oracle Data Guard による高可用性
Oracle Data Guard による高可用性Oracle Data Guard による高可用性
Oracle Data Guard による高可用性
 

Similar to zozo bigquery policy tag usage

HTML5でFirefox OSアプリを作ろう
HTML5でFirefox OSアプリを作ろうHTML5でFirefox OSアプリを作ろう
HTML5でFirefox OSアプリを作ろうTakao Sumitomo
 
Treasure data demo.0517
Treasure data demo.0517Treasure data demo.0517
Treasure data demo.0517BigData Sios
 
プライバシーを置き去りにしない!自動マスキングで開発をスムーズに DevOpsの高速化ツール『Accelario』
プライバシーを置き去りにしない!自動マスキングで開発をスムーズに DevOpsの高速化ツール『Accelario』プライバシーを置き去りにしない!自動マスキングで開発をスムーズに DevOpsの高速化ツール『Accelario』
プライバシーを置き去りにしない!自動マスキングで開発をスムーズに DevOpsの高速化ツール『Accelario』株式会社クライム
 
クラウド鎖国からクラウド維新へ
クラウド鎖国からクラウド維新へクラウド鎖国からクラウド維新へ
クラウド鎖国からクラウド維新へCybozucommunity
 
A21 列指向DB HP Vertica ~その圧倒的な高速検索の謎を解き明かす~ byKeizo Aizawa
A21 列指向DB HP Vertica ~その圧倒的な高速検索の謎を解き明かす~ byKeizo AizawaA21 列指向DB HP Vertica ~その圧倒的な高速検索の謎を解き明かす~ byKeizo Aizawa
A21 列指向DB HP Vertica ~その圧倒的な高速検索の謎を解き明かす~ byKeizo AizawaInsight Technology, Inc.
 
Qiita Night 足場固めからやるマイクロサービス
Qiita Night 足場固めからやるマイクロサービスQiita Night 足場固めからやるマイクロサービス
Qiita Night 足場固めからやるマイクロサービスTomoki Kuriyama
 
【SSS】提案書サンプル
【SSS】提案書サンプル【SSS】提案書サンプル
【SSS】提案書サンプルsss-share
 
IoT業界で必須サービスになってきたAzure Web PubSubとAzure IoT EdgeのEFLOWについてご紹介
IoT業界で必須サービスになってきたAzure Web PubSubとAzure IoT EdgeのEFLOWについてご紹介IoT業界で必須サービスになってきたAzure Web PubSubとAzure IoT EdgeのEFLOWについてご紹介
IoT業界で必須サービスになってきたAzure Web PubSubとAzure IoT EdgeのEFLOWについてご紹介Jingun Jung
 
MySQL製品概要
MySQL製品概要MySQL製品概要
MySQL製品概要yoyamasaki
 
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recapマイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 RecapAyako Omori
 
【AWS×Deployment】TechTalk #5
【AWS×Deployment】TechTalk #5【AWS×Deployment】TechTalk #5
【AWS×Deployment】TechTalk #5幸夫 茅根
 
マルチクラウドデータ連携Javaアプリケーションの作り方
マルチクラウドデータ連携Javaアプリケーションの作り方マルチクラウドデータ連携Javaアプリケーションの作り方
マルチクラウドデータ連携Javaアプリケーションの作り方CData Software Japan
 
Sit tokyo2022 sac/dwc Big data real-time cooperation
Sit tokyo2022 sac/dwc Big data real-time cooperation Sit tokyo2022 sac/dwc Big data real-time cooperation
Sit tokyo2022 sac/dwc Big data real-time cooperation ssuser0cf3dd
 
【KSKアナリティクス】Pentaho紹介
【KSKアナリティクス】Pentaho紹介【KSKアナリティクス】Pentaho紹介
【KSKアナリティクス】Pentaho紹介KSK Analytics Inc.
 
第26回八子クラウド座談会当日メモ付き_20180407
第26回八子クラウド座談会当日メモ付き_20180407第26回八子クラウド座談会当日メモ付き_20180407
第26回八子クラウド座談会当日メモ付き_20180407知礼 八子
 
SAPテクノロジーのプラットフォームはMicrosoft Azureで決まり!
SAPテクノロジーのプラットフォームはMicrosoft Azureで決まり!SAPテクノロジーのプラットフォームはMicrosoft Azureで決まり!
SAPテクノロジーのプラットフォームはMicrosoft Azureで決まり!Ryusaburo Tanaka
 
サーバ構築不要!HTML5で始めるAndroid&iOSアプリ開発セミナー
サーバ構築不要!HTML5で始めるAndroid&iOSアプリ開発セミナーサーバ構築不要!HTML5で始めるAndroid&iOSアプリ開発セミナー
サーバ構築不要!HTML5で始めるAndroid&iOSアプリ開発セミナーSPIRAL Inc.
 
【de:code 2020】 Development from anywhere! 全ての開発者が生産性を維持するためにマイクロソフトが貢献できること
【de:code 2020】 Development from anywhere! 全ての開発者が生産性を維持するためにマイクロソフトが貢献できること【de:code 2020】 Development from anywhere! 全ての開発者が生産性を維持するためにマイクロソフトが貢献できること
【de:code 2020】 Development from anywhere! 全ての開発者が生産性を維持するためにマイクロソフトが貢献できること日本マイクロソフト株式会社
 

Similar to zozo bigquery policy tag usage (20)

HTML5でFirefox OSアプリを作ろう
HTML5でFirefox OSアプリを作ろうHTML5でFirefox OSアプリを作ろう
HTML5でFirefox OSアプリを作ろう
 
Treasure data demo.0517
Treasure data demo.0517Treasure data demo.0517
Treasure data demo.0517
 
プライバシーを置き去りにしない!自動マスキングで開発をスムーズに DevOpsの高速化ツール『Accelario』
プライバシーを置き去りにしない!自動マスキングで開発をスムーズに DevOpsの高速化ツール『Accelario』プライバシーを置き去りにしない!自動マスキングで開発をスムーズに DevOpsの高速化ツール『Accelario』
プライバシーを置き去りにしない!自動マスキングで開発をスムーズに DevOpsの高速化ツール『Accelario』
 
クラウド鎖国からクラウド維新へ
クラウド鎖国からクラウド維新へクラウド鎖国からクラウド維新へ
クラウド鎖国からクラウド維新へ
 
A21 列指向DB HP Vertica ~その圧倒的な高速検索の謎を解き明かす~ byKeizo Aizawa
A21 列指向DB HP Vertica ~その圧倒的な高速検索の謎を解き明かす~ byKeizo AizawaA21 列指向DB HP Vertica ~その圧倒的な高速検索の謎を解き明かす~ byKeizo Aizawa
A21 列指向DB HP Vertica ~その圧倒的な高速検索の謎を解き明かす~ byKeizo Aizawa
 
Qiita Night 足場固めからやるマイクロサービス
Qiita Night 足場固めからやるマイクロサービスQiita Night 足場固めからやるマイクロサービス
Qiita Night 足場固めからやるマイクロサービス
 
【SSS】提案書サンプル
【SSS】提案書サンプル【SSS】提案書サンプル
【SSS】提案書サンプル
 
IoT業界で必須サービスになってきたAzure Web PubSubとAzure IoT EdgeのEFLOWについてご紹介
IoT業界で必須サービスになってきたAzure Web PubSubとAzure IoT EdgeのEFLOWについてご紹介IoT業界で必須サービスになってきたAzure Web PubSubとAzure IoT EdgeのEFLOWについてご紹介
IoT業界で必須サービスになってきたAzure Web PubSubとAzure IoT EdgeのEFLOWについてご紹介
 
MySQL製品概要
MySQL製品概要MySQL製品概要
MySQL製品概要
 
概説 Data API v3
概説 Data API v3概説 Data API v3
概説 Data API v3
 
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recapマイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
 
Cloud Camp Azure概要
Cloud Camp Azure概要Cloud Camp Azure概要
Cloud Camp Azure概要
 
【AWS×Deployment】TechTalk #5
【AWS×Deployment】TechTalk #5【AWS×Deployment】TechTalk #5
【AWS×Deployment】TechTalk #5
 
マルチクラウドデータ連携Javaアプリケーションの作り方
マルチクラウドデータ連携Javaアプリケーションの作り方マルチクラウドデータ連携Javaアプリケーションの作り方
マルチクラウドデータ連携Javaアプリケーションの作り方
 
Sit tokyo2022 sac/dwc Big data real-time cooperation
Sit tokyo2022 sac/dwc Big data real-time cooperation Sit tokyo2022 sac/dwc Big data real-time cooperation
Sit tokyo2022 sac/dwc Big data real-time cooperation
 
【KSKアナリティクス】Pentaho紹介
【KSKアナリティクス】Pentaho紹介【KSKアナリティクス】Pentaho紹介
【KSKアナリティクス】Pentaho紹介
 
第26回八子クラウド座談会当日メモ付き_20180407
第26回八子クラウド座談会当日メモ付き_20180407第26回八子クラウド座談会当日メモ付き_20180407
第26回八子クラウド座談会当日メモ付き_20180407
 
SAPテクノロジーのプラットフォームはMicrosoft Azureで決まり!
SAPテクノロジーのプラットフォームはMicrosoft Azureで決まり!SAPテクノロジーのプラットフォームはMicrosoft Azureで決まり!
SAPテクノロジーのプラットフォームはMicrosoft Azureで決まり!
 
サーバ構築不要!HTML5で始めるAndroid&iOSアプリ開発セミナー
サーバ構築不要!HTML5で始めるAndroid&iOSアプリ開発セミナーサーバ構築不要!HTML5で始めるAndroid&iOSアプリ開発セミナー
サーバ構築不要!HTML5で始めるAndroid&iOSアプリ開発セミナー
 
【de:code 2020】 Development from anywhere! 全ての開発者が生産性を維持するためにマイクロソフトが貢献できること
【de:code 2020】 Development from anywhere! 全ての開発者が生産性を維持するためにマイクロソフトが貢献できること【de:code 2020】 Development from anywhere! 全ての開発者が生産性を維持するためにマイクロソフトが貢献できること
【de:code 2020】 Development from anywhere! 全ての開発者が生産性を維持するためにマイクロソフトが貢献できること
 

zozo bigquery policy tag usage

  • 2. © ZOZO, Inc. 2 株式会社ZOZO 技術本部 MA部 MA開発2ブロック 谷口 恵輔 ● データ基盤や配信基盤の開発と運用をしています ● 以前は位置情報の分析をしていました ● 沖縄に住んでいます 2
  • 3. © ZOZO, Inc. https://zozo.jp/ ● ファッションEC ● 1,500以上のショップ、8,400以上のブランドの取り扱い ● 常時90万点以上の商品アイテム数と毎日平均2,600点以上の新着 商品 を掲載(2022年9月末時点) ● ブランド古着のファッションゾーン「ZOZOUSED」や コスメ専門モール「ZOZOCOSME」、靴の専門モール 「ZOZOSHOES」、ラグジュアリー&デザイナーズゾーン 「ZOZOVILLA」を展開 ● 即日配送サービス ● ギフトラッピングサービス ● ツケ払い など 3
  • 4. © ZOZO, Inc. https://wear.jp/ 4 ● ファッションコーディネートアプリ ● 1,600万ダウンロード突破、コーディネート投稿総数は1,300万件以上 (2022年9月末時点) ● ピックアップタグから最新のトレンドをチェック ● コーディネート着用アイテムを公式サイトで購入可能 ● WEAR公認の人気ユーザーをWEARISTAと認定。モデル・タレント・デザ イナー・インフルエンサーといった各界著名人も参加
  • 5. © ZOZO, Inc. 5 https://zozo.jp/zozomat/ ● 自宅にいながら簡単に高精度な足の3D計測ができる計測マット ● 計測したデータをもとに、自分の足型と靴の“相性度” を表示 ● NIKEやCONVERSEなど4,976型以上のアイテムに対応 (2022年9月末時点)
  • 6. © ZOZO, Inc. 6 https://zozo.jp/zozoglass/ ● 自宅で簡単・高精度にご自身の顔の肌の色を計測できる フェイスカラー計測ツール ● ECにおけるコスメ購入時の課題であった「色選び」に関する 不安や悩みを解消 ● 肌の色を構成する成分、ヘモグロビン量とメラニン量を画像 から推定 ● コスメ専門モール「ZOZOCOSME」で取り扱うベースメイクの 一部に対応 ● 計測者数125万人を突破(2022年9月末時点)
  • 7. © ZOZO, Inc. 目次 1. データ基盤の紹介 2. ポリシータグの選定理由 3. ポリシータグを活用したデータ連携 4. ポリシータグ運用時に考慮すること 5. まとめ 7
  • 8. © ZOZO, Inc. 目次 1. データ基盤の紹介 2. ポリシータグの選定理由 3. ポリシータグを活用したデータ連携 4. ポリシータグ運用時に考慮すること 5. まとめ 8
  • 9. © ZOZO, Inc. データ基盤の紹介 9 ● オンプレのSQL ServerからBigQueryへデータを連携 Dataflow Pub/Sub BigQuery リアルタイム差分 SQL Server Fluentd on GKE (Change Tracking) BigQuery 日次全量 Dataflow BigQuery リアルタイム全量
  • 10. © ZOZO, Inc. 秘密情報管理で抱えていた課題 10 ● 秘密情報はマスクしてBigQueryへ連携 ○ マスク処理を変更した場合は過去データを捨てるしかなかった ○ 秘密情報の元データがないため、分析者がマスク処理を作りにくい ○ メルマガ配信など秘密情報が必要なシステムで利用できない ● セキュリティ面での課題 ○ BigQueryへ連携する際に秘密情報の有無を利用者が申請する運用をとっていた ○ 秘密情報ではないのにマスク化されて使えないデータがあった
  • 11. © ZOZO, Inc. 目次 1. データ基盤の紹介 2. ポリシータグの選定理由 3. ポリシータグを活用したデータ連携 4. ポリシータグ運用時に考慮すること 5. まとめ 11
  • 12. © ZOZO, Inc. ポリシータグとは ● ポリシータグとは ○ BigQueryでカラム単位のアクセス制御が可能なリソース ○ 性別や年齢など秘密情報を掛け合わせると個人の特定に繋がる ○ テーブル全体ではなくカラム単位でアクセス制御することで、個人の特定を防ぐ 12 引用:https://cloud.google.com/bigquery/docs/best-practices-policy-tags
  • 13. © ZOZO, Inc. ポリシータグを採用した理由① ● 匿名化による機密性の高さ ○ ポリシータグはカラム単位で参照権限を付与できる ■ 承認済みビューでは秘密情報が複数ある場合、必要以上の権限を与えてしまう ■ カラム単位でのアクセス制御では個人の特定はできない ■ プロジェクトのオーナーでも権限がなければ見られないため、 誤って参照することを防止できる 13 Authorized views https://cloud.google.com/bigquery/docs/authorized-views
  • 14. © ZOZO, Inc. ポリシータグを採用した理由② ● 機密性と利便性の両立 ○ 承認済みビューは利用者が使いにくい ■ プレビューでデータを確認できない ■ 秘密情報が含まれていないカラムも、データを確認するには全てのカラムをSELECTする必要がある ○ ポリシータグは利用者が使いやすい ■ スキーマからどのカラムが秘密情報か確認できる ■ プレビューでデータの中身を確認できる 14
  • 15. © ZOZO, Inc. ポリシータグを採用した理由③ ● データ基盤の保守運用 ○ 既存のテーブルに秘密情報を追加しやすい ■ 秘密情報のなかったテーブルを承認済みビューにするのは大変 ■ 利用状況を調べ利用者にクエリを書き換えてもらう必要がある ○ 秘密情報の権限管理がしやすい ■ GCPプロジェクトを横断して共通のポリシータグを付与できる ■ どのアカウントに権限を付与しているかTerraformで管理できる 15
  • 16. © ZOZO, Inc. 目次 1. データ基盤の紹介 2. ポリシータグの選定理由 3. ポリシータグを活用したデータ連携 4. ポリシータグ運用時に考慮すること 5. まとめ 16
  • 17. © ZOZO, Inc. データ連携後に利用者が参照するテーブル 17 分類に基づいてマスクされたカラム (例) メールアドレスの@以降を抽出 命名規則:カラム名_マスキングアルゴリズム_masked どの分類のポリシータグが付与されているか 何件のカラムがアクセス制御されているか
  • 18. © ZOZO, Inc. ポリシータグを活用したデータ連携 18 Dataflow Pub/Sub BigQuery リアルタイム差分 SQL Server Fluentd on GKE (Change Tracking) BigQuery 日次全量 Dataflow BigQuery リアルタイム全量
  • 19. © ZOZO, Inc. 秘密情報の分類マスタの作成と運用整備 19 ● 秘密情報の分類マスタを作成 ○ 秘密情報管理シートで分類を管理 ○ 分類に応じてポリシータグやマスクカラムを追加 ■ (例) 分類がメールなら@以降のドメイン抽出、誕生日なら誕生月で丸めたマスクカラムを追加する
  • 20. © ZOZO, Inc. 分類マスタに対応したポリシータグ 20 ● 分類マスタに対応したポリシータグを準備 ○ 秘密情報の分類マスタに対応するようポリシータグを作成 ○ ポリシータグはTerraformで管理
  • 21. © ZOZO, Inc. ポリシータグを用いた日次バッチ連携 21 Dataflow Pub/Sub BigQuery リアルタイム差分 SQL Server Fluentd on GKE (Change Tracking) BigQuery 日次全量 Dataflow BigQuery リアルタイム全量
  • 22. © ZOZO, Inc. ポリシータグを用いた日次バッチ連携 22 BigQuery / 公開 SQL Server Dataflow BigQuery / 非公開 bq query
  • 23. © ZOZO, Inc. ポリシータグを用いた日次バッチ連携 23 BigQuery / 公開 SQL Server Dataflow BigQuery / 非公開 bq query ● SQL Serverから非公開環境 ○ Dataflowを用いてSQL Serverから非公 開環境へロード ○ ポリシータグは付与されていないため 非公開にしている
  • 24. © ZOZO, Inc. ポリシータグを用いた日次バッチ連携 24 BigQuery / 公開 SQL Server Dataflow BigQuery / 非公開 bq query ● 非公開環境から公開環境 ○ 公開環境へ連携する際に、秘密情報の分 類に基づき、マスクカラムとポリシータグを 追加 ○ ポリシータグの付与にはポリシータグのリ ソースIDを含むスキーマが必要
  • 25. © ZOZO, Inc. ポリシータグを用いたリアルタイムデータ連携 25 Dataflow Pub/Sub BigQuery リアルタイム差分 SQL Server Fluentd on GKE (Change Tracking) BigQuery 日次全量 Dataflow BigQuery リアルタイム全量
  • 26. © ZOZO, Inc. ポリシータグを用いたリアルタイムデータ連携 26 Dataflow Pub/Sub BigQuery リアルタイム差分 SQL Server Fluentd on GKE (Change Tracking) Dataflow Pub/Sub Kinesis
  • 27. © ZOZO, Inc. ポリシータグを用いたリアルタイムデータ連携 27 Dataflow Pub/Sub BigQuery リアルタイム差分 SQL Server Fluentd on GKE (Change Tracking) Dataflow Pub/Sub Kinesis ● Fluentdでマスクカラムを追加 ○ 秘密情報の分類マスタに基づいてFluentd でマスクカラムを追加 ○ Cloud Pub/SubへPublishする際にattribute 属性に秘密情報カラムを追加 マスクカラム追加
  • 28. © ZOZO, Inc. ポリシータグを用いたリアルタイムデータ連携 28 Dataflow Pub/Sub BigQuery リアルタイム差分 SQL Server Fluentd on GKE (Change Tracking) Dataflow Pub/Sub Kinesis ● 秘密情報をDROPしたCloud Pub/Sub ○ Dataflowを用いてattribute属性に含まれる秘 密情報をDROPする ○ 秘密情報を必要としない場合は秘密情報が含 まれていないTopicを参照してもらう
  • 29. © ZOZO, Inc. ポリシータグを用いたリアルタイムデータ連携 29 Dataflow Pub/Sub BigQuery リアルタイム差分 SQL Server Fluentd on GKE (Change Tracking) Dataflow Pub/Sub Kinesis ● BigQueryにストリーミングインサート ○ Terraformで事前にポリシータグを付与した テーブルを作成 ○ BigQueryからはマスクカラムと秘密情報を 参照できる
  • 30. © ZOZO, Inc. ポリシータグを用いたリアルタイムデータ連携 30 BigQuery リアルタイム差分 BigQuery 日次全量 BigQuery リアルタイム全量 ● 共通のポリシータグを利用 ○ リアルタイム全量 = リアルタイム差分 + 日次全量 ○ 異なるGCPプロジェクトで共通のポリシータグを利用 Project A Project A Project B
  • 31. © ZOZO, Inc. 目次 1. データ基盤の紹介 2. ポリシータグの選定理由 3. ポリシータグを活用したデータ連携 4. ポリシータグ運用時に考慮すること 5. まとめ 31
  • 32. © ZOZO, Inc. ポリシータグ運用注意① 32 ● スキーマの変更や削除が大変 ○ 日次バッチで連携する場合は全量上書くため簡単 ○ リアルタイム連携はスキーマの変更、削除が大変です ■ ポリシータグを付与したテーブルは カラムの削除に「ALTER TABLE」が使えない テーブル連携を止め、クエリを用いた上書きが必要 ■ デプロイ時の運用負荷が高い Alpha category references are no longer a supported type, please use policy tags instead: '' BigQuery(Table) リアルタイム差分 BigQuery(table) 日次全量 BigQuery(view) リアルタイム全量
  • 33. © ZOZO, Inc. ポリシータグ運用注意② 33 引用:https://cloud.google.com/bigquery/docs/column-level-security-intro#views ● テーブルにマスクカラムが必要 ○ 承認済みビューとポリシータグを組み合わせたマスクカラムの生成はできない ○ ポリシータグを使う場合はマスクしたカラムも必要 ○ 今だと動的マスキングを使う方法もある ■ ただし、利用者が秘密情報だと思い意図せず利用する場合もあるのでトレードオフ dynamic data masking https://cloud.google.com/bigquery/docs/column-data-ma sking-intro
  • 34. © ZOZO, Inc. ポリシータグ運用注意③ 34 ● ジョブに失敗した際ポリシータグが外れないよう注意 ○ bq query実行時にスキーマが壊れていた ○ ワークフロージョブの失敗は検知できるが、BigQueryのクエリジョブは実行され ポリシータグが付与されていないテーブルが作られてしまった bqコマンドに渡しているスキーマのJSONが間違っていても クエリが実行されてしまう問題 https://qiita.com/shiozaki/items/689610ca4cdf7954b3ea
  • 35. © ZOZO, Inc. ポリシータグ運用注意④ 35 ● 秘密情報分類マスタ整備 ○ 過去に分類マスタのカラムとSQL Serverのカラムで表記ズレがあり、秘密情報なのにポリシー タグが付与されなかった ○ バリデーションを導入し、秘密情報分類マスタの品質を担保する必要がある
  • 36. © ZOZO, Inc. 目次 1. データ基盤の紹介 2. ポリシータグの選定理由 3. ポリシータグを活用したデータ連携 4. ポリシータグ運用時に考慮すること 5. まとめ 36
  • 37. © ZOZO, Inc. まとめ 37 ● オンプレのSQL ServerからBigQueryへデータを連携している ● ポリシータグを選定したのはセキュリティ、利用者の利便性、データ基盤の保守運 用の点で優れていたから ● 日次とリアルタイムデータ連携でポリシータグを用いた連携方法が異なる ● ポリシータグ導入の際は運用の注意点を考慮する必要がある ● 導入するには秘密情報の分類マスタや運用整備も必要
  • 38. © ZOZO, Inc. テックブログ の紹介① 38 BigQueryにおけるポリシータグを 用 いた 秘 密 情 報 管 理 とデータ 連 携 の 仕 組 み https://techblog.zozo.com/entry/policy-tag-usage-to-protect-bigquery-sensitive-data 本日話したことの詳細について記事を書い ています。執筆時とインフラ構成多少変わっ ています
  • 39. © ZOZO, Inc. テックブログ の紹介② 39 全 社 共 通 データ 基 盤 を 廃 止 して 新 しいデータ 基 盤 に 引 越 した 話 https://techblog.zozo.com/entry/data-infrastructure-replacement 現在のデータ基盤のインフラ構成を書いてい ます。リプレイスの経緯やデータ 基盤構築の際は参考にしてみてください
  • 40. © ZOZO, Inc. テックブログ の紹介③ 40 ZOZOTOWNを 支 えるリアルタイムデータ 連 携 基 盤 https://techblog.zozo.com/entry/real-time-data-linkage-infrastructure 本日話したリアルタイムデータ基盤の詳細 を書いています。現在はGKEで運用してい ますが、基本構成は同じです