Mendukung akun layanan lintas-project

Setiap pemicu Eventarc dikaitkan dengan akun layanan Identity and Access Management (IAM) saat pemicu dibuat. Pemicu menggunakan akun layanan sebagai identitas default-nya.

Secara default, Anda tidak dapat membuat akun layanan IAM di satu project Google Cloud dan melampirkannya ke resource di project lain. Namun, Anda mungkin telah memusatkan akun layanan untuk organisasi Anda dalam project terpisah, yang dapat membuat akun layanan lebih mudah dikelola. Dokumen ini menguraikan langkah-langkah yang diperlukan untuk mendukung lampiran akun layanan di satu project ke pemicu Eventarc di project lain.

Jika Anda tidak memiliki izin untuk melakukan langkah-langkah ini, minta administrator untuk menyelesaikannya.

Mengaktifkan penggunaan akun layanan lintas project

Selesaikan langkah-langkah berikut di project akun layanan.

  1. Di konsol Google Cloud, buka halaman Organization policies.

    Buka Organization policies

  2. Jika kebijakan Disable Cross-Project Service Account Usage diterapkan, Anda harus menonaktifkannya.

    Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan akun layanan untuk dilampirkan di seluruh project.

  3. Buat akun layanan Anda dan catat namanya.

Memberikan izin untuk autentikasi akun layanan

Akun utama dapat menggunakan akun layanan untuk mengautentikasi dengan beberapa cara berbeda. Setiap jenis autentikasi mengharuskan akun utama untuk memiliki izin IAM tertentu pada akun layanan. Untuk mengetahui informasi selengkapnya, lihat Peran untuk autentikasi akun layanan.

  1. Berikan peran IAM Service Account Token Creator (roles/iam.serviceAccountTokenCreator) kepada agen layanan Eventarc dari project Google Cloud yang berisi pemicu. Hal ini memungkinkan agen layanan mengelola akses lintas project untuk akun layanan. Agen layanan adalah identitas layanan Google Cloud tertentu untuk project tertentu. Untuk informasi selengkapnya, lihat Agen layanan.

    Konsol

    1. Di Konsol Google Cloud, buka halaman Service accounts.

      Buka halaman Service accounts

    2. Pilih project yang memiliki akun layanan yang akan Anda lampirkan ke pemicu Eventarc.

    3. Klik alamat email akun layanan yang sebelumnya Anda buat.

    4. Klik tab Izin.

    5. Di bagian Principals with access to this service account, klik Grant access.

    6. Di kolom New principals, masukkan alamat email agen layanan Eventarc:

      service-EVENTARC_PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com

      Ganti EVENTARC_PROJECT_NUMBER denganGoogle Cloud nomor project dari project yang berisi pemicu.

    7. Klik Add another role.

    8. Di daftar Select a role, filter untuk Service Account Token Creator, lalu pilih peran tersebut.

    9. Klik Simpan.

    gcloud

    Jalankan perintah gcloud iam service-accounts add-iam-policy-binding:

    gcloud iam service-accounts add-iam-policy-binding \
        SERVICE_ACCOUNT_NAME@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com \
        --member='serviceAccount:service-EVENTARC_PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com' \
        --role='roles/iam.serviceAccountTokenCreator'

    Ganti kode berikut:

    • SERVICE_ACCOUNT_NAME: nama akun layanan Anda
    • SERVICE_ACCOUNT_PROJECT_ID: Google Cloud project ID project yang memiliki akun layanan
    • EVENTARC_PROJECT_NUMBER: Google Cloud nomor project dari project yang berisi pemicu
  2. Berikan peran IAM Service Account User (roles/iam.serviceAccountUser) kepada semua akun utama yang membuat pemicu—misalnya, agen layanan Eventarc dari project Google Cloud yang berisi pemicu. Peran yang telah ditentukan ini berisi izin iam.serviceAccounts.actAs, yang diperlukan untuk melampirkan akun layanan ke resource.

    Konsol

    Berikan peran pada project untuk mengizinkan akun utama meniru identitas beberapa akun layanan:

    1. Di konsol Google Cloud, buka halaman IAM.

      Buka IAM

    2. Pilih project yang memiliki akun layanan.

    3. Klik Grant access.

    4. Di kolom New principals, masukkan alamat email akun utama.

    5. Di daftar Select a role, filter Service Account User, lalu pilih peran.

    6. Klik Simpan.

    Atau, berikan peran pada akun layanan untuk mengizinkan akun utama meniru akun layanan tertentu saja:

    1. Di Konsol Google Cloud, buka halaman Service accounts.

      Buka halaman Service accounts

    2. Pilih project yang memiliki akun layanan.

    3. Klik alamat email akun layanan yang sebelumnya Anda buat.

    4. Klik tab Izin.

    5. Di bagian Principals with access to this service account, klik Grant access.

    6. Di kolom New principals, masukkan alamat email akun utama.

    7. Klik Add another role.

    8. Di daftar Select a role, filter Service Account User, lalu pilih peran.

    9. Klik Simpan.

    gcloud

    Jalankan perintah gcloud projects add-iam-policy-binding dan berikan peran pada project untuk mengizinkan akun utama meniru beberapa akun layanan:

    gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \
        --member=PRINCIPAL \
        --role='roles/iam.serviceAccountUser'

    Atau, jalankan perintah gcloud iam service-accounts add-iam-policy-binding dan berikan peran di akun layanan untuk mengizinkan akun utama hanya meniru identitas akun layanan tertentu:

    gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_RESOURCE_NAME \
        --member=PRINCIPAL \
        --role='roles/iam.serviceAccountUser'

    Ganti kode berikut:

    • SERVICE_ACCOUNT_PROJECT_ID: Google Cloud project ID project yang memiliki akun layanan
    • PRINCIPAL: ID untuk pembuat pemicu dalam format user|group|serviceAccount:email atau domain:domain. Sebagai contoh:
      • user:test-user@gmail.com
      • group:admins@example.com
      • serviceAccount:test123@example.domain.com
      • domain:example.domain.com m
    • SERVICE_ACCOUNT_RESOURCE_NAME: nama resource lengkap akun layanan. Contoh:

      projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com

      Dengan keterangan:

      • SERVICE_ACCOUNT_PROJECT_ID adalah Google Cloud project ID yang memiliki akun layanan
      • SERVICE_ACCOUNT_NAME adalah nama akun layanan Anda

Memberikan izin untuk mendukung pemilihan rute peristiwa

Sebelum membuat pemicu Eventarc, Anda harus memberikan izin IAM lainnya untuk mendukung peristiwa pemilihan rute menggunakan Eventarc.

  1. Berikan izin yang sesuai berdasarkan resource yang harus diakses pemicu Eventarc untuk melakukan tugasnya, serta penyedia dan tujuan peristiwa. Untuk mengetahui informasi selengkapnya, lihat Semua peran dan izin.

  2. Buat pemicu menggunakan akun layanan lintas project.

Langkah berikutnya