はじめに
本記事では、サービスアカウントを使って、Looker StudioからBigQueryデータにアクセスするまでの実装手順を整理します。
指定BigQueryデータセットにのみアクセスできる専用のサービスアカウントを作成し、
組織のLooker Studio利用ユーザーに紐づけることで、
たとえばグローバル展開企業において、
各国ユーザーが自国内データにのみアクセスできるように制限することが可能です。
Looker Studioヘルプ記事1を参考にしながら進めていきます。
前知識
LookerStudioからBigQueryデータセットに接続する際の認証方法は3種類あります2
- オーナーの認証情報:
- 特定のユーザーの認証情報を使ってデータセットへのアクセスを承認(閲覧ユーザーはBigQueryデータセットへのアクセス権を保持していなくても、そのデータに基づくレポートを閲覧、作成できる)
- 閲覧者の認証情報:
- 閲覧ユーザー自身の、BigQueryデータセットへのアクセス権が利用される(アクセス権を持っていないBigQueryデータセットへのアクセス不可)
-
サービス アカウント認証情報:
- サービスアカウントに設定したアクセス権を使って、BigQueryデータセットにアクセスする
本記事では、3つ目のサービスアカウント認証を使った接続を行います。
アクセスの流れと必要なロール
サービスアカウント認証で、LookerStudioからBigQueryデータセットに接続するときの流れを図にしています。
各プリンシパルの役割と必要なロールは以下です。
- Looker Studioユーザー:
- 役割:Looker Studioレポート上で、BigQueryへの接続を作成するユーザー
- 必要なロール:サービスアカウントユーザー
- 専用サービスアカウント:
- 役割:指定BigQueryデータセットへのアクセス権をもつサービスアカウント(本記事で新規作成)
- 必要なロール:BigQueryジョブユーザー、BigQueryデータ閲覧者
- Looker Studioサービスエージェント:
- 役割:専用サービスアカウントの権限を使って、BigQueryにアクセスするGoogle Cloud管理のサービスアカウント
- 必要なロール:サービスアカウントトークン作成者
前準備
今回の実装のために、以下が準備されている環境であることを前提に進めます。
- BigQueryに何らかデータセットがあること(Looker Studioの接続先)
- Google Workspace または Cloud Identity のユーザーであること(Looker Studioサービスエージェントを使うために必須)
実装手順
以下ステップで設定していきます。
サービスアカウントの新規作成
Google Cloudプロジェクトから、「IAMと管理」 → 「サービスアカウント」に移動し、
「サービスアカウントを作成」をクリック
任意の名前を設定し、
「BigQueryジョブユーザー」ロール3を付与します。
※このサービスアカウントが、プロジェクト内のBigQueryに対してクエリを含むジョブを実行できるようになります。
「完了」クリック後、サービス アカウント一覧に表示されていることを確認します。
※こちらのメールアドレスは後ほどコピペして使います。
Looker Studioユーザーに紐づける
続けて、LookerStudioユーザが、このサービスアカウントを利用できるように設定していきます[5]。
これで、Looker Studioユーザーは、このサービスアカウントを使ってBigQueryデータセットにアクセスできるようになります。
BigQueryデータセットの閲覧権限を付与
次に、BigQuery管理コンソールに移動し、Looker Studioからアクセスしたいデータセットを選択します。
「共有」タブから「権限」をクリックします。
「プリンシパルを追加」をクリックし、先ほどのサービスアカウントに、このデータセットへのアクセス権を追加します。
これで、このサービスアカウントはBigQueryデータセットのデータ閲覧およびクエリ発行ができるようになりました。
このあと、Looker Studioがこのサービスアカウントの権限を使えるように設定していきます。
Looker Studioサービスエージェントに紐づける
まず最初に、Looker Studio自体のアカウント情報を確認します。
※Google Cloudが内部的に管理しているアカウントで、サービスエージェントと呼びます4
以下のページにアクセスします。
Google Workspace または Cloud Identity のユーザーであれば、LookerStudioエージェントのアドレス情報が表示されます。このアドレスをコピーしておきます。
※このLooker Studioサービスエージェントは、組織に共通のものです。
Google Cloudコンソールに戻って、新規作成したサービスアカウントの詳細に移動します。
Google Cloudプロジェクト → 「IAMと管理」 → 「サービスアカウント」 → 作成したサービスアカウント → 「権限」タブ → 「アクセスを許可」をクリック
Looker Studioサービスエージェントが、このサービスアカウントの権限を使えるように設定します。
以下を設定し、「保存」クリック
これで、Looker Studio自体が、作成したサービスアカウントの権限を使って、BigQueryデータセットにアクセスする準備が整いました!
次からは、LookerStudioユーザーでLooker Studioにログインし、組織のBigQueryにアクセスする手順を確認していきます。
確認手順
LookerStudioユーザーの接続設定を以下ステップで確認していきます。
Looker StudioユーザーでLooker Studioにログイン
Looker Studioユーザーで、Looker Studioページにアクセスします。
サービスアカウントの接続情報でBigQueryデータセットに接続設定
右上の「データの認証情報: <ユーザー名>」クリック → 「サービスアカウント認証情報」選択
作成したサービスアカウントのメールアドレスを入力します。
指定のBigQueryデータセットを選択します。
最後に
サービスアカウントを使った認証方法にすると、LookerStudioユーザーごとのロール管理ではなく、
サービスアカウント側に紐づける権限で、データソースとして接続可能なBigQueryデータセットと、データソースを作成できるユーザーの管理を行うことになります。
参考URL
この記事で参考にしたURLです。
-
Looker Studioのヘルプ記事:Looker Studio 用に Google Cloud サービス アカウントを設定する
https://support.google.com/looker-studio/answer/10835295?hl=ja ↩ -
Looker Studioのヘルプ記事:データの認証情報
https://support.google.com/looker-studio/answer/6371135?hl=ja ↩ -
Google Cloudドキュメント:BigQuery の IAM ロールと権限(BigQuery Job User)
https://cloud.google.com/bigquery/docs/access-control?hl=ja#bigquery.jobUser ↩ -
Google Cloudドキュメント:サービス アカウントのタイプ
https://cloud.google.com/iam/docs/service-account-types?hl=ja#service-agents ↩