使用跨專案服務帳戶

本文說明如何建立 TPU VM 時使用跨專案服務帳戶。跨專案服務帳戶是指與 TPU VM 位於不同專案的服務帳戶。

這些操作說明未納入 Shared VPC 或 VPC Service Controls 的注意事項。可能需要額外設定或權限才能使用。詳情請參閱「建立及修改共用虛擬私有雲網路」和「VPC Service Controls 總覽」。

事前準備

設定 IAM 權限

  1. 服務帳戶使用者角色授予使用者帳戶,允許該帳戶將服務帳戶附加至 VM 執行個體。

    gcloud iam service-accounts add-iam-policy-binding \
      SERVICE_ACCOUNT_EMAIL \
      --project=SERVICE_PROJECT_ID \
      --member=user:USER_EMAIL \
      --role=roles/iam.serviceAccountUser
    

    替換下列預留位置:

    • SERVICE_ACCOUNT_EMAIL:服務帳戶的電子郵件地址。
    • SERVICE_PROJECT_ID:包含服務帳戶的專案 ID。
    • USER_EMAIL:使用者帳戶的電子郵件地址。
  2. 如果工作負載是在 Docker 容器中執行,請授予 Compute Engine 服務代理程式中繼資料伺服器的存取權。

    gcloud iam service-accounts add-iam-policy-binding \
      SERVICE_ACCOUNT_EMAIL \
      --project=SERVICE_PROJECT_ID \
      --role=roles/iam.serviceAccountTokenCreator \
      --member=serviceAccount:service-TPU_PROJECT_ID@compute-system.iam.gserviceaccount.com
    

    替換下列預留位置:

    • SERVICE_ACCOUNT_EMAIL:服務帳戶的電子郵件地址。
    • SERVICE_PROJECT_ID:包含服務帳戶的專案 ID。
    • TPU_PROJECT_ID:包含 TPU VM 的專案 ID。

在 TPU 專案中建立 TPU VM

使用服務專案中的服務帳戶,在 TPU 專案中建立 TPU VM。

  gcloud compute instances create TPU_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --service-account=SERVICE_ACCOUNT_EMAIL \
    --project=TPU_PROJECT_ID \
    --zone=ZONE \
    --maintenance-policy=TERMINATE

替換下列預留位置:

  • TPU_NAME:TPU VM 的名稱。
  • MACHINE_TYPE機型
  • IMAGE_FAMILY:TPU VM 的作業系統映像檔系列。如要安裝特定 OS 版本,請使用 --image 標記。
  • IMAGE_PROJECT:包含 OS 映像檔的專案。如果是 TPU 映像檔,則為 ubuntu-os-accelerator-images
  • SERVICE_ACCOUNT_EMAIL:服務帳戶的電子郵件地址。
  • TPU_PROJECT_ID:包含 TPU VM 的專案 ID。
  • ZONE:TPU VM 的可用區。