Looker Studio→BigQuery→Google SheetsにおけるPermission deniedの対処方法

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

G-gen の堂原です。本記事では、Looker Studio において、Google Sheets をソースとする BigQuery 外部テーブルに接続しようとすると発生する Permission denied エラーの対処法を紹介します。

はじめに

Google Cloud (旧称 GCP) が提供する BI ツールである Looker Studio では、データソースとして BigQuery が選択可能です。BigQuery のテーブルやビューのデータを取り込み、簡単にダッシュボードを作成することができます。

また BigQuery には 外部テーブル という機能があり、Google Drive 内の Google Sheets など、BigQuery の外に保存されたデータを直接参照する仮想的なテーブルを作成することができます。

事象 : 外部テーブルへの接続でエラー

Looker Studio において、Google Sheets をソースとする BigQuery 外部テーブルに接続してみました。

やりたいことを図にすると、以下のようになります。

Looker Studio から BigQuery 外部テーブル経由で Sheets のデータを取得

Looker Studio では BigQuery 用のコネクタが用意されています。BigQuery への権限を持つ Google アカウントで Looker Studio にログインしていれば、簡単に接続設定ができます。

例えば作成中のレポートであれば、下図の「データを追加」から設定が可能です。

データの追加

外部テーブルについても、データソースとして追加する処理までは問題なく進みました。

しかし、いざ追加したデータソースを用いてグラフ等を作成しようとすると、以下のエラーが表示されました。

データセットの接続エラー

エラー詳細

エラーメッセージは以下の通りであり、どうやら Google Drive に対する権限が無いようです。

BigQuery error: Access Denied: BigQuery BigQuery: Permission denied while getting Drive credentials.

対処法

サマリ

本エラーですが「データの認証情報」設定を「サービス アカウント」にして、Google Sheets への閲覧者権限を サービスアカウントに付与 することで解決しました。

意味合いとしては「レポートからデータソースへの認証をサービスアカウントに行わせる」「さらにそのサービスアカウントが BigQuery 外部テーブルと、さらにそのデータソースである Sheets の両方に対して権限を持つようにする」ということになります。

各リソースの関係性

今回登場する各リソースの関係性は以下の図のようになります。

各リソースの関係性

データの認証情報

Looker Studio のレポートからデータソースへ認証する際に データソースの認証情報 として次の 3 つの選択肢が存在します。

  • オーナーの認証情報
  • サービス アカウントの認証情報
  • 閲覧者の認証情報

これらはデータソースのデータにアクセスするときに、誰の(何の)権限に依存するかを指定する設定となります。

「オーナーの認証情報」または「サービス アカウントの認証情報」であれば、レポートは共有されれば誰でも閲覧することが可能です。

一方で「閲覧者の認証情報」だと、たとえレポートを共有されたとしても、データソースそのものへのアクセス権が無い人はデータを閲覧することができません。

手順

次のような手順で設定すること可能です。

  1. Google Cloud プロジェクトにサービス アカウント作成
  2. BigQuery にアクセスさせるため、以下のロールをサービス アカウントに付与(参照
    • BigQuery ジョブユーザー
    • BigQuery データ閲覧者
  3. Looker Studio サービス エージェントに、サービス アカウントに対する「サービス アカウント トークン作成者」ロールを付与
    • Looker Studio サービス エージェントの確認方法はこちらのページの「Looker Studio サービス エージェントを取得する」に記載あります。
  4. Google Sheets の共有設定にて、サービス アカウントのメールアドレスに対して「閲覧者」権限を付与

    Google Sheetsの共有設定

  5. Looker Studio にて、該当データセットの「データの認証情報」をサービス アカウントに変更する

    データの認証情報

堂原 竜希(記事一覧)

クラウドソリューション部データアナリティクス課。2023年4月より、G-genにジョイン。

Google Cloud Partner Top Engineer 2023, 2024に選出 (2024年はRookie of the yearにも選出)。休みの日はだいたいゲームをしているか、時々自転車で遠出をしています。