Memecahkan masalah error otorisasi

Halaman ini adalah bagian dari Mempersiapkan perubahan otorisasi mendatang. Halaman ini menjelaskan error yang mungkin Anda lihat dan cara memperbaikinya.

Tindakan yang ditolak memiliki salah satu dari dua penyebab, dan keduanya perlu dibedakan:

  • Akun layanan run-as — Anda tidak dapat bertindak sebagai akun layanan tersebut, atau akun layanan tersebut tidak dapat mengakses apa yang dibutuhkan tugas. Lihat Error akun layanan run-as.
  • Peran IAM Anda sendiri — Anda tidak diizinkan melakukan tindakan sama sekali. Lihat Error peran IAM.

Kedua pemeriksaan berlaku, jadi memperbaiki salah satunya tidak akan memperbaiki yang lainnya.

Error akun layanan run-as

Beberapa pemeriksaan ini masih diluncurkan, sehingga Anda mungkin belum melihat setiap error. Dalam pesan, PRINCIPAL adalah akun yang diperiksa. Akun tersebut akan menampilkan The caller jika akun tidak dapat diberi nama.

Situasi Yang akan Anda lihat Yang harus dilakukan
Seseorang, otomatisasi, atau pemicu memulai integrasi, tetapi tidak dapat bertindak sebagai akun layanan run-as Eksekusi ditolak dengan error berikut: PRINCIPAL needs roles/iam.serviceAccountUser on SERVICE_ACCOUNT (or its project) to run this integration.
  • Panggilan API menampilkan error, dan tidak ada yang muncul di log eksekusi Anda.
  • Pemicu peristiwa Cloud Pub/Sub, Eventarc, atau Integration Connectors mencatat kegagalan eksekusi di log eksekusi Anda, dan peristiwa tersebut tidak dikirim lagi.
  • Tugas Cloud Scheduler melaporkan error PERMISSION_DENIED.
Berikan Service Account User kepada siapa pun yang memulainya. Untuk pemicu, akun layanan pemicu.
Integrasi yang dibuat pada atau setelah 15 Oktober 2026, dengan pemicu selain API atau Pribadi, tidak memiliki akun layanan run-as. Publikasi dan pengujian gagal dengan error berikut: Set a run-as service account. These triggers run with no caller: TRIGGERS. Required for integrations created on or after October 15, 2026 (UTC). Menetapkan akun layanan run-as
Run tanpa kredensial pengguna tidak memiliki akun layanan run-as. Jika tata kelola integrasi diaktifkan untuk wilayah tersebut, publikasi dan pengujian akan gagal dengan error berikut, apa pun tanggal pembuatan integrasi: Your project requires a run-as service account. Set one before publish or test. Tata kelola adalah setelan Aktifkan tata kelola yang dijelaskan di Mengedit wilayah. Untuk wilayah tanpa tata kelola, sistem tidak menolak eksekusi ini mulai 15 Oktober 2026. Namun, berikut ini direncanakan akan gagal dalam rilis mendatang:
  • Tugas tanpa identitas, seperti tugas Konektor, Panggil Endpoint REST, atau Cloud Run Functions.
  • Eksekusi asinkron, dengan error berikut: Integration NAME needs a run-as service account to run asynchronously via trigger TRIGGER_ID.
Menetapkan akun layanan run-as
Tugas Integrasi Panggilan tidak dapat memulai sub-integrasinya Tugas Integrasi Panggilan integrasi panggilan gagal karena salah satu alasan berikut:
  • Sub-integrasi dipanggil secara asinkron dan tidak memiliki akun layanan run-as, meskipun integrasi panggilan memilikinya: Integration NAME needs a run-as service account to run asynchronously via trigger TRIGGER_ID.
  • Siapa pun yang memulai integrasi panggilan, atau akun layanan jalankan sebagai integrasi panggilan, tidak dapat bertindak sebagai akun layanan jalankan sebagai sub-integrasi: PRINCIPAL needs roles/iam.serviceAccountUser on SERVICE_ACCOUNT (or its project) to run this integration.
Tetapkan akun layanan run-as di sub-integrasi, atau panggil secara sinkron. Kemudian berikan Service Account User di akun tersebut.
Seseorang memublikasikan atau menguji integrasi yang menggunakan profil autentikasi yang akun layanannya tidak dapat ia gunakan, atau run mencapai tugas yang menggunakan profil tersebut Publikasi atau pengujian gagal, atau tugas gagal, dengan error berikut: PRINCIPAL needs roles/iam.serviceAccountUser on SERVICE_ACCOUNT (or its project) to use auth config "AUTH_PROFILE_NAME". Apakah sisa proses berjalan akan dilanjutkan bergantung pada cara tugas menangani error. Berikan Service Account User di akun yang namanya tercantum dalam profil
Seseorang membuat atau mengedit profil autentikasi Akun layanan atau Token OIDC tanpa izin untuk bertindak sebagai akun layanannya Penyimpanan profil gagal dengan error berikut: PRINCIPAL needs roles/iam.serviceAccountUser on SERVICE_ACCOUNT (or its project) to save this auth config. Berikan Service Account User di akun yang disebutkan dalam profil kepada siapa pun yang mengelolanya
Pemberi persetujuan tidak dapat bertindak sebagai akun layanan run-as Persetujuan atau kelanjutan eksekusi gagal dengan error berikut: PRINCIPAL needs roles/iam.serviceAccountUser on SERVICE_ACCOUNT (or its project) to resume this execution. Eksekusi tetap dijeda hingga berakhir, sehingga persetujuan tampaknya berhenti berfungsi Berikan Pengguna Akun Layanan kepada semua orang yang mungkin menyetujui
Seseorang memublikasikan atau menguji integrasi tanpa izin untuk bertindak sebagai akun layanan run-as-nya PRINCIPAL needs roles/iam.serviceAccountUser on SERVICE_ACCOUNT (or its project) to publish or test this integration. Apa pun yang sudah dipublikasikan akan terus berjalan. Jika otomatisasi memublikasikan untuk Anda, hal ini akan muncul di pipeline deployment, bukan di konsol Memberikan Service Account User kepada penayang, penguji, dan otomatisasi
Tugas berjalan sebagai orang yang memicunya, dan orang tersebut tidak dapat mengakses resource. Dalam integrasi baru, dan mulai 15 Oktober 2026, dalam pengujian integrasi apa pun, JavaScript, Skrip Transformer Data, dan Pemetaan Data dijalankan dengan cara ini Run dimulai secara normal, lalu satu tugas gagal memberi nama resource, meskipun tidak ada yang berubah dalam integrasi Beri orang tersebut akses ke resource, atau pindahkan integrasi ke akun layanan jalankan sebagai yang sudah memilikinya — biasanya jawaban yang lebih baik, karena menghentikan akses integrasi yang bervariasi dengan siapa pun yang menjalankannya

Untuk mengetahui daftar lengkap kode error Application Integration, lihat Kode error.

Error peran IAM

Selain akun layanan run-as, Application Integration memverifikasi izin IAM pengguna Anda untuk setiap tindakan. Jika Anda mengalami error PERMISSION_DENIED saat berinteraksi dengan integrasi, atau jika log eksekusi gagal dimuat, pastikan Anda memiliki peran yang memberikan izin yang diperlukan:

Untuk melakukannya Anda memerlukan salah satu peran ini
Melihat dan membuka integrasi roles/integrations.integrationViewer
Melihat log dan detail eksekusi roles/integrations.integrationViewer atau roles/integrations.integrationInvoker
Menjalankan integrasi roles/integrations.integrationInvoker atau roles/integrations.integrationEditor
Membuat dan mengedit integrasi roles/integrations.integrationEditor
Memublikasikan integrasi roles/integrations.integrationDeployer atau roles/integrations.integrationEditor
Menyetujui atau melanjutkan eksekusi yang ditangguhkan roles/integrations.suspensionResolver atau roles/integrations.integrationAdmin
Akses penuh ke semua integrasi roles/integrations.integrationAdmin

Untuk memberikan peran, jalankan perintah berikut:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='user:PRINCIPAL' \
    --role='ROLE'

Untuk informasi selengkapnya, lihat referensi berikut:

Pemberian izin tidak memperbaiki error

  • Hibah diberikan untuk project yang salah. Permintaan harus dibuat di project yang memiliki akun layanan, yang tidak harus merupakan project yang memiliki integrasi.
  • Perubahan belum berlaku. Tunggu beberapa menit. Keputusan otorisasi di-cache sebentar, di samping penundaan propagasi IAM normal.
  • Ada akun layanan kedua yang terlibat. Akun layanan jalankan sebagai Anda, akun layanan setiap profil autentikasi, dan akun layanan jalankan sebagai setiap sub-integrasi terpisah, dan masing-masing memerlukan pemberiannya sendiri.
  • Pemberian akses diberikan ke akun utama yang salah. Untuk pemicu peristiwa Cloud Scheduler, Cloud Pub/Sub, Eventarc, atau Integration Connectors, prinsipal yang memerlukan pemberian adalah akun layanan pemicu, bukan Anda. Lihat Siapa yang memerlukan peran Pengguna Akun Layanan.
  • Blokir adalah peran Anda sendiri, bukan akun layanan. Pengguna Akun Layanan adalah tentang apakah Anda dapat bertindak sebagai akun layanan run-as; peran IAM terpisah mengatur apakah Anda diizinkan untuk melakukan tindakan. Lihat Error peran IAM.