BigQueryデータセットをLooker Studio で「データセットにアクセスできません」エラーの対応
状況
BigQueryデータセットをLooker Studioでレポートを作成した。
(共有から↑ リンクを作成↓)
リンクを作成して共有したところ、共有した相手の人はLookerを開けるが、データがエラーで表示されない。
(作成者自身は開くことができる)
エラーは、「データセットにアクセスできません」と表示される。
対応方法
BigQueryがあるGoogle Cloud
とLooker Studio
の両方にオーナー権限がある前提で進める。
エラー内容は、エラー文の通り"データセット" (ここでは、BigQuery)にアクセス権がないのが原因。
データソースにアクセス権を追加する。
公式のドキュメントに手順があります
取り急ぎの対応::自分の権限をデータソースに割り当てる
急ぎやちょっとした共有であれば、自分の権限を与えれば他の人も見ることができる。
まず、編集モードに入ります
リソース => ソースの管理 を開きます。
使用しているソースを「編集」
「データの認証情報」を開きます
「オーナーの認証情報」にします
ここが、閲覧者の認証情報になっていたため権限不足が起こっていたのですね。
推奨の対応::専用のサービスアカウントを作って割り当てる
1つ前では、オーナーの権限を割り当てましたが、プロジェクトが外れるなどで権限が外れると閲覧でききなくなります。
専用の「サービスアカウント」を作って、割り当てを行います。
「サービスアカウント」を作る
Lookerの閲覧元のデータセット(ここでは、BigQuery)にアクセスするための、データ保存されたクラウドで閲覧のみを行うアカウントを作ります。
閲覧元のBigQueryのプロジェクト
でGoogle Cloudのコンソール(管理画面)を開いてください。
Google Cloud : https://console.cloud.google.com/
メニューからIAMのサービスアカウントを開きます
(もしくは、「サービスアカウント」を検索して開きます)
「サービスアカウント作成」を押して
適当な名前のアカウントを作成します。(ここでは、looker-viewer
)
権限で「BigQuery ジョブユーザ」を割り当てる
「完了」ボタンで「サービスアカウント作成」する。
「サービスアカウント」にLooker Studioがアクセスできるようにする
Looker StudioからGoogle Cloudの「サービスアカウント」のアクセスを許可します。
まず、ご自身が入っている「Looker Studio」のサービスアカウントを取得します。
Looker Studioのサービスアカウンのページを開きます。
Looker Studioのサービスアカウンのページ
Looker Studioのサービスアカウントをコピーします
Google Cloudで、先ほど作ったサービスアカウントを開いて「プリンシパル」の「アクセスを許可」
「新しいプリンシパル」に「Looker Studioのサービスアカウント」を入れます。
「ロール」に「サービス アカウント トークン作成者」を入れます。
BigQueryに「サービスアカウント」を紐づける
Looker StudioがアクセスしているBigQueryのデータに「サービスアカウント」を紐づけます。
BigQueryを開き
Lookerで使用しているデータセットの権限を開きます
「プリンシパルを追加」を押します
「新しいプリンシパル」に(先ほど作った)GoogleCloudの「サービスアカウントのメールアドレス」を入れます。
「ロール」は「BigQuery データ閲覧者」を割り当てます。
Looker Studioにサービスアカウントを登録する
GoogleCloudの「サービスアカウント」をLooker Studioに登録します。
まず、編集モードに入ります
リソース => ソースの管理 を開きます。
使用しているソースを「編集」
「データの認証情報」を開きます
「サービスアカウント認証情報」でデータを取得するように変更します。
以上で完了です。
リンクを開きなおせば、データが見えるようになっているはずです。
Discussion