サービス アカウントを使用する
一部のデータソースでは、Google Cloud コンソール、API、または bq
コマンドラインでのサービス アカウントを使用したデータ転送認証がサポートされています。サービス アカウントは、Google Cloud プロジェクトに関連付けられた Google アカウントです。サービス アカウントは、ユーザーの認証情報ではなくサービス アカウントの認証情報を使用して認証することで、スケジュールされたクエリやバッチ処理パイプラインなどのジョブを実行できます。
既存のデータ転送は、サービス アカウントの認証情報で更新できます。詳細については、データ転送の認証情報を更新するをご覧ください。
次のような状況では、認証情報を更新する必要があります。
ユーザーによるデータソースへのアクセスを認可できず、転送が失敗する。
Error code 401 : Request is missing required authentication credential. UNAUTHENTICATED
転送を実行しようとすると、INVALID_USER エラーが発生します。
Error code 5 : Authentication failure: User Id not found. Error code: INVALID_USERID
サービス アカウントによる認証のより詳しい内容ついては、認証の概要をご覧ください。
サービス アカウントをサポートするデータソース
BigQuery Data Transfer Service では、次の転送にサービス アカウントの認証情報を使用できます。
- Cloud Storage
- Amazon Redshift
- Amazon S3
- キャンペーン マネージャー
- データセット コピー
- ディスプレイ&ビデオ 360
- Google アド マネージャー
- Google 広告
- Google Merchant Center
- Google Play
- スケジュールされたクエリ
- 検索広告 360
- Teradata
- YouTube コンテンツ所有者
始める前に
- BigQuery Data Transfer Service を有効にするために必要なすべての操作が完了していることを確認します。
- このドキュメントの各タスクを実行するために必要な権限をユーザーに与える Identity and Access Management(IAM)のロールを付与します。
必要な権限
サービス アカウントを使用するようにデータ転送を更新するには、次の権限が必要です。
転送を変更するための
bigquery.transfers.update
権限。この権限は、
roles/bigquery.admin
IAM の事前定義ロールに含まれています。サービス アカウントへのアクセス。ユーザーにサービス アカウントのロールを付与する方法については、サービス アカウントのユーザーロールをご覧ください。
転送の実行に使用するサービス アカウントに次の権限があることを確認します。
ターゲット データセットに対する
bigquery.datasets.get
権限とbigquery.datasets.update
権限テーブルで列レベルのアクセス制御を使用している場合、サービス アカウントにはbigquery.tables.setCategory
権限も必要です。これらすべての権限は、事前定義の IAM のロール
bigquery.admin
に含まれています。BigQuery Data Transfer Service での IAM ロールの詳細については、IAM の概要をご覧ください。構成された転送データソースへアクセスする。さまざまなデータソースに必要な権限の詳細については、データソースとサービス アカウントのサポートをご覧ください。
Google 広告の転送では、サービス アカウントにドメイン全体の権限を付与する必要があります。詳細については、Google Ads API サービス アカウント ガイドをご覧ください。
データ転送の認証情報を更新する
コンソール
次の手順で、個々のユーザー アカウントではなく、サービス アカウントとして認証するようにデータ転送の構成を更新します。
Google Cloud コンソールで、[データ転送] ページに移動します。
データ転送リストで、転送をクリックします。
[編集] をクリックして転送構成を更新します。
[サービス アカウント] フィールドに、サービス アカウント名を入力します。
[保存] をクリックします。
bq
データ転送の認証情報を更新するには、bq コマンドライン ツールを使用して転送構成を更新します。
--transfer_config
、--update_credentials
、--service_account_name
フラグを指定して、bq update
コマンドを使用します。
たとえば、次のコマンドは、個々のユーザー アカウントではなく、サービス アカウントとして認証するようにデータ転送の構成を更新します。
bq update \
--transfer_config \
--update_credentials \
--service_account_name=abcdef-test-sa@abcdef-test.iam.gserviceaccount.com projects/862514376110/locations/us/transferConfigs/5dd12f26-0000-262f-bc38-089e0820fe38 \
Java
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Java の設定手順を完了してください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。
BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
Python
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Python の設定手順を完了してください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。
BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。