Authorized Views: データアクセス制御の強力な仕組み
承認済みビュー(Authorized Views)は、基となるテーブルへの直接アクセス権限がないユーザーでも、ビューを通じて特定のデータにアクセスできるようにする仕組みです。
ビューに「基となるテーブルからデータを読み取る権限」を与え、 ユーザーには「そのビューを使う権限だけ」を付与します。 これにより、テーブル全体へのアクセスを許可せずに、必要なデータのみを公開できます。
シナリオ: 全社員データを含むテーブルがあるが、各部門には自部門のデータのみアクセスさせたい
効果: 各部門は自部門のデータのみ閲覧可能。他部門のデータや全社データへのアクセスは不可。
シナリオ: 顧客データを分析チームに提供したいが、個人を特定できる情報(PII)は見せたくない
効果: 分析に必要なデータは提供しつつ、個人を特定できる情報は保護。
シナリオ: 経営層には全社員の給与データ、マネージャーには自チームのみ、一般社員には自分のみ
効果: 役職に応じて適切な粒度でデータアクセスを制御。
シナリオ: 本番環境のデータを分析環境に共有したいが、直接アクセスは許可したくない
効果: 本番テーブルへの直接アクセスを防ぎ、必要なデータのみを安全に共有。
| 項目 | 制限内容 | 対処法 |
|---|---|---|
| プロジェクト制約 | ビューと基のテーブルは同じプロジェクトにある必要がある | 異なるデータセットは可能。クロスプロジェクトの場合はデータ転送を検討 |
| パフォーマンス | ビューは実行時にクエリが評価されるため、複雑なビューは遅い | マテリアライズドビューの使用を検討 |
| ネストの制限 | 承認済みビューの上に別の承認済みビューを作ることは非推奨 | シンプルな階層構造を維持する |
| 外部テーブル | 外部テーブル(GCS、Driveなど)には承認済みビューを使用できない | データをBigQueryにインポートする |
| データの整合性 | 基のテーブルが変更されるとビューの結果も変わる | スナップショットやマテリアライズドビューで固定 |
| 方法 | メリット | デメリット | 適用場面 |
|---|---|---|---|
| 承認済みビュー |
・きめ細かい制御 ・SQLで柔軟に定義 ・動的フィルタリング可能 |
・同一プロジェクト制約 ・ビュー実行時のコスト |
部門別アクセス制御 PII隠蔽 行・列レベルの制御 |
| 行レベルセキュリティ (Row-Level Security) |
・テーブルに直接設定 ・ビュー不要 ・ポリシーベース管理 |
・複雑な条件の設定が難しい ・BigQuery Enterprise以上が必要 |
ユーザーごとの動的フィルタ マルチテナント環境 |
| 列レベルセキュリティ (Column-Level Security) |
・列単位での制御 ・Policy Tagsで管理 ・Data Catalog連携 |
・行のフィルタリング不可 ・設定が複雑 |
機密列の保護 PII列のマスキング |
| データセット権限 |
・シンプル ・管理が簡単 |
・データセット全体が対象 ・きめ細かい制御不可 |
部門別データセット分離 シンプルな権限管理 |
承認済みビューは、BigQueryにおける強力なデータガバナンスツールです。 適切に設計・運用することで、セキュリティを保ちながら必要なデータを効率的に共有できます。