Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
2023 年の BigQuery 権限管理
Search
na0
February 16, 2023
Programming
3.4k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
2023 年の BigQuery 権限管理
酒とゲームとインフラとGCP 第18回 発表資料
na0
February 16, 2023
More Decks by na0
See All by na0
データエージェントのためのナレッジカタログ
na0
4
3.5k
データ活用 3.0 with Socrates
na0
2
2.1k
AI 時代のデータ戦略
na0
8
6.2k
adk-samples に学ぶデータ分析 LLM エージェント開発
na0
3
1.8k
BigQuery でできること、人間がやるべきこと
na0
0
1.3k
データ分析エージェント Socrates の育て方
na0
10
6.8k
AI エージェントと考え直すデータ基盤
na0
26
13k
メルカリにおけるデータアナリティクス AI エージェント「Socrates」と ADK 活用事例
na0
29
36k
BigQuery リリースノート - 2023年上半期 #bq_sushi
na0
3
520
Other Decks in Programming
See All in Programming
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.7k
技術記事、 専門家としてのプログラマ、 言語化
mizchi
13
5.9k
CSC307 Lecture 17
javiergs
PRO
0
320
dRuby over BLE
makicamel
2
340
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
140
New "Type" system on PicoRuby
pocke
1
930
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
580
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
280
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
180
The NotImplementedError Problem in Ruby
koic
1
790
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
200
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
110
Featured
See All Featured
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
140
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
230
Balancing Empowerment & Direction
lara
6
1.2k
Fireside Chat
paigeccino
42
4k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.1k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
360
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Transcript
2023 年の BigQuery 権限管理 na0 酒とゲームとインフラとGCP 第18回
はじめのはじめに BigQuery はとても楽しい • 今日の話を知らなくても BigQuery を触り始めるのに差し支えなし! 気楽に聞いてね • 49
ページ / 20 分 • 資料公開済み Twitter @ na0fu3y • この資料よりも公式ドキュメントが詳しく正しい 想定読者 • BigQuery でデータを組織活用したい人 • セキュリティ ポリシーを BigQuery に適用したい人
ID • na0 • Naofumi Yamada • na0fu3y (Twitter /
GitHub) Google Cloud との関わり • Google Cloud Champion Innovator - Data Analytics • BigQuery ユーザコミュニティ BQ FUN 主催者 趣味 • BigQuery • ボードゲーム • マリオカート8 デラックス 自己紹介
背景 • データ活用とセキュリティのバランスが求められている • BigQuery はデータ活用とセキュリティに注力できるサービス メッセージ • BigQuery はアクセス制御・監査の多様なサービスと連携する
• 最初から完璧を目指さず、情報を集め、改善しよう 今日のゴール • あの業務で使えるかも?を 1 つでも持ち帰ってもらう 今日伝えること
目次 1. はじめに 2. BigQuery のアクセス制御 3. BigQuery の監査 4.
BigQuery のデータ検出 5. 権限設計案 6. おわりに 前半 5 分 後半 15 分
暗黙知 • 経験 • 勘 形式×暗黙知 • AI • RPA
• 委託 形式知 • 計測 • 集計 • 可視化 データ活用の要請 はじめに • 統計分析 • 自動化 • 品質管理 業務効率化のために形式知化が進められている 結果として、データ基盤を作る組織が増えている
セキュリティの要請 はじめに セキュリティ・コンプライアンスも重要 誰が、いつ、どこから、どのデータに したい データ活用とのバランス アクセス可能かを設計 アクセスしたかを記録 機密性 可用性 誰もアクセスできないなら安全
誰でもアクセスできるなら活用しやすい より良いバランスを目指して解像度を高めるのが大事
BigQuery の概要 はじめに Google Cloud のサーバーレス データウェアハウス 強み • 「利用者の管理が必須なもの」が少ない(データとアクセス制御)
• 大規模データの保存・分析 • 各種 Google プロダクトと連携 この資料で取り上げること • Google Cloud のサービス群を組み合わせて、BigQuery の攻めと守りのバラ ンスを柔軟に設計する • 今日は概要のみ、個別の詳細設計は専門家にお問合せ
BigQuery の権限管理 はじめに BigQuery の権限管理は、以下の要素の集合 アクセス管理 誰がアクセスするか アクセス監査 誰がアクセスしたか データ検出
管理対象を網羅しているか
概要 BigQuery のアクセス制御 アクセス管理 誰がアクセスするか アクセス監査 誰がアクセスしたか データ検出 管理対象を網羅しているか BigQuery
は様々なサービスを用いてアクセス制御できる • Cloud IAM • Cloud IAM 拒否ポリシー 2022 GA • BigQuery • Cloud KMS • VPC Service Controls • BigLake 2022 GA • Dataplex 2022 GA • Analytics Hub 2023 GA • Resource Manager 2023 GA
概要 BigQuery のアクセス制御 アクセス管理 誰がアクセスするか アクセス監査 誰がアクセスしたか データ検出 管理対象を網羅しているか 規模別のおすすめサービス
1. データ基盤利用者~30人 ◦ Cloud IAM ◦ BigQuery INFORMATION_SCHEMA 2. データ基盤利用者~99人 ◦ + BigQuery IAM ◦ + Cloud Logging ◦ (任意)+ BigQuery 承認済みデータセット or + BigQuery 列レベル セキュリティ 3. データ基盤利用者100~人 ◦ + VPC Service Controls ◦ + BigLake ◦ (任意)+ Dataplex ◦ (任意)+ Analytics Hub ◦ (任意)+ BigQuery 行レベル セキュリティ
Google Cloud の権限 BigQuery のアクセス制御 • 許可ポリシーに該当すれば許可 • 禁止ポリシーに該当すれば 許可ポリシーによらず禁止
• ポリシーは子リソースに継承 https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy より図を引用
Organization Cloud IAM 「誰のどのサービスへの、読み書きを許可するか」を設定する。 組織、フォルダ、プロジェクトレベルで設定できる。 用途 • 組織やプロジェクトレベルで変動する大まかな権限設定 BigQuery のアクセス制御
Project - data source Project - free to use BigQuery BigQuery 読み +書き
Cloud IAM 拒否ポリシー 2022 GA 「誰のどのサービスへの、読み書きを禁止するか」を設定する。 組織、フォルダ、プロジェクトレベルで設定できる。 許可ポリシーより優先される。 用途 •
親リソースで許可された ポリシーからの防御 BigQuery のアクセス制御 Organization Project - data source Project - data clean room BigQuery BigQuery 読み -読み
BigQuery 「誰のどの BigQuery オブジェクトへの、読み書きを許可するか」を BigQuery データセット、オブジェクト、列、行レベルで設定する。 用途 • BigQuery オブジェクトレベルで管理すべき細部の権限設定
BigQuery のアクセス制御 レベル アクセス制御 データセット • BigQuery IAM • 承認済みデータセット オブジェクト • BigQuery IAM • 承認済み関数 / ビュー 行 • 行レベルのアクセス ポリシー 列 • ポリシータグ • Cloud KMS
BigQuery BigQuery IAM 「誰のどの BigQuery オブジェクトへの、読み書きを許可するか」を BigQuery データセット、オブジェクトレベルで設定する。 用途 •
データセット単位やテーブル単位で 権限を変えたい場合 BigQuery のアクセス制御 所属事業データはアクセス可 別事業データはアクセス権なし
BigQuery 承認済みデータセット、ビュー、関数 ソースデータへのアクセス許可なく、ビューや関数の結果を共有する。 用途 • 一部の列や行を隠したり、加工して見せたい BigQuery のアクセス制御 アクセス権限なし 加工ビュー
未加工データ アクセス可
BigQuery 行レベルのアクセス ポリシー 「誰のどのテーブル行への、読みを許可するか」を設定する。 用途 • メンバーとマネージャーで 閲覧できる行を増減する BigQuery のアクセス制御
https://cloud.google.com/bigquery/docs/row-level-security-intro より図を引用
BigQuery ポリシータグ 「誰のどのテーブル列への、読みを許可するか」を設定する。 用途 • 一部の列の閲覧者を 制限したい BigQuery のアクセス制御 https://cloud.google.com/bigquery/docs/column-data-masking-intro
より図を加工
Cloud KMS 「テーブル列を暗号化し、鍵のアクセス権による復号権限」を追加管理す る。 用途 • BigQuery 外で暗号化した データを読む BigQuery
のアクセス制御 https://cloud.google.com/bigquery/docs/column-key-encrypt より図を引用
VPC Service Controls 「ネットワークやサービスをどう横断する、読み書きを許可・禁止するか」を プロジェクト、 VPC ネットワークレベルで設定する。 用途 • 信頼できる経路のみ、リソースの移動を許可する
BigQuery のアクセス制御 機密情報 BigQuery オフィス 承認済みソースIP 自宅や外出先 未承認ソースIP BigQuery Cloud Storage Cloud Storage
BigLake 2022 GA BigQuery の外のリソースへのアクセス許可を、 BigQuery に委任する。 用途 • 権限管理をサービスアカウントレベルから
BigQuery オブジェクトレベルに 寄せる BigQuery のアクセス制御 https://cloud.google.com/bigquery/docs/biglake-intro より図を引用
Dataplex 2022 GA 「誰の、どのサービスへの、読み書きを許可するか」を Dataplex リソースレベルで設定する。 用途 • プロジェクト横断のビジネスドメインやデータ信頼度レベルでの整理 BigQuery
のアクセス制御 https://cloud.google.com/dataplex/docs/introduction より図を引用
Analytics Hub 2023 GA 「誰の、BigQuery のデータセットへの、読みを許可するか」を BigQueryデータセットに対応するListingレベルで設定する 用途 • 組織間のデータ交換
BigQuery のアクセス制御 https://cloud.google.com/analytics-hub より図を引用
Resource Manager 2023 GA 「誰の、どのサービスへの、読み書きを許可するか」を設定する。 組織、フォルダ、プロジェクト、BigQuery データセットレベルで設定でき る。 用途 •
BigQuery 以外のリソースも 含めた一貫管理 BigQuery のアクセス制御 https://cloud.google.com/resource-manager/docs/tags/tags-overview より画像を引用
注意 BigQuery のアクセス制御 BigQuery の機能を活用しすぎず、 組み合わせ爆発しない権限設計を心がける 例 • 全社の大まかな権限設定は、大きめに行う ◦
プロジェクト × ユーザー単位 ◦ データセット × Google グループ単位 • 最も厳しいセキュリティ ポリシーにのみ対応する専門チームを作り、VPC Service Controlsを用いたセキュアゾーンを作る
まとめ BigQuery のアクセス制御 BigQuery は様々な方法でアクセス制御できる サービス 概要 Cloud IAM 誰の、どのサービスへの、読み書きを許可するか
Cloud IAM 拒否ポリシー 2022 GA 誰の、どのサービスへの、読み書きを 禁止するか BigQuery 誰の、どの BigQuery オブジェクトへの、読み書きを許可するか Dataplex 2022 GA 誰の、どの BigQuery・Cloud Storage オブジェクトへの、読み書きを許可するか Resource Manager 2023 GA 誰の、どのサービス、 BigQuery データセットへの、読み書きを許可するか Analytics Hub 2023 GA 誰の、BigQuery のデータセットへの、読みを許可するか VPC Service Controls ネットワークやサービスをどう横断する、読み書きを許可するか BigLake 2022 GA BigQuery の外のリソースへの読みの許可を、 BigQuery に委任する
BigQuery の監査 アクセス管理 誰がアクセスするか アクセス監査 誰がアクセスしたか データ検出 管理対象を網羅しているか 概要 BigQuery
のアクセス監査に使えるサービス • BigQuery • Cloud Logging
BigQuery INFORMATION_SCHEMA ビューを用いて SQL で監査できる BigQuery の監査 JOBS_BY_* BigQuery ジョブの現在の状態
を確認できる 誰が使っているか確認 OBJECT_PRIVILEGES BigQuery オブジェクトに 設定されているアクセス制御 を確認できる 正しく設定されているか確認 用途 • オーナー権限が過剰について いないか確認する – 例)オーナー権限がついている数を確認 SELECT COUNTIF(privilege_type = "roles/bigquery.dataOwner") FROM myproject.`region-us`.INFORMATION_SCHEMA.OBJECT_PRIVILEGES WHERE object_name = "mydataset"
Cloud Logging 監査ログ 管理アクティビティやデータアクセスのログが書き込まれる (データアクセス監査ログは有効化が必要)。 「誰が、いつ、どこで、何をしたか」が確認できる。 用途 • どのテーブルやクエリが最も主流か確認する •
データコネクタを用いて参照しているスプレッドシートを特定する BigQuery の監査
BigQuery のデータ検出 アクセス管理 誰がアクセスするか アクセス監査 誰がアクセスしたか データ検出 管理対象を網羅しているか 概要 BigQuery
のデータ検出に使えるサービス • Dataplex • Cloud DLP 用途 • 届きにくいデータへの ショートカットとしてカタログ • 個人情報の含まれるデータを 自動で特定する https://cloud.google.com/bigquery/docs/data-governance より図を引用
BigQuery のデータ検出 Dataplex 2022 GA https://cloud.google.com/data-catalog/docs/concepts/overview, https://cloud.google.com/dataplex/docs/data-profiling-overview より図を引用 メタデータの管理、検索、データプロファイリングを行う。 (Data
Catalog は Dataplex に統合)
BigQuery のデータ検出 Cloud DLP https://cloud.google.com/dlp より図を引用 データの検出、分類、機密の秘匿化を行う。
前半のまとめ BigQuery の権限管理は、以下の要素の集合 バランスよく取り入れよう アクセス管理 アクセス監査 データの検出 × × 誰がアクセスするか
Cloud IAM など 誰がアクセスしたか Cloud Logging など 管理対象を網羅しているか Cloud DLP など
概要 BigQuery の権限設計のアイデア 複数企業事例を踏まえたダミー情報です。 na0 チャート 1. データ基盤利用者~30人 ◦ Cloud
IAM ◦ BigQuery INFORMATION_SCHEMA 2. データ基盤利用者~99人 ◦ + BigQuery IAM ◦ + Cloud Logging ◦ (任意)+ BigQuery 承認済みデータセット or + BigQuery 列レベル セキュリティ 3. データ基盤利用者100~人 ◦ + VPC Service Controls ◦ + BigLake ◦ (任意)+ Dataplex ◦ (任意)+ Analytics Hub ◦ (任意)+ BigQuery 行レベル セキュリティ 権限設計案
データ基盤の素 各自が手元でデータを読み書きする。 権限設計案 Google Workspace Local Local 売上_最終版_v3.xlsx 売上_最終版_v2_のコピー(経理確認済み .xlsm
社内閲覧者 うまいことデータ提供 社員名簿_2023_Q2.docx 稟議書テンプレート (2).xls
個人データ基盤 権限設計案 管理者 自由なプロジェクト BigQuery Google Cloud プロジェクトを作成して、1人でデータを読み書きする。 管理者 1
人 主なサービス Cloud IAM Google Workspace
小さなデータ基盤 データ利用の布教活動。 管理者 2~9 人 主なサービス Cloud IAM 権限設計案 管理者
自由なプロジェクト BigQuery 書込みを制限されたプロジェクト BigQuery Google Workspace
権限管理の幕開け 権限の分離。 管理者 1~3 人 データ編集者 0~4 人 データ閲覧者 0~9
人 主なサービス • Cloud IAM 権限設計案 管理者 編集者 自由なプロジェクト BigQuery 書込みを制限されたプロジェクト BigQuery 社内閲覧者
自由なデータ作成環境 綺麗なデータを置くプロジェクト・データセットを分離。 管理者 2~5 人 データ編集者 3~9 人 データ閲覧者 1~29
人 主なサービス • Cloud IAM 権限設計案 社内閲覧者 編集者 自由なプロジェクト BigQuery 書込みを制限されたプロジェクト BigQuery
閲覧権限の細分化 個人情報を排したデータを承認済みビューで提供 管理者 3~9 人 データ編集者 5~29 人 データ閲覧者 20~99
人 主なサービス • 承認済みデータセット • BigQuery IAM 権限設計案 社内閲覧者 編集者 自由なプロジェクト BigQuery 承認済みビュー BigQuery 書込みを制限されたプロジェクト BigQuery
権限の重複を避けてリソース階層で共通化 管理者 4~19 人 データ編集者 5~29 人 データ閲覧者 20~99 人
主なサービス • Cloud IAM リソース階層の導入 権限設計案 組織 社内閲覧者 編集者 自由なプロジェクト BigQuery 承認済みビュー BigQuery 新プロダクト BigQuery 書込みを制限されたプロジェクト BigQuery いつのまにか登場したプロジェクト
監査 監査やデータガバナンスのためのアセスメント 管理者 4~19 人 データ編集者 1~49 人 データ閲覧者 1~99
人 主なサービス • Cloud Logging 権限設計案 組織 社内閲覧者 編集者 自由なプロジェクト BigQuery 承認済みビュー BigQuery 新プロダクト BigQuery 監査用プロジェクト BigQuery log sink 書込みを制限されたプロジェクト BigQuery
他クラウド環境からの結合 AWSのデータをクエリする 管理者 5~19 人 データ編集者 1~49 人 データ閲覧者 1~299
人 主なサービス • BigLake 権限設計案 組織 社内閲覧者 編集者 自由なプロジェクト BigQuery 承認済みビュー BigQuery 新プロダクト BigQuery 監査用プロジェクト BigQuery log sink 書込みを制限されたプロジェクト BigQuery 新プロダクト Amazon S3 BigLake
組織横断権限の削減 データの認知負荷を下げる、組織横断を避けるための権限絞り込み 管理者 5~19 人 データ編集者 1~49 人 データ閲覧者 1~299
人 主なサービス • BigQuery IAM 権限設計案 組織 社内閲覧者 編集者 自由なプロジェクト BigQuery 承認済みビュー BigQuery 新プロダクト BigQuery 監査用プロジェクト BigQuery log sink 書込みを制限されたプロジェクト BigQuery 新プロダクト Amazon S3 BigLake
セキュアゾーン 個人情報等へアクセス可能な、堅牢な環境を用意する 管理者 5~49 人 データ編集者 1~299 人 データ閲覧者 1~999
人 主なサービス • VPC Service Controls 権限設計案 組織 社内閲覧者 編集者 自由なプロジェクト BigQuery 承認済みビュー BigQuery 新プロダクト BigQuery 監査用プロジェクト BigQuery log sink データ クリーンルーム 書込みを制限されたプロジェクト BigQuery オフィス 新プロダクト Amazon S3 BigLake
データ配布 社外のBigQuery利用者にデータを配布する 管理者 5~49 人 データ編集者 1~299 人 データ閲覧者 1~999
人 主なサービス • Analytics Hub 権限設計案 組織 社内閲覧者 編集者 自由なプロジェクト BigQuery 承認済みビュー BigQuery 新プロダクト BigQuery 監査用プロジェクト BigQuery log sink データ クリーンルーム 書込みを制限されたプロジェクト BigQuery オフィス 社外閲覧者 新プロダクト Amazon S3 BigLake
BigQuery オブジェクトの廃止 退職等により、保守できない BigQuery オブジェクトの新規閲覧を縮小 管理者 5~49 人 データ編集者 1~299
人 データ閲覧者 1~999 人 主なサービス • Cloud IAM 権限設計案 組織 社内閲覧者 編集者 自由なプロジェクト BigQuery 承認済みビュー BigQuery 新プロダクト BigQuery 監査用プロジェクト BigQuery log sink データ クリーンルーム 書込みを制限されたプロジェクト BigQuery オフィス 社外閲覧者 新プロダクト Amazon S3 BigLake
おわりに 背景 • データ活用とセキュリティのバランスが求められている • BigQuery はデータ活用とセキュリティに注力できるサービス メッセージ • BigQuery
はアクセス制御・監査の多様なサービスと連携する • 最初から完璧を目指さず、情報を集め、改善しよう 今日のゴール • あの業務で使えるかも?を 1 つでも持ち帰ってもらう
Q&A 小規模 データ基盤のニーズ、シーズどちらが先? ニーズが先。ただし顧客の声を聞きすぎない。 データ基盤から生えた BI やスプレッドシートに基づく、オペレー ションとどう戦うか? (暗黙的であっても)サービスレベルに適合するなら推進してよい。適合しな いなら、サービスレベルをあげた基盤を作るか、オペレーション側の要件を下
げるように調整する。 データ基盤の作ったけど利用者増えない ニーズがないか、利用コストが見合ってないか、認知されていないか。 おまけ
Q&A 中規模 データ基盤の権限頑張っても BI ツールでアクセスされる? 抜け穴にならないように、OAuth 認証を基本としたり、レポート作成者のリテ ラシー勉強会をする。 SQL 書けないと使えない?
スプレッドシートや Looker Studio の BigQuery / Looker 接続なら、利用者 側は使い慣れたピボットテーブルでデータを扱える。 おまけ
Q&A 大規模 アクセス整理中も参照され続けるんだけど? • 拒否ポリシーを使う • 監査ログを使って、利用者を特定して、丁寧にサポートする • 元テーブルをコピーして、元テーブル +
ERROR() を返すビューに置き換え る • 急にアクセス権限を止めると、業務上の事故に繋がるので留意する 単一のテーブルをBIで複数社に提供したい • シャーディングでテーブルを分離する • 行レベルセキュリティで分離する • SESSION_USER() = x な viewを作る Dataplexの事例は? 大規模な組織で適用した事例は見つけられず。 おまけ