排解授權錯誤

本頁是「為即將推出的授權異動做好準備」的一部分。說明您可能會看到的錯誤和修正方式。

遭拒的動作有兩種原因,值得區分:

這兩項檢查都會套用,因此修正其中一項不會修正另一項。

以服務帳戶身分執行時發生錯誤

部分檢查仍在逐步推出,因此您可能還看不到所有錯誤。在訊息中,PRINCIPAL 是經過檢查的帳戶。如果無法命名帳戶,系統會顯示「The caller」。

情境 頁面上會顯示的資訊 建議行動
使用者、自動化程序或觸發條件啟動整合,但無法做為整合的「以這個服務帳戶執行」服務帳戶 執行作業遭拒,並顯示下列錯誤: PRINCIPAL needs roles/iam.serviceAccountUser on SERVICE_ACCOUNT (or its project) to run this integration.
  • API 呼叫會傳回錯誤,且執行記錄中不會顯示任何內容。
  • Cloud Pub/Sub、Eventarc 或 Integration Connectors 事件觸發程序會在執行記錄中記錄執行失敗,且不會再次傳送事件。
  • Cloud Scheduler 工作回報 PERMISSION_DENIED 錯誤。
授予服務帳戶使用者給啟動該服務的人員。如果是觸發條件,這是指觸發條件的服務帳戶。
如果是在 2026 年 10 月 15 日當天或之後建立的整合,且觸發條件不是 API 或私人,則不會有「以服務帳戶身分執行」的選項。 發布及測試失敗,並顯示下列錯誤: Set a run-as service account. These triggers run with no caller: TRIGGERS. Required for integrations created on or after October 15, 2026 (UTC). 設定 以服務帳戶身分執行
如果沒有使用者憑證,執行時就不會有「以服務帳戶身分執行」的選項。 如果已為區域啟用整合項目控管功能,無論整合項目的建立日期為何,發布及測試都會失敗,並顯示下列錯誤訊息: Your project requires a run-as service account. Set one before publish or test. 控管功能是指「啟用控管功能」設定,詳情請參閱「編輯區域」。 對於沒有管理機制的區域,系統不會從 2026 年 10 月 15 日起拒絕這些執行作業。不過,下列項目預計會在日後推出的版本中失敗:
  • 沒有身分的任務,例如連接器、呼叫 REST 端點或 Cloud Run 函式任務。
  • 非同步執行,發生下列錯誤: Integration NAME needs a run-as service account to run asynchronously via trigger TRIGGER_ID.
設定 以服務帳戶身分執行
通話整合工作無法啟動子整合 通話整合的「通話整合」工作失敗,可能原因如下:
  • 子整合項目會以非同步方式呼叫,且沒有以服務帳戶身分執行的權限,即使呼叫整合項目有這類帳戶也一樣:Integration NAME needs a run-as service account to run asynchronously via trigger TRIGGER_ID.
  • 發起通話整合服務的人員,或通話整合服務的「以這個服務帳戶身分執行」服務帳戶,都無法擔任子整合服務的「以這個服務帳戶身分執行」服務帳戶: PRINCIPAL needs roles/iam.serviceAccountUser on SERVICE_ACCOUNT (or its project) to run this integration.
在子整合中設定以服務帳戶身分執行的帳戶,或同步呼叫該帳戶。然後對該服務帳戶授予「服務帳戶使用者」角色。
使用者發布或測試整合項目,但該項目使用的驗證設定檔服務帳戶並非由他扮演,或是執行作業到達使用該設定檔的任務 發布或測試失敗,或工作失敗,並出現下列錯誤: PRINCIPAL needs roles/iam.serviceAccountUser on SERVICE_ACCOUNT (or its project) to use auth config "AUTH_PROFILE_NAME". 執行作業的其餘部分是否繼續,取決於工作如何處理錯誤。 在設定檔中指定的帳戶上授予服務帳戶使用者權限
使用者建立或編輯服務帳戶或 OIDC 權杖驗證設定檔,但沒有以該服務帳戶身分執行的權限 儲存設定檔失敗,並顯示下列錯誤訊息: PRINCIPAL needs roles/iam.serviceAccountUser on SERVICE_ACCOUNT (or its project) to save this auth config. 在設定檔中指定的帳戶上,授予管理員「服務帳戶使用者」權限
核准者無法做為「以這個服務帳戶身分執行」服務帳戶 核准或繼續執行作業時,會出現下列錯誤: PRINCIPAL needs roles/iam.serviceAccountUser on SERVICE_ACCOUNT (or its project) to resume this execution. 作業會保持暫停狀態,直到過期為止,因此核准作業似乎已停止運作 將「服務帳戶使用者」授予所有可能核准的人員
有人發布或測試整合項目,但無權以整合項目的執行身分服務帳戶身分執行操作 PRINCIPAL needs roles/iam.serviceAccountUser on SERVICE_ACCOUNT (or its project) to publish or test this integration.已發布的內容會繼續放送。如果自動化程序為您發布,這項資訊會顯示在部署管道中,而不是控制台中 將「服務帳戶使用者」角色授予發布者、測試人員和自動化程序
工作會以觸發者的身分執行,而該使用者無法存取資源。在新整合中,以及自 2026 年 10 月 15 日起,在任何整合的測試中,JavaScript、資料轉換器指令碼和資料對應工作都會以這種方式執行 執行作業一開始正常,但隨後有一項工作失敗,並命名資源,即使整合項目沒有任何變更也一樣 授予這些人資源存取權,或將整合項目移至已具備存取權的「以服務帳戶身分執行」帳戶 (通常是較好的做法,因為這樣一來,整合項目的存取權就不會因執行者而異)

如需完整的 Application Integration 錯誤代碼清單,請參閱「錯誤代碼」。

IAM 角色錯誤

除了以服務帳戶身分執行外,Application Integration 也會驗證每個動作的使用者 IAM 權限。與整合服務互動時,如果遇到 PERMISSION_DENIED 錯誤,或是無法載入執行記錄,請確認您具備授予必要權限的角色:

如要這麼做 您需要具備下列任一角色
查看及開啟整合項目 roles/integrations.integrationViewer
查看執行記錄和詳細資料 roles/integrations.integrationViewer 或 roles/integrations.integrationInvoker
執行整合 roles/integrations.integrationInvoker 或 roles/integrations.integrationEditor
建立及編輯整合項目 roles/integrations.integrationEditor
發布整合項目 roles/integrations.integrationDeployer 或 roles/integrations.integrationEditor
核准或繼續執行已暫停的執行程序 roles/integrations.suspensionResolver 或 roles/integrations.integrationAdmin
具備所有整合項目的完整存取權 roles/integrations.integrationAdmin

如要授予角色,請執行下列指令:

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

如要瞭解詳情,請參考下列資源:

授予權限後錯誤仍未修正

  • 補助金撥給了錯誤的專案。這項要求必須在擁有服務帳戶的專案中提出,該專案不一定擁有整合功能。
  • 尚未生效。請稍候片刻。除了正常的 IAM 傳播延遲時間外,授權決策還會短暫快取。
  • 涉及第二個服務帳戶。您的「以服務帳戶身分執行」服務帳戶、每個驗證設定檔的服務帳戶,以及每個子整合的「以服務帳戶身分執行」服務帳戶都是獨立的,且都需要各自的授權。
  • 授權給錯誤的主體。如果是 Cloud Scheduler、Cloud Pub/Sub、Eventarc 或 Integration Connectors 事件觸發條件,需要授權的主體是觸發條件的服務帳戶,而不是您。請參閱「誰需要服務帳戶使用者」。
  • 這個方塊是您自己的角色,而非服務帳戶。「服務帳戶使用者」角色是關於您是否可以以執行身分服務帳戶的身分行事;您是否可以執行動作則由另一個 IAM 角色控管。請參閱「IAM 角色錯誤」。