Memberikan peran ke akun layanan Anda

Saat developer melihat pratinjau dan men-deploy aplikasi, mereka dapat menggunakan akun layanan yang ada, atau App Design Center dapat otomatis membuat akun layanan baru.

Untuk men-deploy menggunakan akun layanan Anda sendiri, Anda harus memberikan peran dan izin Identity and Access Management yang diperlukan. Dokumen ini menunjukkan cara memberikan peran dan mengonfigurasi akun layanan Anda, termasuk hal berikut:

  • Menambahkan binding kebijakan IAM ke akun layanan dan akun pengguna.
  • Memberikan peran yang diperlukan ke akun layanan untuk men-deploy setiap resource.
  • Menambahkan izin ke akun layanan untuk men-deploy di luar project tempat akun layanan dibuat.
  • Memperbarui kebijakan organisasi Anda untuk mengizinkan akun layanan digunakan di seluruh project.

Mengonfigurasi akun layanan Anda

Untuk mengonfigurasi akun layanan Anda, lakukan hal berikut:

  1. Tambahkan binding kebijakan IAM untuk peran roles/iam.serviceAccountUser untuk agen layanan ke akun layanan Anda:

    gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
        --member="serviceAccount:service-SERVICE_ACCOUNT_PROJECT_NUMBER@gcp-sa-designcenter.iam.gserviceaccount.com" \
        --role="roles/iam.serviceAccountUser"
    

    Ganti kode berikut:

    • SERVICE_ACCOUNT_EMAIL: Email akun layanan Anda. Misalnya, my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com.
    • SERVICE_ACCOUNT_PROJECT_ID: Project ID project yang berisi akun layanan Anda.
    • SERVICE_ACCOUNT_PROJECT_NUMBER: Nomor project project yang berisi akun layanan Anda.
  2. Tambahkan binding kebijakan IAM untuk peran roles/iam.serviceAccountUser untuk pengguna ke akun layanan Anda:

    gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
        --member="user:USER_EMAIL" \
        --role="roles/iam.serviceAccountUser"
    

    Ganti kode berikut:

    • SERVICE_ACCOUNT_EMAIL: Email akun layanan Anda. Misalnya, my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com.
    • USER_EMAIL: Email pengguna untuk pengguna yang melakukan deployment.
  3. Di project yang memiliki akun layanan Anda, tambahkan binding kebijakan IAM untuk peran agen layanan yang diperlukan di project pengelolaan yang berisi ruang Anda:

    gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \
        --member="serviceAccount:service-MANAGEMENT_PROJECT_NUMBER@gcp-sa-designcenter.iam.gserviceaccount.com" \
        --role="roles/apphub.editor"
    
    gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \
        --member="serviceAccount:service-MANAGEMENT_PROJECT_NUMBER@gcp-sa-designcenter.iam.gserviceaccount.com" \
        --role="roles/config.agent"
    
    gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \
        --member="serviceAccount:service-MANAGEMENT_PROJECT_NUMBER@gcp-sa-designcenter.iam.gserviceaccount.com" \
        --role="roles/serviceusage.serviceUsageAdmin"
    

    Ganti kode berikut:

    • SERVICE_ACCOUNT_PROJECT_ID: Project ID project yang berisi akun layanan Anda.
    • MANAGEMENT_PROJECT_NUMBER: Nomor project project pengelolaan yang berisi ruang Anda.
  4. Di project yang memiliki akun layanan Anda, pastikan batasan kebijakan organisasi iam.disableCrossProjectServiceAccountUsage tidak diterapkan. Batasan ini diterapkan secara default.

    Untuk menonaktifkan penerapan batasan kebijakan organisasi, jalankan perintah berikut:

    gcloud resource-manager org-policies disable-enforce \
       iam.disableCrossProjectServiceAccountUsage \
       --project=SERVICE_ACCOUNT_PROJECT_ID
    

    Ganti kode berikut:

    • SERVICE_ACCOUNT_PROJECT_ID: Project ID project yang berisi akun layanan Anda.
  5. Berikan peran yang diperlukan ke akun layanan Anda untuk men-deploy resource di project. Peran yang diperlukan ditampilkan saat developer men-deploy aplikasi.

    Misalnya, untuk memberikan peran roles/run.admin, tambahkan binding kebijakan berikut:

    gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \
        --member="serviceAccount:service-DEPLOYMENT_PROJECT_NUMBER@gcp-sa-designcenter.iam.gserviceaccount.com" \
        --role="roles/run.admin"
    

    Ganti kode berikut:

    • SERVICE_ACCOUNT_PROJECT_ID: Project ID project yang berisi akun layanan Anda.
    • DEPLOYMENT_PROJECT_NUMBER: Nomor project project tempat Anda men-deploy resource.
  6. App Design Center menggunakan Infrastructure Manager untuk men-deploy aplikasi di konsol. Untuk menggunakan akun layanan Anda sendiri untuk men-deploy dengan Infrastructure Manager, selesaikan langkah-langkah di Memberikan akses di beberapa project.

  7. Jika aplikasi yang Anda deploy berisi komponen pribadi yang Anda impor melalui koneksi Developer Connect, lakukan hal berikut:

    Berikan peran roles/iam.serviceAccountTokenCreator ke akun layanan Anda di project tempat Anda membuat akun layanan.

    gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
        --role="roles/iam.serviceAccountTokenCreator"
    

    Ganti kode berikut:

    • SERVICE_ACCOUNT_PROJECT_ID: Project ID project yang berisi akun layanan Anda.
    • SERVICE_ACCOUNT_EMAIL: Email akun layanan Anda. Misalnya, my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com.

Langkah berikutnya