Mengonfigurasi akun layanan

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

  1. Aktifkan layanan Infra Manager.
  2. 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:

  1. 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.

  2. 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
  3. 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