Setiap pemicu Eventarc dikaitkan dengan akun layanan Identity and Access Management (IAM) pada saat pemicu dibuat. Pemicu menggunakan akun layanan sebagai identitas defaultnya.
Secara default, Anda tidak dapat membuat akun layanan IAM di satu Google Cloud project 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 pelampiran akun layanan dalam 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 Kebijakan organisasi.
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 mengetahui 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 Anda buat sebelumnya.
Klik tab Izin.
Di bagian Akun utama dengan akses ke akun layanan ini, klik
Beri akses.Di kolom New principals, masukkan alamat email agen layanan Eventarc:
service-EVENTARC_PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com
Ganti
EVENTARC_PROJECT_NUMBER
dengan Google Cloud nomor project dari project yang berisi pemicu.Klik Add another role.
Di daftar Select a role, filter 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 prinsipal yang membuat pemicu—misalnya, agen layanan Eventarc dari project Google Cloud yang berisi pemicu. Peran bawaan ini berisi iziniam.serviceAccounts.actAs
, yang diperlukan untuk melampirkan akun layanan ke resource.Konsol
Berikan peran pada project agar akun utama dapat 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 Pilih peran, filter Service Account User, lalu pilih peran.
Klik Simpan.
Atau, berikan peran pada akun layanan agar akun utama dapat meniru hanya akun layanan tertentu:
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 Akun utama dengan akses ke akun layanan ini, klik
Beri akses.Di kolom New principals, masukkan alamat email akun utama.
Klik Add another role.
Di daftar Pilih peran, filter Service Account User, lalu pilih peran.
Klik Simpan.
gcloud
Jalankan perintah
gcloud projects add-iam-policy-binding
dan beri 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 pada akun layanan untuk mengizinkan akun utama meniru identitas hanya 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 lengkap resource akun layanan. Contoh:projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com
Dengan:
SERVICE_ACCOUNT_PROJECT_ID
adalah Google Cloud project ID yang memiliki akun layananSERVICE_ACCOUNT_NAME
adalah nama akun layanan Anda
Memberikan izin untuk mendukung perutean acara
Sebelum membuat pemicu Eventarc, Anda harus memberikan izin IAM lainnya untuk mendukung perutean peristiwa menggunakan Eventarc.
Berikan izin yang sesuai berdasarkan resource yang harus diakses pemicu Eventarc untuk melakukan pekerjaannya, serta penyedia dan tujuan peristiwa. Untuk mengetahui informasi selengkapnya, lihat Semua peran dan izin.
Buat pemicu menggunakan akun layanan lintas project.