Menggunakan akun layanan lintas-project

Dokumen ini menguraikan cara menggunakan akun layanan lintas project saat membuat VM TPU. Akun layanan lintas project adalah akun layanan yang berada di project yang berbeda dengan VM TPU.

Perhatikan bahwa petunjuk berikut tidak mempertimbangkan VPC Bersama atau Kontrol Layanan VPC. Konfigurasi atau izin tambahan mungkin diperlukan untuk mendukung penggunaannya. Untuk mengetahui informasi selengkapnya, lihat Membuat dan mengubah jaringan VPC Bersama dan Ringkasan Kontrol Layanan VPC.

Sebelum memulai

Menentukan variabel lingkungan

export TPU_PROJECT_ID=tpu-project-id
export SERVICE_PROJECT_ID=service-project-id
export SERVICE_ACCOUNT_EMAIL=your_service_account@$(SERVICE_PROJECT_ID).iam.gserviceaccount.com
export ZONE=your-zone
export TPU_NAME=your-tpu-name
export NETWORK=your-network
export SUBNET=your-subnet

Menetapkan izin IAM

  1. Izinkan akun layanan Anda menggunakan peran TPU Service Agent di tpu_project.

    gcloud projects add-iam-policy-binding ${TPU_PROJECT_ID} \
    --member=serviceAccount:${SERVICE_ACCOUNT_EMAIL} \
    --role=roles/cloudtpu.serviceAgent
  2. Tambahkan peran serviceAccountUser ke Agen Layanan TPU.

    gcloud projects add-iam-policy-binding $SERVICE_PROJECT_ID \
    --member=serviceAccount:service-$TPU_PROJECT_ID@gcp-sa-tpu.iam.gserviceaccount.com \
    --role=roles/iam.serviceAccountUser
  3. Jika beban kerja Anda berjalan di penampung Docker, izinkan Agen Layanan Compute Engine untuk mengakses server metadata.

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

Membuat VM TPU di tpu_project

Buat VM TPU di tpu_project menggunakan akun layanan di service_project.

gcloud alpha compute tpus tpu-vm create $TPU_NAME \
--description=$TPU_NAME \
--accelerator-type=v5litepod-8 \
--version=tpu-vm-tf-2.17.0-pod \
--network=projects/$PROJECT_A/global/networks/$NETWORK \
--subnetwork=$SUBNET \
--internal-ips \
--service-account=$SERVICE_ACCOUNT_EMAIL \
--project=$TPU_PROJECT_ID \
--zone=$ZONE