Slide 1

Slide 1 text

2023 年の BigQuery 権限管理 na0 酒とゲームとインフラとGCP 第18回

Slide 2

Slide 2 text

はじめのはじめに BigQuery はとても楽しい ● 今日の話を知らなくても BigQuery を触り始めるのに差し支えなし! 気楽に聞いてね ● 49 ページ / 20 分 ● 資料公開済み Twitter @ na0fu3y ● この資料よりも公式ドキュメントが詳しく正しい 想定読者 ● BigQuery でデータを組織活用したい人 ● セキュリティ ポリシーを BigQuery に適用したい人

Slide 3

Slide 3 text

ID ● na0 ● Naofumi Yamada ● na0fu3y (Twitter / GitHub) Google Cloud との関わり ●  Google Cloud Champion Innovator - Data Analytics ●  BigQuery ユーザコミュニティ BQ FUN 主催者 趣味 ● BigQuery ● ボードゲーム ● マリオカート8 デラックス 自己紹介

Slide 4

Slide 4 text

背景 ● データ活用とセキュリティのバランスが求められている ● BigQuery はデータ活用とセキュリティに注力できるサービス メッセージ ● BigQuery はアクセス制御・監査の多様なサービスと連携する ● 最初から完璧を目指さず、情報を集め、改善しよう 今日のゴール ● あの業務で使えるかも?を 1 つでも持ち帰ってもらう 今日伝えること

Slide 5

Slide 5 text

目次 1. はじめに 2. BigQuery のアクセス制御 3. BigQuery の監査 4. BigQuery のデータ検出 5. 権限設計案 6. おわりに 前半 5 分 後半 15 分

Slide 6

Slide 6 text

暗黙知 ● 経験 ● 勘 形式×暗黙知 ● AI ● RPA ● 委託 形式知 ● 計測 ● 集計 ● 可視化 データ活用の要請 はじめに ● 統計分析 ● 自動化 ● 品質管理 業務効率化のために形式知化が進められている 結果として、データ基盤を作る組織が増えている

Slide 7

Slide 7 text

セキュリティの要請 はじめに セキュリティ・コンプライアンスも重要 誰が、いつ、どこから、どのデータに            したい データ活用とのバランス アクセス可能かを設計 アクセスしたかを記録 機密性 可用性 誰もアクセスできないなら安全 誰でもアクセスできるなら活用しやすい より良いバランスを目指して解像度を高めるのが大事

Slide 8

Slide 8 text

BigQuery の概要 はじめに Google Cloud のサーバーレス データウェアハウス 強み ● 「利用者の管理が必須なもの」が少ない(データとアクセス制御) ● 大規模データの保存・分析 ● 各種 Google プロダクトと連携 この資料で取り上げること ● Google Cloud のサービス群を組み合わせて、BigQuery の攻めと守りのバラ ンスを柔軟に設計する ● 今日は概要のみ、個別の詳細設計は専門家にお問合せ

Slide 9

Slide 9 text

BigQuery の権限管理 はじめに BigQuery の権限管理は、以下の要素の集合 アクセス管理 誰がアクセスするか アクセス監査 誰がアクセスしたか データ検出 管理対象を網羅しているか

Slide 10

Slide 10 text

概要 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

Slide 11

Slide 11 text

概要 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 行レベル セキュリティ

Slide 12

Slide 12 text

Google Cloud の権限 BigQuery のアクセス制御 ● 許可ポリシーに該当すれば許可 ● 禁止ポリシーに該当すれば 許可ポリシーによらず禁止 ● ポリシーは子リソースに継承 https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy より図を引用

Slide 13

Slide 13 text

Organization Cloud IAM 「誰のどのサービスへの、読み書きを許可するか」を設定する。 組織、フォルダ、プロジェクトレベルで設定できる。 用途 ● 組織やプロジェクトレベルで変動する大まかな権限設定 BigQuery のアクセス制御 Project - data source Project - free to use BigQuery BigQuery 読み +書き

Slide 14

Slide 14 text

Cloud IAM 拒否ポリシー 2022 GA 「誰のどのサービスへの、読み書きを禁止するか」を設定する。 組織、フォルダ、プロジェクトレベルで設定できる。 許可ポリシーより優先される。 用途 ● 親リソースで許可された ポリシーからの防御 BigQuery のアクセス制御 Organization Project - data source Project - data clean room BigQuery BigQuery 読み -読み

Slide 15

Slide 15 text

BigQuery 「誰のどの BigQuery オブジェクトへの、読み書きを許可するか」を BigQuery データセット、オブジェクト、列、行レベルで設定する。 用途 ● BigQuery オブジェクトレベルで管理すべき細部の権限設定 BigQuery のアクセス制御 レベル アクセス制御 データセット ● BigQuery IAM ● 承認済みデータセット オブジェクト ● BigQuery IAM ● 承認済み関数 / ビュー 行 ● 行レベルのアクセス ポリシー 列 ● ポリシータグ ● Cloud KMS

Slide 16

Slide 16 text

BigQuery BigQuery IAM 「誰のどの BigQuery オブジェクトへの、読み書きを許可するか」を BigQuery データセット、オブジェクトレベルで設定する。 用途 ● データセット単位やテーブル単位で 権限を変えたい場合 BigQuery のアクセス制御 所属事業データはアクセス可 別事業データはアクセス権なし

Slide 17

Slide 17 text

BigQuery 承認済みデータセット、ビュー、関数 ソースデータへのアクセス許可なく、ビューや関数の結果を共有する。 用途 ● 一部の列や行を隠したり、加工して見せたい BigQuery のアクセス制御 アクセス権限なし 加工ビュー 未加工データ アクセス可

Slide 18

Slide 18 text

BigQuery 行レベルのアクセス ポリシー 「誰のどのテーブル行への、読みを許可するか」を設定する。 用途 ● メンバーとマネージャーで 閲覧できる行を増減する BigQuery のアクセス制御 https://cloud.google.com/bigquery/docs/row-level-security-intro より図を引用

Slide 19

Slide 19 text

BigQuery ポリシータグ 「誰のどのテーブル列への、読みを許可するか」を設定する。 用途 ● 一部の列の閲覧者を 制限したい BigQuery のアクセス制御 https://cloud.google.com/bigquery/docs/column-data-masking-intro より図を加工

Slide 20

Slide 20 text

Cloud KMS 「テーブル列を暗号化し、鍵のアクセス権による復号権限」を追加管理す る。 用途 ● BigQuery 外で暗号化した データを読む BigQuery のアクセス制御 https://cloud.google.com/bigquery/docs/column-key-encrypt より図を引用

Slide 21

Slide 21 text

VPC Service Controls 「ネットワークやサービスをどう横断する、読み書きを許可・禁止するか」を プロジェクト、 VPC ネットワークレベルで設定する。 用途 ● 信頼できる経路のみ、リソースの移動を許可する BigQuery のアクセス制御 機密情報 BigQuery オフィス 承認済みソースIP 自宅や外出先 未承認ソースIP BigQuery Cloud Storage Cloud Storage

Slide 22

Slide 22 text

BigLake 2022 GA BigQuery の外のリソースへのアクセス許可を、 BigQuery に委任する。 用途 ● 権限管理をサービスアカウントレベルから BigQuery オブジェクトレベルに 寄せる BigQuery のアクセス制御 https://cloud.google.com/bigquery/docs/biglake-intro より図を引用

Slide 23

Slide 23 text

Dataplex 2022 GA 「誰の、どのサービスへの、読み書きを許可するか」を Dataplex リソースレベルで設定する。 用途 ● プロジェクト横断のビジネスドメインやデータ信頼度レベルでの整理 BigQuery のアクセス制御 https://cloud.google.com/dataplex/docs/introduction より図を引用

Slide 24

Slide 24 text

Analytics Hub 2023 GA 「誰の、BigQuery のデータセットへの、読みを許可するか」を BigQueryデータセットに対応するListingレベルで設定する 用途 ● 組織間のデータ交換 BigQuery のアクセス制御 https://cloud.google.com/analytics-hub より図を引用

Slide 25

Slide 25 text

Resource Manager 2023 GA 「誰の、どのサービスへの、読み書きを許可するか」を設定する。 組織、フォルダ、プロジェクト、BigQuery データセットレベルで設定でき る。 用途 ● BigQuery 以外のリソースも 含めた一貫管理 BigQuery のアクセス制御 https://cloud.google.com/resource-manager/docs/tags/tags-overview より画像を引用

Slide 26

Slide 26 text

注意 BigQuery のアクセス制御 BigQuery の機能を活用しすぎず、 組み合わせ爆発しない権限設計を心がける 例 ● 全社の大まかな権限設定は、大きめに行う ○ プロジェクト × ユーザー単位 ○ データセット × Google グループ単位 ● 最も厳しいセキュリティ ポリシーにのみ対応する専門チームを作り、VPC Service Controlsを用いたセキュアゾーンを作る

Slide 27

Slide 27 text

まとめ 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 に委任する

Slide 28

Slide 28 text

BigQuery の監査 アクセス管理 誰がアクセスするか アクセス監査 誰がアクセスしたか データ検出 管理対象を網羅しているか 概要 BigQuery のアクセス監査に使えるサービス ● BigQuery ● Cloud Logging

Slide 29

Slide 29 text

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"

Slide 30

Slide 30 text

Cloud Logging 監査ログ 管理アクティビティやデータアクセスのログが書き込まれる (データアクセス監査ログは有効化が必要)。 「誰が、いつ、どこで、何をしたか」が確認できる。 用途 ● どのテーブルやクエリが最も主流か確認する ● データコネクタを用いて参照しているスプレッドシートを特定する BigQuery の監査

Slide 31

Slide 31 text

BigQuery のデータ検出 アクセス管理 誰がアクセスするか アクセス監査 誰がアクセスしたか データ検出 管理対象を網羅しているか 概要 BigQuery のデータ検出に使えるサービス ● Dataplex ● Cloud DLP 用途 ● 届きにくいデータへの ショートカットとしてカタログ ● 個人情報の含まれるデータを 自動で特定する https://cloud.google.com/bigquery/docs/data-governance より図を引用

Slide 32

Slide 32 text

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 に統合)

Slide 33

Slide 33 text

BigQuery のデータ検出 Cloud DLP https://cloud.google.com/dlp より図を引用 データの検出、分類、機密の秘匿化を行う。

Slide 34

Slide 34 text

前半のまとめ BigQuery の権限管理は、以下の要素の集合 バランスよく取り入れよう アクセス管理 アクセス監査 データの検出 × × 誰がアクセスするか Cloud IAM など 誰がアクセスしたか Cloud Logging など 管理対象を網羅しているか Cloud DLP など

Slide 35

Slide 35 text

概要 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 行レベル セキュリティ 権限設計案

Slide 36

Slide 36 text

データ基盤の素 各自が手元でデータを読み書きする。 権限設計案 Google Workspace Local Local 売上_最終版_v3.xlsx 売上_最終版_v2_のコピー(経理確認済み .xlsm 社内閲覧者 うまいことデータ提供 社員名簿_2023_Q2.docx 稟議書テンプレート (2).xls

Slide 37

Slide 37 text

個人データ基盤 権限設計案 管理者 自由なプロジェクト BigQuery Google Cloud プロジェクトを作成して、1人でデータを読み書きする。 管理者 1 人 主なサービス Cloud IAM Google Workspace

Slide 38

Slide 38 text

小さなデータ基盤 データ利用の布教活動。 管理者 2~9 人 主なサービス Cloud IAM 権限設計案 管理者 自由なプロジェクト BigQuery 書込みを制限されたプロジェクト BigQuery Google Workspace

Slide 39

Slide 39 text

権限管理の幕開け 権限の分離。 管理者 1~3 人 データ編集者 0~4 人 データ閲覧者 0~9 人 主なサービス ● Cloud IAM 権限設計案 管理者 編集者 自由なプロジェクト BigQuery 書込みを制限されたプロジェクト BigQuery 社内閲覧者

Slide 40

Slide 40 text

自由なデータ作成環境 綺麗なデータを置くプロジェクト・データセットを分離。 管理者 2~5 人 データ編集者 3~9 人 データ閲覧者 1~29 人 主なサービス ● Cloud IAM 権限設計案 社内閲覧者 編集者 自由なプロジェクト BigQuery 書込みを制限されたプロジェクト BigQuery

Slide 41

Slide 41 text

閲覧権限の細分化 個人情報を排したデータを承認済みビューで提供 管理者 3~9 人 データ編集者 5~29 人 データ閲覧者 20~99 人 主なサービス ● 承認済みデータセット ● BigQuery IAM 権限設計案 社内閲覧者 編集者 自由なプロジェクト BigQuery 承認済みビュー BigQuery 書込みを制限されたプロジェクト BigQuery

Slide 42

Slide 42 text

権限の重複を避けてリソース階層で共通化 管理者 4~19 人 データ編集者 5~29 人 データ閲覧者 20~99 人 主なサービス ● Cloud IAM リソース階層の導入 権限設計案 組織 社内閲覧者 編集者 自由なプロジェクト BigQuery 承認済みビュー BigQuery 新プロダクト BigQuery 書込みを制限されたプロジェクト BigQuery いつのまにか登場したプロジェクト

Slide 43

Slide 43 text

監査 監査やデータガバナンスのためのアセスメント 管理者 4~19 人 データ編集者 1~49 人 データ閲覧者 1~99 人 主なサービス ● Cloud Logging 権限設計案 組織 社内閲覧者 編集者 自由なプロジェクト BigQuery 承認済みビュー BigQuery 新プロダクト BigQuery 監査用プロジェクト BigQuery log sink 書込みを制限されたプロジェクト BigQuery

Slide 44

Slide 44 text

他クラウド環境からの結合 AWSのデータをクエリする 管理者 5~19 人 データ編集者 1~49 人 データ閲覧者 1~299 人 主なサービス ● BigLake 権限設計案 組織 社内閲覧者 編集者 自由なプロジェクト BigQuery 承認済みビュー BigQuery 新プロダクト BigQuery 監査用プロジェクト BigQuery log sink 書込みを制限されたプロジェクト BigQuery 新プロダクト Amazon S3 BigLake

Slide 45

Slide 45 text

組織横断権限の削減 データの認知負荷を下げる、組織横断を避けるための権限絞り込み 管理者 5~19 人 データ編集者 1~49 人 データ閲覧者 1~299 人 主なサービス ● BigQuery IAM 権限設計案 組織 社内閲覧者 編集者 自由なプロジェクト BigQuery 承認済みビュー BigQuery 新プロダクト BigQuery 監査用プロジェクト BigQuery log sink 書込みを制限されたプロジェクト BigQuery 新プロダクト Amazon S3 BigLake

Slide 46

Slide 46 text

セキュアゾーン 個人情報等へアクセス可能な、堅牢な環境を用意する 管理者 5~49 人 データ編集者 1~299 人 データ閲覧者 1~999 人 主なサービス ● VPC Service Controls 権限設計案 組織 社内閲覧者 編集者 自由なプロジェクト BigQuery 承認済みビュー BigQuery 新プロダクト BigQuery 監査用プロジェクト BigQuery log sink データ クリーンルーム 書込みを制限されたプロジェクト BigQuery オフィス 新プロダクト Amazon S3 BigLake

Slide 47

Slide 47 text

データ配布 社外のBigQuery利用者にデータを配布する 管理者 5~49 人 データ編集者 1~299 人 データ閲覧者 1~999 人 主なサービス ● Analytics Hub 権限設計案 組織 社内閲覧者 編集者 自由なプロジェクト BigQuery 承認済みビュー BigQuery 新プロダクト BigQuery 監査用プロジェクト BigQuery log sink データ クリーンルーム 書込みを制限されたプロジェクト BigQuery オフィス 社外閲覧者 新プロダクト Amazon S3 BigLake

Slide 48

Slide 48 text

BigQuery オブジェクトの廃止 退職等により、保守できない BigQuery オブジェクトの新規閲覧を縮小 管理者 5~49 人 データ編集者 1~299 人 データ閲覧者 1~999 人 主なサービス ● Cloud IAM 権限設計案 組織 社内閲覧者 編集者 自由なプロジェクト BigQuery 承認済みビュー BigQuery 新プロダクト BigQuery 監査用プロジェクト BigQuery log sink データ クリーンルーム 書込みを制限されたプロジェクト BigQuery オフィス 社外閲覧者 新プロダクト Amazon S3 BigLake

Slide 49

Slide 49 text

おわりに 背景 ● データ活用とセキュリティのバランスが求められている ● BigQuery はデータ活用とセキュリティに注力できるサービス メッセージ ● BigQuery はアクセス制御・監査の多様なサービスと連携する ● 最初から完璧を目指さず、情報を集め、改善しよう 今日のゴール ● あの業務で使えるかも?を 1 つでも持ち帰ってもらう

Slide 50

Slide 50 text

Q&A 小規模 データ基盤のニーズ、シーズどちらが先? ニーズが先。ただし顧客の声を聞きすぎない。 データ基盤から生えた BI やスプレッドシートに基づく、オペレー ションとどう戦うか? (暗黙的であっても)サービスレベルに適合するなら推進してよい。適合しな いなら、サービスレベルをあげた基盤を作るか、オペレーション側の要件を下 げるように調整する。 データ基盤の作ったけど利用者増えない ニーズがないか、利用コストが見合ってないか、認知されていないか。 おまけ

Slide 51

Slide 51 text

Q&A 中規模 データ基盤の権限頑張っても BI ツールでアクセスされる? 抜け穴にならないように、OAuth 認証を基本としたり、レポート作成者のリテ ラシー勉強会をする。 SQL 書けないと使えない? スプレッドシートや Looker Studio の BigQuery / Looker 接続なら、利用者 側は使い慣れたピボットテーブルでデータを扱える。 おまけ

Slide 52

Slide 52 text

Q&A 大規模 アクセス整理中も参照され続けるんだけど? ● 拒否ポリシーを使う ● 監査ログを使って、利用者を特定して、丁寧にサポートする ● 元テーブルをコピーして、元テーブル + ERROR() を返すビューに置き換え る ● 急にアクセス権限を止めると、業務上の事故に繋がるので留意する 単一のテーブルをBIで複数社に提供したい ● シャーディングでテーブルを分離する ● 行レベルセキュリティで分離する ● SESSION_USER() = x な viewを作る Dataplexの事例は? 大規模な組織で適用した事例は見つけられず。 おまけ