対象者:
この記事は、Google Cloud 管理者を対象としています。Looker Studio データソースで既存のサービス アカウントを使用する方法について詳しくは、データの認証情報をご覧ください。
Looker Studio では、オーナーのcredentialsを使ってアクセス権を委任したり、閲覧者の認証情報を使って個々のレポート閲覧者にデータへのアクセス権を要求したりする代わりに、サービス アカウントを使ってデータにアクセスできます。サービス アカウントは人間ではないユーザーを表す特別なタイプの Google アカウントで、Google の API やサービスのデータにアクセスして認証を受けることができます。サービス アカウントの詳細を確認する。
Looker Studio でサービス アカウントを使用するメリット
Looker Studio でサービス アカウントを使用するには、組織の Looker Studio サービス エージェントをアカウントのユーザー(プリンシパル)として追加します。これにより、Looker Studio で使用できるサービス アカウントを管理できるようになるほか、組織内のユーザーが必要なデータに簡単にアクセスできるようになります。
個々のユーザーの認証情報ではなくサービス アカウントを使用すると、以下のようなメリットがあります。
- サービス アカウントの認証情報を使用しているデータソースは、作成者が退職した場合でも悪影響を受けることはありません。
- サービス アカウントの認証情報を使用すると、デバイス ポリシーを使用する VPC Service Controls の境界の背後にあるデータにアクセスできます。
- スケジュール設定されたメールやスケジュール設定されたデータ抽出などの自動機能では、VPC Service Controls の境界の背後にあるデータソースが使用されます。
Looker Studio 専用の新しいサービス アカウントを作成することをおすすめします。たとえば、マーケティング、セールス、エンジニアリングの各チームが Looker Studio で使用する専用のサービス アカウントを作成できます。
始める前に
- サービス アカウントを設定するには、Google Cloud プロジェクトに対するサービス アカウント管理者(
roles/iam.serviceAccountAdmin
)またはサービス アカウントの作成(roles/iam.serviceAccountCreator
)のロールが必要です。詳しくは、サービス アカウントのロールをご覧ください。 - Looker Studio サービス エージェントを取得するには、Workspace または Cloud Identity のユーザーである必要があります。
設定の手順
この記事の手順は、チームまたはユーザー グループごとに異なるサービス アカウントを作成する場合を除き、複数回実施する必要はありません。複数のサービス アカウントを作成する場合は、追加するサービス アカウントごとにこの手順を繰り返します。
Looker Studio サービス エージェントを取得する
サービス アカウントにデータへのアクセスを許可するには、組織の Looker Studio サービス エージェントを指定する必要があります。サービス エージェントは、Looker Studio のヘルプページから取得できます。
- Looker Studio サービス エージェントのヘルプページに移動します。
- そのページに表示されるサービス エージェントのメールアドレスをコピーします。
Looker Studio サービス アカウントを作成する
サービス アカウントを作成する手順は、Google Cloud IAM のドキュメントで確認できます。サービス アカウントは、Cloud Console または Cloud Shell コマンドラインを使って作成できます。
Cloud コンソールを使用する
ステップ 1: 新しいサービス アカウントを作成する
-
Cloud コンソールで [ サービス アカウントの作成 ] ページに移動します。
- プロジェクトを選択します。
-
Cloud コンソールに表示するサービス アカウント名を入力します。
Cloud Console は、この名前に基づいてサービス アカウント ID を生成します。必要に応じて ID を編集してください。後で ID を変更することはできません。
- 省略可: サービス アカウントの説明を入力します。
-
[ 作成して続行] をクリックします。
- ステップ 2 の [このサービス アカウントにプロジェクトへのアクセスを許可する ] で、Looker Studio で接続するデータを含むプロジェクトに対する [ BigQuery ジョブユーザー ] の IAM ロール をサービス アカウントに付与します。なお、これは、サービス アカウントを作成したプロジェクトとは異なる場合があります。
- [ 続行 ] をクリックします。
- [ サービス アカウント ユーザーロール ] フィールドに、このサービス アカウントを使ってデータソースの認証情報を提供できるユーザーを追加します。ユーザーを追加する準備ができていない場合は、後述する「 ステップ 3: ユーザーロールを付与する 」の手順に沿って追加できます。
- [ 完了 ] をクリックしてサービス アカウントを保存し、プロジェクトのサービス アカウントのリストのページに戻ります。
ステップ 2: Looker Studio サービス エージェントにサービス アカウントへのアクセスを許可する
- Cloud コンソールのサービス アカウントのリスト に戻ります。
- 作成した新しい Looker Studio サービス アカウントをリスト内でクリックして選択します。
- 上部の [ 権限 ] をクリックします。
- [ アクセス権を付与 ] をクリックします。
- 右側の [
PROJECT_ID
にプリンシパルを追加する ] で、(上記のステップ 1 でコピーした)Looker Studio サービス エージェントのメールアドレスを [ 新しいプリンシパル ] ボックスに貼り付けます。 - サービス エージェントに
iam.serviceAccount.getAccessToken
権限を付与するロールを選択します。たとえば、 サービス アカウント トークン作成者 のロールだけでなく、この権限を付与する任意のカスタムロールも使用できます。 - [ 保存 ] をクリックします。
ヒント : サービス エージェントのアドレスは service-account@PROJECT_ID.iam.gserviceaccount.com
の形式です。プロジェクト ID がわかっている場合は、手動でアドレスを作成できます。
ステップ 3: ユーザーロールを付与する
注 : 上述の ステップ 1 で説明したように、サービス アカウントの作成時に Looker Studio ユーザーをすでに追加している場合、この手順は省略可能です。
データソースを作成または編集する Looker Studio ユーザーには、 サービス アカウント ユーザー のロール( roles/iam.serviceAccountUser
)など、 iam.serviceAccounts.actAs
権限を含むロールを付与する必要があります。このロールは、プロジェクトまたは個々のサービス アカウントに付与できますが、サービス アカウントのみに付与することをおすすめします。手順については、 サービス アカウントの権限借用の管理 をご覧ください。
ヒント : この手順を完了する準備が整っていない場合は、後で再開できます。
ヒント : サービス エージェント以外のユーザーにはサービス アカウント トークン作成者のロールは付与しないことをおすすめします。これは Looker Studio では必要ありません。
注 : Looker Studio のレポートの表示のみを行うユーザーは、サービス アカウントの権限を持っている必要はありません。
- Cloud コンソールのサービス アカウントのリスト に移動します。
- Looker Studio サービス アカウントをリスト内でクリックして選択します。
- ページ上部の [ 権限 ] をクリックします。
- [ アクセス権を付与 ] をクリックします。
- 右側の [ Service Account のプリンシパルとロールを追加 ] で、[ 新しいプリンシパル ] ボックスにユーザーのメールアドレスを入力します。
- サービス アカウント ユーザー のロールを選択します。
- [ 保存 ] をクリックします。
ステップ 4: サービス アカウントで BigQuery のデータにアクセスできるようにする
Looker Studio にデータへのアクセスを許可するには、テーブルレベルまたはデータセット レベルでサービス アカウントに BigQuery データ閲覧者 のロールを付与します。
注 : サービス アカウントにアクセス権をプロジェクト レベルで付与することはおすすめしません。
テーブルへのアクセス権を付与するには :
- Cloud コンソールのサービス アカウントのリスト に移動します。
- Looker Studio サービス アカウントのメールアドレスをコピーします。
- BigQuery に移動してプロジェクトを開きます。
- をクリックしてデータセットを開きます。
- テーブルを選択します。
- ツールバーで [ 共有 ] をクリックします。
- 右側に表示されたパネルで、 [ プリンシパルを追加 ] をクリックします。
- [新しいプリンシパル ] ボックスに、Looker Studio サービス アカウントのメールアドレスを貼り付けます。
- [ BigQuery データ閲覧者 ] のロールを選択します。
- [ 保存 ] をクリックします。
データセットへのアクセス権を付与するには :
- Cloud コンソールのサービス アカウントのリスト に移動します。
- Looker Studio サービス アカウントのメールアドレスをコピーします。
- BigQuery に移動してプロジェクトを開き、データセットを見つけます。
- データセット名の右にある [アクションを表示] をクリックします。
- [ 開く ] をクリックします。
- ツールバーで、 [共有] > [権限] をクリックします。
- 右側に表示されたパネルで、 [ プリンシパルを追加 ] をクリックします。
- [新しいプリンシパル ] ボックスに、Looker Studio サービス アカウントのメールアドレスを貼り付けます。
- [ BigQuery データ閲覧者 ] のロールを選択します。
- [ 保存 ] をクリックします。
Cloud Shell を使用する
ステップ 1: 新しいサービス アカウントを作成する
サービス アカウントの作成と管理 の gcloud に記載された一般的な手順を行います。
- Cloud Shell を開きます 。
- 必要に応じてプロジェクトを選択します。
- サービス アカウントを作成するには、 gcloud iam service-accounts create コマンドを実行します。任意のアカウント名、説明、表示名を使用できます。
例:
gcloud iam service-accounts create datastudio_service_account --description="Use for Looker Studio access to BigQuery" --display-name="DS_BQ"
- Looker Studio で使用する Google Cloud プロジェクトの BigQuery データにアクセスするには、そのプロジェクトの
bigquery.jobs.create
権限をサービス アカウントに付与します。この権限を付与するには、 BigQuery ジョブユーザー の IAM ロール を付与します。 また、Looker Studio で使用するプロジェクトまたはデータセットに対するサービス アカウントに、bigquery.tables.getData
権限とbigquery.tables.get
権限を付与します。これらの権限を付与するには、 BigQuery データ閲覧者 のロール(roles/bigquery.dataViewer
)を付与します。 これらのロールを付与するには、 gcloud projects add-iam-policy-binding コマンドを実行します。次の例では、PROJECT_ID をプロジェクト ID に置き換えます。 例:gcloud projects add-iam-policy-binding PROJECT_ID --member = "serviceAccount:datastudio_sa@PROJECT_ID.iam.gserviceaccount.com" --role="roles/bigquery.jobUser" gcloud projects add-iam-policy-binding PROJECT_ID --member = "serviceAccount:datastudio_sa@PROJECT_ID.iam.gserviceaccount.com" --role="roles/bigquery.dataViewer"
ステップ 2: Looker Studio サービス エージェントにサービス アカウントへのアクセスを許可する
Looker Studio サービス エージェントにサービス アカウント経由でのデータへのアクセスを許可するには、 サービス アカウント トークン作成者 のロール( roles/iam.serviceAccountTokenCreator
)をサービス エージェントに付与します。これを行うには、 gcloud iam service-accounts add-iam-policy-binding コマンドを実行します。次の例では、「ORG_ID」を自身の組織 ID に置き換えます。
gcloud iam service-accounts add-iam-policy-binding datastudio_service_account@PROJECT_ID.iam.gserviceaccount.com --member="service-ORG_ID@gcp-sa-datastudio.iam.gserviceaccount.com" --role="roles/iam.serviceAccountTokenCreator"
ステップ 3: ユーザーロールを付与する
データソースを作成または編集する Looker Studio ユーザーには、 サービス アカウント ユーザー のロール( roles/iam.serviceAccountUser
)など、 iam.serviceAccounts.actAs
権限を含むロールを付与する必要があります。このロールは、プロジェクトまたは個々のサービス アカウントに付与できますが、サービス アカウントのみに付与することをおすすめします。手順については、 サービス アカウントの権限借用の管理 をご覧ください。
この手順を完了する準備が整っていない場合は、後で再開できます。
ヒント: サービス エージェント以外のユーザーにはサービス アカウント トークン作成者のロールは付与しないことをおすすめします。これは Looker Studio では必要ありません。
注: Looker Studio のレポートの表示のみを行うユーザーは、サービス アカウントの権限を持っている必要はありません。
サービス アカウント ユーザー のロールを付与するには、 gcloud projects add-iam-policy-binding コマンドを実行します。次の例では、PROJECT_ID を自身のプロジェクト ID、「 user@example.com 」を 1 つ以上の有効なメールアドレスに置き換えます(複数のメールアドレスを指定する場合はカンマで区切ります)。
例:gcloud iam service-accounts add-iam-policy-binding datastudio_service_account@PROJECT_ID.iam.gserviceaccount.com --member="user:user@example.com" --role="roles/iam.serviceAccountUser"
ステップ 4: サービス アカウントで BigQuery のデータにアクセスできるようにする
Looker Studio にデータへのアクセスを許可するには、テーブルレベルまたはデータセット レベルでサービス アカウントに BigQuery データ閲覧者 のロールを付与します。
これを行うには、上記の Cloud コンソール の手順 のステップ 4 を実施すると簡単です。bq コマンドライン ツールを使用してデータへのアクセス権を付与するには、 データセットへのアクセス制御 をご覧ください。
Looker Studio ユーザーに Looker Studio サービス アカウントの情報を提供する
Looker Studio を使用するユーザーは、データソースの作成時に使用するサービス アカウントを把握している必要があります。利用可能なサービス アカウントのリストを Looker Studio 内から確認することはできないため、組織のドキュメント、社内ウェブサイト、またはメールでこの情報を提供する必要があります。
サービス アカウントの認証情報を使用するデータソースを作成する
Looker Studio ユーザーがサービス アカウントの認証情報を使用するデータソースを作成するには、他のデータの認証情報の種類向けの手順と同じ基本的な手順を行います。
- BigQuery データソースを作成または編集します。
- ツールバーで [データの認証情報] をクリックします。
- [サービス アカウント認証情報] を選択します。
- ボックスにサービス アカウントのメールアドレスを入力します。
- [更新] をクリックします。
サービス アカウントの認証情報を使用したデータソースを編集する
ユーザーがサービス アカウントの認証情報を使用したデータソースを編集すると、Looker Studio は、ユーザーがそのサービス アカウントを使用する権限を持っているかどうかをチェックします。権限を持っていない場合、ユーザーの認証情報を使用するようデータソースの設定が切り替わります。
サービス アカウントを使用してデータにアクセスしたユーザーを確認する
Cloud コンソールでサービス アカウントの監査ログを確認できます。サービス アカウントの監査ログを受信するには、データアクセス アクティビティの IAM 監査ログを有効にする必要があります。
サービス アカウントのシナリオの例
自社の Looker Studio ユーザーが自国の子会社のデータにのみアクセスできるようにするとします。その場合、解決策としては、国ごとにサービス アカウントを作成し、その国の Looker Studio ユーザーにのみ、サービス アカウントとして機能するための権限を付与します。
設定例
この例では、英国、フランス、ドイツ向けに 3 つのサービス アカウントを作成します。次に、サービス アカウントをプリンシパルとして使用するデータソースを作成できるようにする適切なロールをサービス エージェントと任意のユーザーに割り当てます。
英国のサービス アカウント
service-account-1@example-org-uk-example-project.iam.gserviceaccount.com
英国のプリンシパル
プリンシパル | ロール |
サービス エージェントです。 |
Service Account Token Creator |
ユーザー 1 | Service Account User |
ユーザー 2 | Service Account User |
フランスのサービス アカウント
service-account-1@example-org-fr-example-project.iam.gserviceaccount.com
フランスのプリンシパル
プリンシパル | ロール |
サービス エージェントです。 |
Service Account Token Creator |
ユーザー 3 | Service Account User |
ユーザー 4 | Service Account User |
ドイツのサービス アカウント
service-account-1@example-org-de-example-project.iam.gserviceaccount.com
ドイツのプリンシパル
プリンシパル | ロール |
サービス エージェントです。 |
Service Account Token Creator |
ユーザー 5 | Service Account User |
ユーザー 6 | Service Account User |
エラー
このセクションでは、Looker Studio のデータソース作成者とレポート閲覧者がサービス アカウントを使用しようとした際に表示される可能性のあるエラーについて説明します。ほとんどの場合、これらのエラーの根本原因は、サービス アカウントの設定が間違っているか不完全であることです。
サービス エージェントのロールが指定されていない
メッセージ
|
原因 サービス エージェントに サービス アカウント トークン作成者 のロール(または |
解決策サービス エージェントに サービス アカウント トークン作成者 のロールを付与します。 |
データにアクセスできない
メッセージこのサービス アカウントは基盤データセットにアクセスできません。 |
原因プロジェクトのデータへのアクセス権がサービス アカウントに与えられていません。 |
解決策基になるテーブル、データセット、プロジェクトのサービス アカウントには、少なくとも BigQuery データ閲覧者 のロールを付与します。 |
ユーザーロールが割り当てられていない
メッセージこのサービス アカウントを使用する権限がありません。 |
原因ユーザーは、 サービス アカウント ユーザー のロールを持つプリンシパルとしてサービス アカウントに追加されていません。 |
解決策サービス アカウントのユーザーに サービス アカウント ユーザー のロールを付与します。 |
アカウントでサービス エージェントを利用できない
メッセージ
|
原因ユーザーは、サービス アカウントで管理されているデータに標準の(一般ユーザー向け)Google アカウントからアクセスしようとしています。 |
解決策Google Workspace または Cloud Identity アカウントを使ってデータにアクセスします。 |
認証情報のダイアログでサービス エージェントを使用できない
メッセージLooker Studio のサービス エージェント はデータに直接アクセスできません。代わりにサービス アカウント を使用してください。 |
解決策サービス エージェントとサービス アカウントは異なります。認証情報のダイアログでサービス アカウントを入力し、Cloud コンソールを使用して、使用可能なサービス アカウントのリストを確認できます。 Cloud コンソールを使用する
Cloud Shell を使用する
例: gcloud iam service-accounts list |
上限
- 現在、サービス アカウントの認証情報は BigQuery データソースでのみ使用できます。サービス アカウントには IAM の上限が適用されます。
- サービス アカウントの権限に対する変更が Looker Studio で反映されるまでに数分かかることがあります。