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.
Di konsol Google Cloud, buka halaman Organization policies.
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.
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.
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
Di Konsol Google Cloud, buka halaman Service accounts.
Pilih project yang memiliki akun layanan yang akan Anda lampirkan ke pemicu Eventarc.
Klik alamat email akun layanan yang sebelumnya Anda buat.
Klik tab Izin.
Di bagian Principals with access to this service account, klik
Grant access.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.Klik Add another role.
Di daftar Select a role, filter untuk Service Account Token Creator, lalu pilih peran tersebut.
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 AndaSERVICE_ACCOUNT_PROJECT_ID
: Google Cloud project ID project yang memiliki akun layananEVENTARC_PROJECT_NUMBER
: Google Cloud nomor project dari project yang berisi pemicu
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 iziniam.serviceAccounts.actAs
, yang diperlukan untuk melampirkan akun layanan ke resource.Konsol
Berikan peran pada project untuk mengizinkan akun utama meniru identitas beberapa akun layanan:
Di konsol Google Cloud, buka halaman IAM.
Pilih project yang memiliki akun layanan.
Klik
Grant access.Di kolom New principals, masukkan alamat email akun utama.
Di daftar Select a role, filter Service Account User, lalu pilih peran.
Klik Simpan.
Atau, berikan peran pada akun layanan untuk mengizinkan akun utama meniru akun layanan tertentu saja:
Di Konsol Google Cloud, buka halaman Service accounts.
Pilih project yang memiliki akun layanan.
Klik alamat email akun layanan yang sebelumnya Anda buat.
Klik tab Izin.
Di bagian Principals with access to this service account, klik
Grant access.Di kolom New principals, masukkan alamat email akun utama.
Klik Add another role.
Di daftar Select a role, filter Service Account User, lalu pilih peran.
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 layananPRINCIPAL
: ID untuk pembuat pemicu dalam formatuser|group|serviceAccount:email
ataudomain: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 layananSERVICE_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.
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.
Buat pemicu menggunakan akun layanan lintas project.