使用服务账号
某些数据源支持通过 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
- Campaign Manager
- 数据集副本
- Display & Video 360
- Google Ad Manager
- Google Ads
- Google Merchant Center
- Google Play
- 计划查询
- Search Ads 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 Ads 转移,必须向服务账号授予全网域权限。如需了解详情,请参阅 Google Ads API 服务账号指南。
更新数据转移作业凭据
控制台
以下过程会将数据转移作业配置更新为以服务账号身份而不是以个人用户账号身份进行身份验证。
在 Google Cloud 控制台中,转到“数据转移”页面。
点击数据转移作业列表中的转移作业。
点击修改以更新转移作业配置。
在服务账号字段中,输入服务账号名称。
点击保存。
bq
如需更新数据转移作业的凭据,您可以使用 bq 命令行工具来更新转移作业配置。
将 bq update
命令与 --transfer_config
、--update_credentials
和 --service_account_name
标志结合使用。
例如,以下命令会将数据转移作业配置更新为以服务账号身份而不是以个人用户账号身份进行身份验证:
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 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。