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