Lewati ke konten

Perbaikan nilai VM_SA

Bentuk alamat Service Account yang benar, dan cara memeriksanya.

Berkas: alat/hari-3/Praktik 11/perbaikan/vm-sa.md

Praktik 11/perbaikan/vm-sa.md
# Perbaikan Tahap 6: nilai VM_SA
Tahap 6 pada modul memakai nilai berikut:
```bash
PROJECT_NUMBER="$(gcloud projects describe "$PROJECT_ID" \
--format='value(projectNumber)')"
VM_SA="${PROJECT_NUMBER}-asisten01@example.com"

Nilai itu bukan alamat service account Google, sehingga dua perintah IAM di Tahap 6 gagal dengan pesan bahwa service account tidak ada.

Terminal window
VM_SA="${PROJECT_NUMBER}-asisten02@example.com"

Service Account default Compute Engine selalu berbentuk <nomor-project>-asisten02@example.com. Nilainya sama untuk semua peserta dalam satu project, karena hanya bergantung pada nomor project. Itu memang begitu, dan bukan tanda ada yang salah.

VM setiap peserta memakai Service Account default project. Karena satu project dipakai beberapa peserta, Service Account itu dipakai bersama. Yang membedakan antar peserta bukan Service Account-nya, melainkan:

  • Nama VM, yang memuat identitas peserta
  • Service Account Cloud Build, cb-deployer-<identitas>, yang dibuat peserta sendiri di Tahap 4
  • Trigger, yang menunjuk ke VM milik peserta itu

Rantai izinnya: Service Account Cloud Build peserta memakai roles/iam.serviceAccountUser pada Service Account VM, sehingga trigger boleh melakukan SSH ke VM.

Setelah Tahap 6 selesai, periksa dua binding:

Terminal window
gcloud projects get-iam-policy "$PROJECT_ID" \
--flatten="bindings[].members" \
--filter="bindings.members:serviceAccount:$VM_SA" \
--format="table(bindings.role)"

Harus muncul roles/artifactregistry.reader.

Terminal window
gcloud iam service-accounts get-iam-policy "$VM_SA" \
--project="$PROJECT_ID" --format="table(bindings.role, bindings.members)"

Harus muncul roles/iam.serviceAccountUser dengan anggota Service Account Cloud Build peserta, yaitu cb-deployer-<identitas>@<PROJECT_ID>.iam.gserviceaccount.com.