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
- Buat dua project Google Cloud . Satu untuk menampung VM TPU (
tpu_project
) dan satu untuk menampung akun layanan (service_project
). Untuk informasi selengkapnya, lihat Membuat dan mengelola project. - Buat akun layanan di
service_project
. Untuk informasi selengkapnya, lihat Membuat dan mengelola akun layanan. - Buat jaringan dan aktifkan Akses Google Pribadi. Untuk mengetahui informasi selengkapnya, lihat Membuat dan mengelola jaringan dan Mengonfigurasi Akses Google Pribadi untuk alamat IP internal.
- Nonaktifkan kebijakan organisasi berikut. Untuk mengetahui informasi selengkapnya, lihat
Batasan kebijakan organisasi.
constraints/iam.disableCrossProjectServiceAccountUsage
di kedua projectconstraints/compute.vmExternalIpAccess
(untuk mengakses VM dengan SSH, opsional)
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
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
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
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