BigQueryの承認済みビュー設定方法


はじめに

複数プロジェクトでBigQueryを利用していると、プロジェクトまたぎのビューを利用したい場面が度々訪れるかと思います。そこに権限の問題が絡んでくると非常に厄介ですが、当社でもこの問題を踏んだことがありました。

当社ではBigQueryにてデータレイクを構築しているのですが、セキュリティの観点から以下のような条件を設けていました。

  • データレイクとデータウェアハウスは別プロジェクトで作成し、限られたユーザーのみデータレイクプロジェクトへのアクセス権を付与する。
  • データレイクプロジェクトのデータを参照する場合は、データウェアハウスプロジェクトからデータレイクプロジェクトへのビューを作成して参照させる。

プロジェクトの構造は以下の通りです。

|-- 親フォルダ
|   |-- データレイクプロジェクト 
|      |        |--  ビューで参照したいテーブル
|   |-- データウェアハウスプロジェクト
|      |        |--  今回作成するビュー

こうした設定を行う場合、データウェアハウスの閲覧権限のみを持つユーザーがビューにクエリすると、データレイクへのアクセス権限がない為にエラーになってしまいます。扱うデータの機密性の観点からデータレイクを扱えるユーザーは限定したい為、クエリ発行ユーザーに権限を持たせる以外の方法でこれを解決する必要がありました。

0. 承認済みビュー

BQの承認済みビュー機能を利用します。詳細は公式ドキュメントをご確認下さい。

1. ビューの作成

まずは通常通りプロジェクトまたぎのビューを作成します。以下は先述した当社の例ですが、データレイクプロジェクトにはビューで参照したいテーブルがあり、データウェアハウスプロジェクトにて当該のビューを作成します。

|-- 親フォルダ
|   |-- データレイクプロジェクト 
|      |        |--  ビューで参照したいテーブル
|   |-- データウェアハウスプロジェクト
|      |        |--  今回作成するビュー

2. ビューの承認

ビューの承認設定を行います。参照されるプロジェクト(当社の例ではデータレイクプロジェクト)にて当該のデータセットを開き、共有データセットを選択します。

3. データセットの承認

共有データセットを選択すると以下のような画面になります。

ここで承認済みのビュータブに切り替え、下段のプロジェクト・データセット・ビューを選択し、画面下部の完了ボタンを押せば設定完了です。

まとめ

承認済みビュー設定を用いることで、権限に配慮しつつプロジェクトまたぎのビューを設定することができました。BigQueryは細かな要件にも対応でき、なかなか使い勝手が良い印象です。