データポータルでBigQueryにサービスアカウントで認証できない時のチェックリスト

記事タイトルとURLをコピーする

G-gen の min です。データポータル(英名 Data Studio、旧称 Looker Studio)の BigQuery データソース接続において、個人の Google アカウントではなくサービスアカウントの認証情報を使用する際、権限エラーや接続エラーが発生することがあります。当記事では、サービスアカウント接続がうまくいかない場合に確認すべきポイントをチェックリスト形式で解説します。

※当記事に掲載しているエラーメッセージは、2026年3月時点の仕様に基づいています。

前提となる構成

以下のように、データポータルのレポートから BigQuery テーブルを参照する構成があります。

BigQuery テーブルは、VPC Service Controls の境界で保護された Google Cloud プロジェクトに格納されています。また、データポータルのレポートから BigQuery への認証には、個人の Google アカウントではなく、サービスアカウントを使用しています。

データポータルから BigQuery を参照

このとき、いくつかのポイントでエラーが発生することがあります。以下に、3つのチェックリストとして紹介します。

サービスエージェントに権限があるか

エラーメッセージ

エラーメッセージ(日本語)

Looker Studio サービス エージェントに、このサービスアカウントに対する「iam.service Account.getAccess Token」 権限がありません。

エラーメッセージ(英語)

Looker Studio Service Agent is missing "iam.serviceAccount.getAccessToken" permission on this service account.

サービスエージェントの権限不足を示すエラーメッセージ

接続設定時に上記のエラーが出る場合、サービスエージェントの権限不足です。

データポータルがユーザー指定のサービスアカウントになりすまして BigQuery にアクセスするためには、データポータル側のサービスエージェント(Google が管理する特殊なサービスアカウント)に対し、対象のサービスアカウントのアクセストークンを発行する権限が必要です。

単に対象のサービスアカウントに BigQuery データ閲覧者(roles/bigquery.dataViewer)等を付与するだけでは不十分であり、データポータルのサービスエージェント自体にも適切なロールを付与する必要があります。

このとき重要なのが、どの組織のサービスエージェントかという点です。許可すべきサービスエージェントは、BigQuery やサービスアカウントが存在する Google Cloud 組織のものではなく、データポータルのデータソースを作成・所有するアカウントの組織(Google Workspace または Cloud Identity のドメイン)に対応するサービスエージェントです。

サービスエージェントの仕様については、以下の記事も参照してください。

blog.g-gen.co.jp

対処法

データポータルのサービスエージェントに対し、対象のサービスアカウントに対する「サービス アカウント トークン作成者roles/iam.serviceAccountTokenCreator)」ロールを付与します。

必ず「データポータルのデータソースを作成・所有するユーザー」の Google アカウントで、以下の手順を実施してください。

  1. データポータルサービスエージェントのヘルプページ にアクセス
  2. ページ内のフォームに「サービスエージェント」のアドレスが表示されるため、これをコピー
  3. Google Cloud コンソールで、データポータルが使用する(BigQuery にアクセスさせたい)サービスアカウントの設定画面を開く
  4. コンソールの [IAM と管理] > [サービス アカウント] に移動
  5. 対象のサービスアカウントをクリックし、詳細画面へ遷移
  6. [アクセス権を持つプリンシパル] タブをクリックし、[アクセスを許可] をクリック
  7. 「新しいプリンシパル」に、手順2でコピーした データポータルサービスエージェントのメールアドレスを入力
  8. 「ロール」に「サービス アカウント トークン作成者roles/iam.serviceAccountTokenCreator)」を選択し、保存

参考 : データポータル用に Google Cloud サービス アカウントを設定する - 設定の手順

設定ユーザーに「使用」権限があるか

エラーメッセージ

このサービス アカウントを使用する権限がありません。

サービスアカウントに対する権限不足を示すエラーメッセージ

データポータルの画面上で「このサービスアカウントを使用する」という設定を行うためには、設定操作を行っているユーザー自身 が、そのサービスアカウントを「使用する」権限を持っている必要があります。

この権限は「サービス アカウント ユーザーroles/iam.serviceAccountUser)」ロールに含まれています。

よくある落とし穴として、「サービス アカウント管理者(roles/iam.serviceAccountAdmin)が付与されているから問題ない(包含している)」と誤認してしまうケースがあります。サービス アカウント管理者ロールにはサービスアカウント自体を管理する権限はありますが、サービスアカウントとして振る舞うための権限(iam.serviceAccounts.actAs)は含まれていません。

対処法

データポータルのデータソース設定を行うユーザーの Google アカウントに対し、対象サービスアカウントの「サービス アカウント ユーザーroles/iam.serviceAccountUser)」ロールを付与します。

  1. コンソールの [IAM と管理] > [サービス アカウント] に移動
  2. 対象のサービスアカウントをクリックし、詳細画面へ遷移
  3. [アクセス権を持つプリンシパル] タブをクリックし、[アクセスを許可] をクリック
  4. 「新しいプリンシパル」に、データポータルで設定操作を行うユーザーのメールアドレスを入力
  5. 「ロール」に「サービス アカウント ユーザーroles/iam.serviceAccountUser)」を選択し、保存

VPC SC でアクセスがブロックされていないか

エラーメッセージ

このサービス アカウントを使用する権限がありません。

サービスアカウントに対する権限不足を示すエラーメッセージ

接続先の Google Cloud プロジェクトが VPC Service Controls の境界で保護されている場合、外部からの API リクエストは原則として遮断されます。

データポータルは Google Cloud の VPC 内部ではなく、インターネット(Google のパブリック IP アドレス帯域)からアクセスを行います。そのため、VPC Service Controls の境界でアクセスがブロックされてしまいます。

Google Cloud 側のログを確認すると、VPC SC (VPC_SERVICE_CONTROLS) によるエラーログが記録されています。

対処法

VPC Service Controls を導入している環境では、データポータルからのアクセスを許可するために上り(内向き)ルール(Ingress Rule)の設定が必要です。

  1. Google Cloud コンソールの [セキュリティ] > [VPC Service Controls] に移動
  2. 対象の境界に適用されている境界を編集、または新規作成
  3. 上り(内向き)ルールの設定において、データポータルで使用しているサービスアカウントのメールアドレスを追加
  4. 設定を保存

設定の詳細は、以下の記事の「VPC Service Controls の設定」でも解説しています。

blog.g-gen.co.jp

佐々木 愛美 (min) (記事一覧)

クラウドソリューション部 データアナリティクス課。2024年7月 G-gen にジョイン。G-gen 最南端、沖縄県在住。最近覚えた島言葉は、「マヤー(猫)」。