授權資料移轉帳戶

本文件將概略說明 BigQuery 資料移轉服務如何與不同帳戶類型互動、執行一般轉移作業所需的帳戶授權類型,以及常見權限錯誤的疑難排解步驟。

如要開始使用 BigQuery 資料移轉服務,請確認與專案相關聯的帳戶 (包括使用者帳戶和服務帳戶) 已完成驗證,並授予正確的權限,以便執行移轉作業。如要瞭解資料來源專屬權限,請參閱各資料來源的轉移指南。

基本概念

BigQuery 資料移轉服務會自動將資料從各種資料來源移轉至 BigQuery。驗證和授權模式會在兩個不同的階段 (控制層和資料層) 運作,並針對兩種使用者 (轉移建立者或轉移擁有者) 運作。

控制層

控制層代表授權程序中的階段,在這個階段中,已驗證的使用者可以控制及管理轉移設定和執行作業。控制平面中的使用者必須具備適當的身分與存取權管理 (IAM) 權限,才能控制及管理其移轉設定和執行作業:

  • bigquery.transfers.update 權限,可讓使用者執行下列操作:
    • 設定資料移轉設定。
    • 管理現有的移轉作業,例如更新、停用或刪除移轉作業。
  • bigquery.transfers.get 權限:可讓使用者監控移轉作業,例如檢查移轉作業狀態或查看移轉作業記錄和記錄。

如果您使用 Google Cloud 主控台或 bq 指令列工具建立轉移作業,則必須具備 bigquery.transfers.get 權限。

設定排定查詢時,不需要 bigquery.transfers.update 權限。詳情請參閱預定查詢的必要權限

資料層

資料層代表使用者無法直接控管的階段。在資料層中,BigQuery 資料移轉服務可在離線模式下執行資料移轉作業,並可根據使用者指定的排程自動觸發移轉作業。在資料層面,轉移擁有者的憑證會用於存取來源資料,而 (視資料來源而定) 轉移擁有者的憑證或 BigQuery 資料移轉服務 服務代理程式會用於啟動 BigQuery 工作,並將資料寫入目的地資料集。

如要進一步瞭解必要權限,請參閱本指南的以下章節:

轉移創作者與轉移擁有者

移轉建立者是指建立及設定移轉設定的使用者身分。BigQuery 資料移轉服務使用者和移轉建立者可以是使用者帳戶或服務帳戶

轉移擁有者是指 BigQuery 資料移轉服務用來授權資料移轉 (特別是用於擷取來源資料) 的使用者身分。對於支援服務帳戶的資料來源,轉移擁有者可以是使用者帳戶或服務帳戶。對於其他資料來源,轉移擁有者必須是使用者帳戶。

轉移擁有者和轉移建立者可以是相同的使用者身分,但這並非必要條件。您可以透過多種方式,將轉移擁有者設為與轉移建立者不同的使用者:

  • 建立移轉作業時,如果資料來源支援服務帳戶,您可以將擁有者設為服務帳戶。
  • 建立轉移作業後,您可以將擁有權轉移至具有 bigquery.transfers.updatebigquery.transfers.get 權限的新使用者帳戶 (或服務帳戶,如果資料來源支援服務帳戶)。更新憑證時,您必須登入新帳戶。

外部資料來源的讀取存取權授權

讀取來源資料所需的權限可能因資料來源而異。舉例來說,如要存取 Google Ads,就必須具備 Google Ads 客戶 ID 的讀取權限。同樣地,Google Play 需要 Google Play 管理中心的報表存取權。如要進一步瞭解特定資料來源的權限,請參閱各資料來源的移轉指南。

視轉移擁有者的身分類型而定,您必須使用不同的授權方法,才能擷取存取權存取權,以便存取來源資料。

以服務帳戶做為擁有者轉移

當您使用服務帳戶做為移轉擁有者時,只要為專案啟用 BigQuery 資料移轉服務 API,系統就會自動授予必要權限。BigQuery 資料移轉服務會使用服務代理程式,為使用者提供的服務帳戶 (轉移擁有者) 取得存取權權杖。

啟用 BigQuery 資料移轉服務 API 後,系統會為您的專案建立服務代理人。系統也會將 BigQuery 資料移轉服務代理人角色 (roles/bigquerydatatransfer.serviceAgent) 授予服務代理人,其中包含 iam.serviceAccounts.getAccessToken 權限。該權限可讓 BigQuery 資料移轉服務服務代理程式冒用移轉擁有者服務帳戶,以便擷取存取權權杖。

如要進一步瞭解 BigQuery 資料移轉服務服務代理,請參閱「服務代理」。如要進一步瞭解如何使用服務帳戶,以及支援服務帳戶的最新資料來源清單,請參閱「使用服務帳戶」一文。

以使用者帳戶轉移擁有者

如果建立轉移設定的轉移擁有者是使用者帳戶 (而非服務帳戶),您必須手動授權 BigQuery 資料移轉服務,讓該服務取得使用者帳戶的存取權杖,並代替轉移擁有者存取來源資料。您可以透過 OAuth 對話方塊介面授予手動核准權。

為特定資料來源建立移轉作業時,只需第一次授予 BigQuery 資料移轉服務權限。即使您使用相同的資料來源,仍必須在為新使用的區域首次建立轉移作業時再次授予權限。不過,從 YouTube 頻道轉移資料時,則不在此限,每次建立 YouTube 頻道資料轉移作業時,您都必須手動授予權限。

如果新擁有者從未在該區域為資料來源建立轉移作業,則透過更新憑證變更轉移擁有者,也需要手動核准。

下圖顯示建立 Google Ads 轉移作業時的 OAuth 對話方塊介面。對話方塊會顯示要授予的資料來源專屬權限:

允許 BigQuery 資料移轉服務存取 Google Ads。

如要撤銷已授予的權限,請按照下列步驟操作:

  1. 前往 Google 帳戶頁面
  2. 按一下「BigQuery 資料移轉服務」
  3. 如要撤銷權限,請按一下「移除存取權」移除您授予 BigQuery 資料移轉服務的存取權。

啟動 BigQuery 工作授權

從大多數資料來源遷移時,BigQuery 資料移轉服務會依賴服務代理程式,為您的專案啟動 BigQuery 工作 (除非使用排程查詢資料集副本進行遷移)。為專案啟用 BigQuery 資料移轉服務 API 時,系統會自動將必要權限 bigquery.job.create 授予服務代理。詳情請參閱「啟用 BigQuery 資料移轉服務」。

使用排程查詢資料集複本進行遷移時,BigQuery 資料移轉服務會使用移轉擁有者的憑證啟動 BigQuery 工作。

執行 BigQuery 作業並將資料寫入目的地資料集的授權

從大多數資料來源遷移時,除了使用排程查詢資料集副本進行遷移外,BigQuery 資料移轉服務會依賴服務代理程式,將資料寫入 BigQuery 目的地資料集。建立移轉作業時,BigQuery 資料移轉服務會將必要權限 roles/bigquery.dataEditor 授予服務代理人。您必須具備目的地資料集的 bigquery.datasets.update 權限,才能成功授予權限。

使用排程查詢資料集副本進行遷移時,BigQuery 資料移轉服務會使用移轉擁有者的憑證執行 BigQuery 工作,並將資料寫入 BigQuery 目標資料集。

排解權限錯誤

如果轉移作業發生授權或權限相關問題,請參閱「授權和權限問題」。