Untuk menggunakan Infrastructure Manager guna membuat, memperbarui, atau menghapus deployment, Anda harus menggunakan akun layanan. Infra Manager mengeksekusi Terraform menggunakan identitas akun layanan ini.
Anda tidak memerlukan akun layanan untuk melihat informasi tentang deployment Infra Manager.
Halaman ini menjelaskan cara mengonfigurasi akun layanan agar Anda dapat men-deploy resource dengan Infrastructure Manager.
Sebelum memulai
- Aktifkan layanan Infra Manager.
- Buat akun layanan atau identifikasi akun layanan yang ada untuk digunakan dengan Infra Manager.
Memberikan akses ke akun layanan
Untuk menggunakan Infrastructure Manager guna membuat, memperbarui, atau menghapus deployment, setiap pengguna memerlukan akses ke akun layanan.
Berikan peran IAM
Service Account User (roles/iam.serviceAccountUser
)
ke pengguna untuk akun layanan.
Memberikan izin untuk Infra Manager
Agar dapat digunakan dengan Infra Manager, akun layanan memerlukan
peran Agen Infra Manager (roles/config.agent
).
Tindakan ini memberikan izin kepada Infra Manager untuk membuat, memperbarui, dan menghapus resource.
Untuk mengetahui detail tentang cara memberikan izin ke akun layanan, lihat Mengelola akses ke akun layanan.
Memberikan izin baca untuk bucket penyimpanan
Anda dapat menggunakan bucket penyimpanan untuk menyimpan konfigurasi Terraform yang di-deploy oleh Infra Manager.
Jika Anda menggunakan bucket penyimpanan untuk konfigurasi, dan bucket penyimpanan ini berada dalam project yang berbeda dengan project tempat Anda menjalankan Infra Manager, Anda harus memastikan bahwa akun layanan yang Anda gunakan untuk memanggil Infra Manager memiliki izin baca untuk bucket. Untuk mengetahui detail tentang izin Cloud Storage, lihat Izin IAM untuk Cloud Storage.
Jika bucket penyimpanan berada dalam project yang sama dengan Infra Manager, dan Anda telah memberikan roles/config.agent
ke akun layanan, izin baca ke bucket tersebut sudah diaktifkan.
Untuk mengetahui detail tentang cara mengupload konfigurasi ke bucket penyimpanan, lihat Mengupload konfigurasi Terraform.
Memberikan izin untuk resource yang ditentukan dalam konfigurasi
Untuk membuat dan mengelola resource Google Cloud yang ditentukan dalam konfigurasi Terraform, akun layanan memerlukan izin khusus untuk resource ini.
Izin khusus untuk resource Google Cloud yang ditentukan dalam konfigurasi Terraform yang Anda deploy. Misalnya, izin untuk membuat instance VM Compute Engine adalah
compute.instances.create
.Izin khusus untuk resource Google Cloud yang ditentukan dalam konfigurasi Terraform deployment yang Anda perbarui.
Misalnya, deployment Anda menyediakan VM Compute Engine, lalu Anda mengupdate deployment menggunakan konfigurasi yang tidak menyertakan VM Compute Engine. Dalam hal ini, saat Anda memperbarui revisi, akun layanan memerlukan:
Izin untuk resource yang ditolak dalam konfigurasi baru.
Izin untuk resource yang dihapus, seperti VM Compute Engine dalam contoh ini.
Untuk mendapatkan bantuan dalam mengidentifikasi izin yang diperlukan untuk resource dalam konfigurasi Terraform, lihat Memilih peran bawaan.
Untuk mengetahui detail tentang cara memberikan izin ke akun layanan, lihat Mengelola akses ke akun layanan.
Berikan akses ke project
Izin tambahan diperlukan jika akun layanan berada di project yang berbeda dengan project tempat layanan Infra Manager dijalankan.
Untuk memberikan izin tambahan ini:
Dalam project yang memiliki akun layanan, pastikan bahwa batasan kebijakan organisasi
iam.disableCrossProjectServiceAccountUsage
tidak diterapkan. Batasan ini diterapkan secara default.Untuk menonaktifkan batasan kebijakan organisasi ini, jalankan:
gcloud resource-manager org-policies disable-enforce iam.disableCrossProjectServiceAccountUsage --project=SERVICE_ACCOUNT_PROJECT_ID
Ganti SERVICE_ACCOUNT_PROJECT_ID dengan ID project yang berisi akun layanan.
Di project yang memiliki akun layanan, berikan peran
roles/iam.serviceAccountUser
untuk agen layanan Infra Manager project tempat Anda membuat deployment:gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member="serviceAccount:service-INFRA_MANAGER_PROJECT_NUMBER@gcp-sa-config.iam.gserviceaccount.com" \ --role="roles/iam.serviceAccountUser"
Ganti nilai placeholder dalam perintah di atas dengan yang berikut ini:
- SERVICE_ACCOUNT_PROJECT_ID: Project ID untuk project yang berisi akun layanan.
- INFRA_MANAGER_PROJECT_NUMBER: Nomor project
project tempat Anda membuat deployment. Ini membentuk ID email agen layanan:
service-INFRA_MANAGER_PROJECT_NUMBER@gcp-sa-config.iam.gserviceaccount.com
Agar Infra Manager dapat membuat tugas Cloud Build atas nama akun layanan, berikan peran
roles/iam.serviceAccountTokenCreator
kepada akun layanan. Peran ini adalah untuk agen layanan Infra Manager project tempat Anda membuat deployment:gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member="serviceAccount:service-INFRA_MANAGER_PROJECT_NUMBER@gcp-sa-cloudbuild.iam.gserviceaccount.com" \ --role="roles/iam.serviceAccountTokenCreator"
Langkah selanjutnya
- Pelajari IAM.
- Pelajari Terraform dengan Google Cloud lebih lanjut.
- Men-deploy infrastruktur menggunakan Infra Manager.
- Memperbarui deployment.
- Melihat status deployment.