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

2023 年の BigQuery 権限管理

na0
February 16, 2023

2023 年の BigQuery 権限管理

酒とゲームとインフラとGCP 第18回 発表資料

na0

February 16, 2023
Tweet

More Decks by na0

Other Decks in Programming

Transcript

  1. はじめのはじめに BigQuery はとても楽しい • 今日の話を知らなくても BigQuery を触り始めるのに差し支えなし! 気楽に聞いてね • 49

    ページ / 20 分 • 資料公開済み Twitter @ na0fu3y • この資料よりも公式ドキュメントが詳しく正しい 想定読者 • BigQuery でデータを組織活用したい人 • セキュリティ ポリシーを BigQuery に適用したい人
  2. ID • na0 • Naofumi Yamada • na0fu3y (Twitter /

    GitHub) Google Cloud との関わり •  Google Cloud Champion Innovator - Data Analytics •  BigQuery ユーザコミュニティ BQ FUN 主催者 趣味 • BigQuery • ボードゲーム • マリオカート8 デラックス 自己紹介
  3. 背景 • データ活用とセキュリティのバランスが求められている • BigQuery はデータ活用とセキュリティに注力できるサービス メッセージ • BigQuery はアクセス制御・監査の多様なサービスと連携する

    • 最初から完璧を目指さず、情報を集め、改善しよう 今日のゴール • あの業務で使えるかも?を 1 つでも持ち帰ってもらう 今日伝えること
  4. 目次 1. はじめに 2. BigQuery のアクセス制御 3. BigQuery の監査 4.

    BigQuery のデータ検出 5. 権限設計案 6. おわりに 前半 5 分 後半 15 分
  5. 暗黙知 • 経験 • 勘 形式×暗黙知 • AI • RPA

    • 委託 形式知 • 計測 • 集計 • 可視化 データ活用の要請 はじめに • 統計分析 • 自動化 • 品質管理 業務効率化のために形式知化が進められている 結果として、データ基盤を作る組織が増えている
  6. BigQuery の概要 はじめに Google Cloud のサーバーレス データウェアハウス 強み • 「利用者の管理が必須なもの」が少ない(データとアクセス制御)

    • 大規模データの保存・分析 • 各種 Google プロダクトと連携 この資料で取り上げること • Google Cloud のサービス群を組み合わせて、BigQuery の攻めと守りのバラ ンスを柔軟に設計する • 今日は概要のみ、個別の詳細設計は専門家にお問合せ
  7. 概要 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
  8. 概要 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 行レベル セキュリティ
  9. Google Cloud の権限 BigQuery のアクセス制御 • 許可ポリシーに該当すれば許可 • 禁止ポリシーに該当すれば 許可ポリシーによらず禁止

    • ポリシーは子リソースに継承 https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy より図を引用
  10. Cloud IAM 拒否ポリシー 2022 GA 「誰のどのサービスへの、読み書きを禁止するか」を設定する。 組織、フォルダ、プロジェクトレベルで設定できる。 許可ポリシーより優先される。 用途 •

    親リソースで許可された ポリシーからの防御 BigQuery のアクセス制御 Organization Project - data source Project - data clean room BigQuery BigQuery 読み -読み
  11. BigQuery 「誰のどの BigQuery オブジェクトへの、読み書きを許可するか」を BigQuery データセット、オブジェクト、列、行レベルで設定する。 用途 • BigQuery オブジェクトレベルで管理すべき細部の権限設定

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

    データセット単位やテーブル単位で 権限を変えたい場合 BigQuery のアクセス制御 所属事業データはアクセス可 別事業データはアクセス権なし
  13. BigLake 2022 GA BigQuery の外のリソースへのアクセス許可を、 BigQuery に委任する。 用途 • 権限管理をサービスアカウントレベルから

    BigQuery オブジェクトレベルに 寄せる BigQuery のアクセス制御 https://cloud.google.com/bigquery/docs/biglake-intro より図を引用
  14. Resource Manager 2023 GA 「誰の、どのサービスへの、読み書きを許可するか」を設定する。 組織、フォルダ、プロジェクト、BigQuery データセットレベルで設定でき る。 用途 •

    BigQuery 以外のリソースも 含めた一貫管理 BigQuery のアクセス制御 https://cloud.google.com/resource-manager/docs/tags/tags-overview より画像を引用
  15. 注意 BigQuery のアクセス制御 BigQuery の機能を活用しすぎず、 組み合わせ爆発しない権限設計を心がける 例 • 全社の大まかな権限設定は、大きめに行う ◦

    プロジェクト × ユーザー単位 ◦ データセット × Google グループ単位 • 最も厳しいセキュリティ ポリシーにのみ対応する専門チームを作り、VPC Service Controlsを用いたセキュアゾーンを作る
  16. まとめ 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 に委任する
  17. 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"
  18. BigQuery のデータ検出 アクセス管理 誰がアクセスするか アクセス監査 誰がアクセスしたか データ検出 管理対象を網羅しているか 概要 BigQuery

    のデータ検出に使えるサービス • Dataplex • Cloud DLP 用途 • 届きにくいデータへの ショートカットとしてカタログ • 個人情報の含まれるデータを 自動で特定する https://cloud.google.com/bigquery/docs/data-governance より図を引用
  19. 概要 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 行レベル セキュリティ 権限設計案
  20. 小さなデータ基盤 データ利用の布教活動。 管理者 2~9 人 主なサービス Cloud IAM 権限設計案 管理者

    自由なプロジェクト BigQuery 書込みを制限されたプロジェクト BigQuery Google Workspace
  21. 権限管理の幕開け 権限の分離。 管理者 1~3 人 データ編集者 0~4 人 データ閲覧者 0~9

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

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

    人 主なサービス • 承認済みデータセット • BigQuery IAM 権限設計案 社内閲覧者 編集者 自由なプロジェクト BigQuery 承認済みビュー BigQuery 書込みを制限されたプロジェクト BigQuery
  24. 権限の重複を避けてリソース階層で共通化 管理者 4~19 人 データ編集者 5~29 人 データ閲覧者 20~99 人

    主なサービス • Cloud IAM リソース階層の導入 権限設計案 組織 社内閲覧者 編集者 自由なプロジェクト BigQuery 承認済みビュー BigQuery 新プロダクト BigQuery 書込みを制限されたプロジェクト BigQuery いつのまにか登場したプロジェクト
  25. 監査 監査やデータガバナンスのためのアセスメント 管理者 4~19 人 データ編集者 1~49 人 データ閲覧者 1~99

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

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

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

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

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

    人 データ閲覧者 1~999 人 主なサービス • Cloud IAM 権限設計案 組織 社内閲覧者 編集者 自由なプロジェクト BigQuery 承認済みビュー BigQuery 新プロダクト BigQuery 監査用プロジェクト BigQuery log sink データ クリーンルーム 書込みを制限されたプロジェクト BigQuery オフィス 社外閲覧者 新プロダクト Amazon S3 BigLake
  31. おわりに 背景 • データ活用とセキュリティのバランスが求められている • BigQuery はデータ活用とセキュリティに注力できるサービス メッセージ • BigQuery

    はアクセス制御・監査の多様なサービスと連携する • 最初から完璧を目指さず、情報を集め、改善しよう 今日のゴール • あの業務で使えるかも?を 1 つでも持ち帰ってもらう
  32. Q&A 大規模 アクセス整理中も参照され続けるんだけど? • 拒否ポリシーを使う • 監査ログを使って、利用者を特定して、丁寧にサポートする • 元テーブルをコピーして、元テーブル +

    ERROR() を返すビューに置き換え る • 急にアクセス権限を止めると、業務上の事故に繋がるので留意する 単一のテーブルをBIで複数社に提供したい • シャーディングでテーブルを分離する • 行レベルセキュリティで分離する • SESSION_USER() = x な viewを作る Dataplexの事例は? 大規模な組織で適用した事例は見つけられず。 おまけ