為 Looker Studio 設定 Google Cloud 服務帳戶

服務帳戶是特殊的 Google 帳戶類型,主要用於代表需要驗證且必須取得授權才能存取 Google API 和產品資料的非人類使用者。Looker Studio 可以使用服務帳戶存取資料,不必使用擁有者的憑證委派存取權,也不必要求個別報表檢視者使用檢視者的憑證存取資料。

注意:服務帳戶憑證僅適用於 BigQuery 資料來源。

進一步瞭解服務帳戶

使用服務帳戶搭配 Looker Studio 的優點

使用服務帳戶而非個別使用者的憑證,可帶來以下優點:

  • 如果建立者離開公司,使用服務帳戶憑證的資料來源不會中斷。
  • 服務帳戶憑證支援存取位於使用裝置政策的 VPC Service Controls 範圍內的資料。
  • 排定電子郵件傳送時間和排定資料擷取時間等自動化功能,可搭配位於 VPC Service Controls 範圍內的資料來源使用。(請參閱「限制」一節,瞭解重要注意事項)。
  • 您可以建立輸入和輸出規則,允許服務帳戶存取受服務範圍保護的資源和用戶端,以及從這些資源和用戶端存取資料。

必要的角色

  • 如要取得 Looker Studio 服務代理程式,您必須是 Google Workspace 或 Cloud Identity 使用者。
  • 如要設定服務帳戶,您必須在 Google Cloud 專案中具備「服務帳戶管理員」 (roles/iam.serviceAccountAdmin) 或「建立服務帳戶」 (roles/iam.serviceAccountCreator) 角色。進一步瞭解服務帳戶角色
  • 如要設定服務帳戶存取 BigQuery 資料表或資料集,您必須具備資料表或資料集的「BigQuery 資料擁有者」 (roles/bigquery.dataOwner) 角色,或是其他可授予 bigquery.datasets.setIamPolicy 權限的角色。

設定操作說明

如要設定可存取 BigQuery 資料的服務帳戶,請按照下列步驟操作:

  1. 取得 Looker Studio 服務代理程式。在本步驟中,您將複製服務代理程式的電子郵件地址,以便在下一個步驟中使用。這個地址是由 Looker Studio 自動建立。
  2. 為 Looker Studio 建立服務帳戶。在這個步驟中,您將建立可存取資料的非人為使用者。
  3. 允許 Looker Studio 服務代理存取您的服務帳戶。在這個步驟中,您會將服務帳戶的必要角色授予服務代理程式。
  4. 授予使用者角色。在這個步驟中,您將授予使用者必要角色,讓他們可以建立使用服務帳戶憑證的資料來源。
  5. 啟用服務帳戶,存取 BigQuery 資料。在這個步驟中,您會授予服務帳戶必要角色,以便存取 BigQuery 資料表或資料集。

步驟 1:取得 Looker Studio 服務專員

如要允許服務帳戶存取資料,請提供貴機構的 Looker Studio 服務代理。如要取得服務專員的聯絡資訊,請前往 Looker Studio 的說明頁面:

  1. 前往 Looker Studio 服務專員說明頁面
  2. 複製該頁面顯示的服務代理電子郵件地址。

步驟 2:為 Looker Studio 建立服務帳戶

如需建立服務帳戶的操作說明,請參閱 Google Cloud IAM 說明文件。您可以使用 Google Cloud 控制台或 Cloud Shell 指令列建立服務帳戶。

控制台

  1. 前往 Google Cloud 控制台的「Create service account」(建立服務帳戶) 頁面。

    前往「建立服務帳戶」

  2. 選取專案。
  3. 輸入要顯示在 Google Cloud 控制台的服務帳戶名稱。

    Google Cloud 控制台會根據這個名稱產生服務帳戶 ID。請視需要編輯 ID,ID 設定後即無法變更。

  4. 選用:輸入服務帳戶的說明。
  5. 按一下「建立並繼續」
  6. 在「權限」中,授予服務帳戶「BigQuery 工作使用者」IAM 角色,以便該帳戶存取專案中要連線至 Looker Studio 的資料。請注意,這可能與您建立服務帳戶的專案不同。
  7. 按一下「繼續」
  8. 在「Service account users role」(服務帳戶使用者角色) 欄位中,新增可使用這個服務帳戶為資料來源提供憑證的使用者。如果目前還不想新增使用者,稍後再按照「授予使用者角色」一文中的操作說明新增即可。
  9. 按一下「完成」儲存服務帳戶,然後返回專案的服務帳戶清單頁面。

gcloud

請按照「建立及管理服務帳戶」一文「Cloud Shell」下方列出的一般步驟操作。

  1. 開啟 Cloud Shell
  2. 視需要選取專案。
  3. 如要建立服務帳戶,請執行 gcloud iam service-accounts create 指令。您可以選擇任何帳戶名稱、說明和顯示名稱。

範例:

gcloud iam service-accounts create looker-studio-service-account \
--description="Use for Looker Studio access to BigQuery"  \
--display-name="LS_BQ"
  1. 如要存取您想搭配 Looker Studio 使用的 Google Cloud 專案中的 BigQuery 資料,請在該專案中授予服務帳戶 bigquery.jobs.create 權限。您可以授予 BigQuery 工作使用者 IAM 角色,藉此授予這項權限。

    此外,請在要與 Looker Studio 搭配使用的專案或資料集上,授予服務帳戶 bigquery.tables.getDatabigquery.tables.get 權限。您可以授予「BigQuery 資料檢視者」角色 (roles/bigquery.dataViewer) 來提供這些權限。

    如要授予這些角色,請執行 gcloud projects add-iam-policy-binding 指令。在下列範例中,請將 PROJECT_ID 替換為您的專案 ID。

    範例:授予 BigQuery Job User 角色

    gcloud projects add-iam-policy-binding PROJECT_ID\
    --member ="serviceAccount:looker-studio-service-account@PROJECT_ID.iam.gserviceaccount.com" \
    --role="roles/bigquery.jobUser"
    

    範例:授予 BigQuery 資料檢視者角色

    gcloud projects add-iam-policy-bindingPROJECT_ID\
    --member ="serviceAccount:looker-studio-service-account@PROJECT_ID.iam.gserviceaccount.com" \
    --role="roles/bigquery.dataViewer"
    

步驟 3:允許 Looker Studio 服務代理存取服務帳戶

如要允許 Looker Studio 服務代理使用服務帳戶存取資料,請將「服務帳戶符記建立者」角色 (roles/iam.serviceAccountTokenCreator) 授予服務代理。

控制台

  1. 返回Google Cloud 控制台服務帳戶清單
  2. 在清單中按一下,選取您剛建立的 Looker Studio 服務帳戶。
  3. 按一下「具備存取權的主體」
  4. 按一下「person_add」 授予存取權
  5. 在「將主體新增至 PROJECT_ID中,將您在步驟 1 複製的 Looker Studio 服務代理電子郵件地址,貼到「新增主體」方塊。(服務代理商的地址看起來會像這樣:SERVICE_AGENT_NAME@PROJECT_ID.iam.gserviceaccount.com)。
  6. 選取可授予服務代理人iam.serviceAccounts.getAccessToken權限的角色。舉例來說,您可以使用「服務帳戶符記建立者」角色,也可以使用授予這項權限的任何自訂角色。
  7. 按一下 [儲存]

gcloud

執行 gcloud iam service-accounts add-iam-policy-binding 指令。在下列範例中,請將 ORG_ID 替換為貴機構的 ID。

範例:

gcloud iam service-accounts add-iam-policy-binding looker-studio-service-account@PROJECT_ID.iam.gserviceaccount.com \
--member="service-ORG_ID@gcp-sa-datastudio.iam.gserviceaccount.com" \
--role="roles/iam.serviceAccountTokenCreator"

步驟 4:授予使用者角色

如要建立或編輯資料來源,Looker Studio 使用者必須獲派包含 iam.serviceAccounts.actAs 權限的角色,例如「服務帳戶使用者」角色 (roles/iam.serviceAccountUser)。您可以為專案或個別服務帳戶指派這個角色,但建議只為服務帳戶指派角色。如需操作說明,請參閱「管理服務帳戶模擬」。

建議您不要授予非服務代理使用者「服務帳戶權杖建立者」角色,因為 Looker Studio 不需要這項角色。

控制台

  1. 前往主控台服務帳戶清單
  2. 在清單中按一下 Looker Studio 服務帳戶,選取該帳戶。
  3. 按一下「具備存取權的主體」
  4. 依序點選「person_add」 「授予存取權」
  5. 在「Add principals and roles for Service Account」(為服務帳戶新增主體和角色) 中,於「New principals」(新增主體) 方塊中輸入使用者的電子郵件地址。
  6. 選取「服務帳戶使用者」角色。
  7. 按一下 [儲存]

gcloud

如要授予「服務帳戶使用者」角色,請執行 gcloud projects add-iam-policy-binding 指令。在下列範例中,請將 PROJECT_ID 替換為您的專案 ID,並將 USER_EMAIL 替換為一或多個有效電子郵件地址 (以半形逗號分隔多個項目)。

範例:

gcloud iam service-accounts add-iam-policy-binding  looker-studio-service-account@PROJECT_ID.iam.gserviceaccount.com  \
--member="user:USER_EMAIL" \
--role="roles/iam.serviceAccountUser"

步驟 5:啟用服務帳戶,存取 BigQuery 資料

如要允許 Looker Studio 存取資料,請在資料表或資料集層級,將 BigQuery 資料檢視者角色授予服務帳戶。我們不建議在專案層級授予服務帳戶存取權。

控制台

如何授予資料表存取權

  1. 複製 Looker Studio 服務代理程式的電子郵件地址,如步驟 1 所述。取得 Looker Studio 服務專員
  2. 前往Google Cloud 控制台服務帳戶清單
  3. 前往 BigQuery 並開啟專案。
  4. 按一下展開箭頭 ,展開資料集。
  5. 請選取資料表。
  6. 依序按一下工具列中的「person_add」 「分享」
  7. 在右側開啟的面板中,依序點按 person_add 「新增主體」
  8. 在「New principals」(新增主體) 方塊中,貼上 Looker Studio 服務代理程式的電子郵件地址。
  9. 選取「BigQuery 資料檢視者」角色。
  10. 按一下 [儲存]

如何授予資料集存取權

  1. 複製 Looker Studio 服務代理程式的電子郵件地址,如步驟 1 所述。取得 Looker Studio 服務專員
  2. 前往Google Cloud 控制台服務帳戶清單
  3. 前往 BigQuery,開啟專案,然後找出資料集。
  4. 按一下選項選單
  5. 按一下「開啟」
  6. 在工具列中,依序按一下「person_add」 「共用權限」
  7. 在右側開啟的面板中,依序點按 person_add 「新增主體」
  8. 在「New principals」(新增主體) 方塊中,貼上 Looker Studio 服務代理程式的電子郵件地址。
  9. 選取「BigQuery 資料檢視者」角色。
  10. 按一下 [儲存]

gcloud

建議使用 Google Cloud 控制台操作說明授予資料存取權。如要使用 bq 指令列工具授予資料存取權,請參閱 BigQuery 說明文件中的「 控管資料集存取權」。

將 Looker Studio 服務帳戶提供給 Looker Studio 使用者

建立資料來源時,Looker Studio 使用者需要知道要使用哪個服務帳戶。由於無法在 Looker Studio 中查看可用服務帳戶的清單,您應透過貴機構的文件、內部網站或電子郵件提供這項資訊。

建立使用服務帳戶憑證的資料來源

如要建立使用服務帳戶憑證的資料來源,Looker Studio 使用者可以按照與其他資料憑證類型相同的基本步驟操作:

  1. 建立或編輯 BigQuery 資料來源
  2. 按一下工具列中的「資料憑證」
  3. 選取「服務」「帳戶憑證」。
  4. 在方塊中輸入服務帳戶電子郵件地址。
  5. 按一下「更新」

編輯使用服務帳戶憑證的資料來源

如果有人編輯使用服務帳戶憑證的資料來源,Looker Studio 會檢查他們是否具備服務帳戶的使用權限。如果沒有,資料來源就會改用該人員的憑證。

查看誰使用服務帳戶存取資料

您可以在 Google Cloud 控制台中查看服務帳戶的稽核記錄。如要接收服務帳戶的稽核記錄,請務必啟用「資料存取」活動的 IAM 稽核記錄

服務帳戶範例情境

假設您想確保貴公司的 Looker Studio 使用者只能存取其所在國家/地區子公司的資料,解決方法是為每個國家/地區建立服務帳戶,並只允許該國家/地區的 Looker Studio 使用者以服務帳戶身分執行動作。

設定範例

在本範例中,您將建立三個服務帳戶:英國、法國和德國各一個。接著,將服務代理程式和任何要能建立使用服務帳戶的資料來源的使用者指派為主體。並為每位使用者指派適當的角色。

英國服務帳戶

service-account-1@example-org-uk-example-project.iam.gserviceaccount.com

英國主體

主體 角色

service-org-12345@gcp-sa-datastudio.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-org-12345@gcp-sa-datastudio.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-org-12345@gcp-sa-datastudio.iam.gserviceaccount.com

這是服務代理。

Service Account Token Creator
使用者 5 Service Account User
使用者 6 Service Account User

錯誤

本節說明 Looker Studio 資料來源建立者和報表檢視者嘗試使用服務帳戶時,可能會看到的錯誤。在大多數情況下,這些錯誤的根本原因相同:服務帳戶設定不正確或不完整。

缺少服務代理帳戶角色

訊息

  • Looker Studio 服務代理缺少這項服務的 iam.serviceAccounts.getAccessToken 權限。
  • 這個資料來源服務帳戶使用的服務代理帳戶缺少「服務帳戶符記建立者」角色。

原因

服務代理程式未獲授「服務帳戶憑證建立者」 角色 (或其他包含 iam.serviceAccounts.getAccessToken 權限的角色)。

解決方案

將「服務帳戶憑證建立者」 角色指派給服務代理人。

無法存取資料

訊息

這個服務帳戶無法存取基礎資料集。

原因

  • 服務帳戶未獲授權存取專案資料。
  • 帳單專案連結至服務帳戶無法存取的專案。

解決方案

至少要為基礎資料表、資料集或專案中的服務帳戶授予「BigQuery 資料檢視者」 角色。

缺少使用者角色

訊息

您的權限不足,無法使用這個服務帳戶。

原因

使用者尚未以「服務帳戶使用者」角色新增為服務帳戶的主體。

解決方案

將服務帳戶的「服務帳戶使用者」角色授予使用者。

帳戶無法使用服務代理

訊息

  • 無法為此帳戶產生服務代理。請使用 Google Workspace 或 Cloud Identity 代管帳戶再試一次。
  • 服務代理憑證僅適用於 Google Workspace 或 Cloud Identity 代管機構。請改用其他帳戶。

原因

使用者嘗試透過標準 (個人使用者) Google 帳戶存取服務帳戶控管的資料。

解決方案

使用 Google Workspace 或 Cloud Identity 帳戶存取資料。

無法在憑證對話方塊中使用服務代理

訊息

Looker Studio 服務代理無法用於直接連結資料,請改用服務帳戶

解決方案

服務代理和服務帳戶不同。在憑證對話方塊中輸入服務帳戶。您可以使用 Google Cloud 控制台或 Cloud Shell,查看可用服務帳戶清單:

控制台

  1. 依序前往「Google Cloud Platform」>「IAM & Admin」>「Service accounts」頁面。
  2. 視需要選取專案。
  3. 在「專案的服務帳戶」頁面中,找出 Looker Studio 用來存取 BigQuery 資料的服務帳戶。
  4. 複製該帳戶的電子郵件地址。

gcloud

  1. 開啟 Cloud Shell
  2. 視需要選取專案。
  3. 如要列出您有權存取的服務帳戶,請執行 gcloud iam service-accounts list 指令。

範例:

gcloud iam service-accounts list

限制

  • 服務帳戶憑證僅適用於 BigQuery 資料來源。服務帳戶適用 IAM 限制
  • 變更服務帳戶權限後,可能需要幾分鐘才會反映在 Looker Studio 中。
  • 如果資料受到 VPC Service Controls 的 IP 存取層級保護,系統就無法排定電子郵件傳送時間。(這是因為收件者查看報表時,Looker Studio 不會傳遞電子郵件收件者的 IP 位址)。