4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

BeeXAdvent Calendar 2024

Day 11

組織内ユーザーがLooker Studioから指定のBigQueryデータにのみ接続できるようにする設定

Last updated at Posted at 2024-12-10

はじめに

本記事では、サービスアカウントを使って、Looker StudioからBigQueryデータにアクセスするまでの実装手順を整理します。

指定BigQueryデータセットにのみアクセスできる専用のサービスアカウントを作成し、
組織のLooker Studio利用ユーザーに紐づけることで、
たとえばグローバル展開企業において、
各国ユーザーが自国内データにのみアクセスできるように制限することが可能です。

Looker Studioヘルプ記事1を参考にしながら進めていきます。

前知識

LookerStudioからBigQueryデータセットに接続する際の認証方法は3種類あります2

  1. オーナーの認証情報:
    • 特定のユーザーの認証情報を使ってデータセットへのアクセスを承認(閲覧ユーザーはBigQueryデータセットへのアクセス権を保持していなくても、そのデータに基づくレポートを閲覧、作成できる)
  2. 閲覧者の認証情報:
    • 閲覧ユーザー自身の、BigQueryデータセットへのアクセス権が利用される(アクセス権を持っていないBigQueryデータセットへのアクセス不可)
  3. サービス アカウント認証情報:
    • サービスアカウントに設定したアクセス権を使って、BigQueryデータセットにアクセスする

本記事では、3つ目のサービスアカウント認証を使った接続を行います。

アクセスの流れと必要なロール

サービスアカウント認証で、LookerStudioからBigQueryデータセットに接続するときの流れを図にしています。
image.png

各プリンシパルの役割と必要なロールは以下です。

  • 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と管理」 → 「サービスアカウント」に移動し、
「サービスアカウントを作成」をクリック
image.png

任意の名前を設定し、
「BigQueryジョブユーザー」ロール3を付与します。
※このサービスアカウントが、プロジェクト内のBigQueryに対してクエリを含むジョブを実行できるようになります。
image.png

「完了」クリック後、サービス アカウント一覧に表示されていることを確認します。
※こちらのメールアドレスは後ほどコピペして使います。
image.png

Looker Studioユーザーに紐づける

続けて、LookerStudioユーザが、このサービスアカウントを利用できるように設定していきます[5]。

  • 「プリンシパルの追加」:Looker Studioユーザーのメールアドレス
  • 「ロールを割り当てる」:「サービスアカウントユーザー」
    image.png

これで、Looker Studioユーザーは、このサービスアカウントを使ってBigQueryデータセットにアクセスできるようになります。

BigQueryデータセットの閲覧権限を付与

次に、BigQuery管理コンソールに移動し、Looker Studioからアクセスしたいデータセットを選択します。
「共有」タブから「権限」をクリックします。
image.png

「プリンシパルを追加」をクリックし、先ほどのサービスアカウントに、このデータセットへのアクセス権を追加します。

  • 「新しいプリンシパル」:先程コピペしたメールアドレス
  • 「ロール」:BigQueryデータ閲覧者
    image.png

これで、このサービスアカウントはBigQueryデータセットのデータ閲覧およびクエリ発行ができるようになりました。

このあと、Looker Studioがこのサービスアカウントの権限を使えるように設定していきます。

Looker Studioサービスエージェントに紐づける

まず最初に、Looker Studio自体のアカウント情報を確認します。
※Google Cloudが内部的に管理しているアカウントで、サービスエージェントと呼びます4

以下のページにアクセスします。

Google Workspace または Cloud Identity のユーザーであれば、LookerStudioエージェントのアドレス情報が表示されます。このアドレスをコピーしておきます。
※このLooker Studioサービスエージェントは、組織に共通のものです。
image.png

Google Cloudコンソールに戻って、新規作成したサービスアカウントの詳細に移動します。
Google Cloudプロジェクト → 「IAMと管理」 → 「サービスアカウント」 → 作成したサービスアカウント → 「権限」タブ → 「アクセスを許可」をクリック

Looker Studioサービスエージェントが、このサービスアカウントの権限を使えるように設定します。
以下を設定し、「保存」クリック

  • 「プリンシパルの追加」:Looker Studioサービスエージェントのメールアドレス
  • 「ロールを割り当てる」:「サービスアカウントトークン作成者」
    image.png

これで、Looker Studio自体が、作成したサービスアカウントの権限を使って、BigQueryデータセットにアクセスする準備が整いました!

次からは、LookerStudioユーザーでLooker Studioにログインし、組織のBigQueryにアクセスする手順を確認していきます。

確認手順

LookerStudioユーザーの接続設定を以下ステップで確認していきます。

Looker StudioユーザーでLooker Studioにログイン

Looker Studioユーザーで、Looker Studioページにアクセスします。

サービスアカウントの接続情報でBigQueryデータセットに接続設定

接続先としてBigQueryを選択
image.png

右上の「データの認証情報: <ユーザー名>」クリック → 「サービスアカウント認証情報」選択
作成したサービスアカウントのメールアドレスを入力します。
image.png

指定のBigQueryデータセットを選択します。

最後に

サービスアカウントを使った認証方法にすると、LookerStudioユーザーごとのロール管理ではなく、
サービスアカウント側に紐づける権限で、データソースとして接続可能なBigQueryデータセットと、データソースを作成できるユーザーの管理を行うことになります。

参考URL

この記事で参考にしたURLです。

  1. Looker Studioのヘルプ記事:Looker Studio 用に Google Cloud サービス アカウントを設定する
    https://support.google.com/looker-studio/answer/10835295?hl=ja

  2. Looker Studioのヘルプ記事:データの認証情報
    https://support.google.com/looker-studio/answer/6371135?hl=ja

  3. Google Cloudドキュメント:BigQuery の IAM ロールと権限(BigQuery Job User)
    https://cloud.google.com/bigquery/docs/access-control?hl=ja#bigquery.jobUser

  4. Google Cloudドキュメント:サービス アカウントのタイプ
    https://cloud.google.com/iam/docs/service-account-types?hl=ja#service-agents

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?