受管理遷移作業的必要條件

本頁說明如何設定 Google Cloud 專案,為 Dataproc Metastore 受管理遷移作業做好準備。

事前準備

必要的角色

如要取得建立 Dataproc Metastore 和啟動受管理遷移作業所需的權限,請要求管理員授予您下列 IAM 角色:

  • 如要授予所有 Dataproc Metastore 資源的完整存取權,包括設定 IAM 權限: 在 Dataproc Metastore 使用者帳戶或服務帳戶上,指派 Dataproc Metastore 管理員 (roles/metastore.admin) 角色。
  • 如要授予 Dataproc Metastore 資源的完整控制權: 在 Dataproc Metastore 使用者帳戶或服務帳戶上,指派 Dataproc Metastore 編輯者 (roles/metastore.editor) 角色。
  • 如要授予啟動遷移作業的權限,請在服務專案中,對 Dataproc Metastore 服務代理程式授予「遷移管理員」 (roles/metastore.migrationAdmin) 權限。

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

您或許還可透過自訂角色或其他預先定義的角色取得必要權限。

視專案設定授予其他角色

視專案的設定方式而定,您可能需要新增下列其他角色。如要瞭解如何將這些角色授予適當的帳戶,請參閱本頁下方的「必要條件」一節。

  • 將網路使用者 (roles/compute.networkUser) 角色授予服務專案的 Dataproc Metastore 服務代理人[Google APIs Service Agent]
  • 將網路管理員 (roles/compute.networkAdmin) 角色授予主專案中的 Datastream 服務代理人。

如果 Cloud SQL 執行個體與 Dataproc Metastore 服務專案位於不同專案:

  • 在 Cloud SQL 執行個體專案中,將 roles/cloudsql.client 角色和 roles/cloudsql.instanceUser 角色授予 Dataproc Metastore 服務代理。

如果 Change-Data-Capture 管道的 Cloud Storage 值區與 Dataproc Metastore 服務專案位於不同專案:

  • 請確認 Datastream 服務代理具備寫入 bucket 的必要權限。通常是 roles/storage.objectViewerroles/storage.objectCreatorroles/storage.legacyBucketReader 角色。

代管遷移作業的必要條件

Dataproc Metastore 會使用Proxy 和變更資料擷取管道,協助轉移資料。開始轉移前,請務必瞭解這些限制。

重要字詞

  • 服務專案:服務專案是指您建立 Dataproc Metastore 服務的 Google Cloud 專案。
  • 主專案:主專案是 Google Cloud 保存共用虛擬私有雲網路的專案。您可以將一或多個服務專案連結至主專案,使用這些共用網路。詳情請參閱「共用虛擬私有雲」。
  1. 在服務專案中啟用 Datastream API
  2. roles/metastore.migrationAdmin 角色授予服務專案中的 Dataproc Metastore 服務代理人。

    gcloud projects add-iam-policy-binding SERVICE_PROJECT --role "roles/metastore.migrationAdmin" --member "serviceAccount:service-SERVICE_PROJECT@gcp-sa-metastore.iam.gserviceaccount.com"
    
  3. 新增下列防火牆規則。

    在 Dataproc Metastore 與私人 IP Cloud SQL 執行個體之間建立連線。

    • 防火牆規則,允許流量從健康狀態檢查探測器探測器傳送至 SOCKS5 代理伺服器的網路負載平衡器。例如:

      gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK--allow=tcp:1080 --source-ranges=35.191.0.0/16,130.211.0.0/22
      

      通訊埠 1080 是 SOCKS5 Proxy 伺服器的執行位置。

    • 防火牆規則,允許流量從負載平衡器傳輸至 SOCKS5 Proxy MIG。例如:

      gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK--action=ALLOW --rules=all --source-ranges=PROXY_SUBNET_RANGE
      
    • 防火牆規則,允許流量從 Private Service Connect 服務連結傳入負載平衡器。例如:

      gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK --allow=tcp:1080 --source-ranges=NAT_SUBNET_RANGE
      

    防火牆規則,允許 Datastream 使用 /29 CIDR IP 範圍建立私人 IP 連線。例如:

    gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK --action=ALLOW --rules=all --source-ranges=CIDR_RANGE
    

(選用) 將角色新增至共用虛擬私有雲

如果您使用共用虛擬私有雲,請按照下列步驟操作。

如要進一步瞭解共用虛擬私有雲,請參閱「服務專案管理員」。

  1. roles/compute.networkUser 角色授予主專案的 Dataproc Metastore 服務代理人和 Google API 服務代理人。

    gcloud projects add-iam-policy-binding HOST_PROJECT  --role "roles/compute.networkUser" --member "serviceAccount:service-SERVICE_ACCOUNT@gcp-sa-metastore.iam.gserviceaccount.com"
    gcloud projects add-iam-policy-binding HOST_PROJECT  --role "roles/compute.networkUser" --member "serviceAccount:SERVICE_PROJECT@cloudservices.gserviceaccount.com"
    
  2. roles/compute.networkAdmin 角色授予主專案的 Datastream 服務代理人。

    gcloud projects add-iam-policy-binding HOST_PROJECT --role "roles/compute.networkAdmin" --member "serviceAccount:service-SERVICE_PROJECT@gcp-sa-datastream.iam.gserviceaccount.com"
    

如果無法授予 roles/compute.networkAdmin 角色,請建立自訂角色,並授予共用 VPC 先決條件中列出的權限。

  • 在移轉開始時,您必須具備這些權限,才能在主專案的虛擬私有雲網路與 Datastream 之間建立對等互連。

  • 遷移作業開始後,即可移除這個角色。如果在遷移作業完成前移除角色,Dataproc Metastore 就無法清除對等互連作業。在這種情況下,您必須自行清除工作。

後續步驟