排解授權錯誤
本頁面說明授權異動後可能發生的授權錯誤,以及解決方法。
動作遭拒通常有兩個原因:
- 執行身分服務帳戶權限:呼叫端缺少以服務帳戶身分執行的權限,或服務帳戶缺少必要的資源權限。請參閱「Run-as 服務帳戶錯誤」。
- 呼叫端 IAM 角色:呼叫端沒有執行動作所需的 IAM 角色。請參閱「IAM 角色錯誤」。
由於 Application Integration 會檢查這兩項需求,因此解決其中一項問題並不會自動解決另一項問題。
「執行身分」服務帳戶錯誤
由於部分授權檢查仍在推出階段,您可能不會立即遇到所有錯誤。在錯誤訊息中,PRINCIPAL 是系統評估的帳戶。如果無法判斷帳戶身分,訊息會顯示 The caller。
| 條件 | 錯誤或行為 | 解析度 |
|---|---|---|
| 主體 (使用者、自動化作業或觸發條件) 啟動整合,但缺少以整合執行身分服務帳戶身分運作的權限。 | 執行作業遭拒,並顯示下列錯誤:
PRINCIPAL needs roles/iam.serviceAccountUser on
SERVICE_ACCOUNT (or its project) to run this integration.
|
將服務帳戶使用者角色授予啟動整合的主體。如果是觸發條件,請將這個角色授予觸發條件的服務帳戶。 |
| 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 日起,系統不會拒絕未受管理的區域執行這些作業。不過,我們預計在日後推出的版本中,讓下列項目無法通過驗證:
|
設定執行身分服務帳戶。 |
| 「呼叫整合」工作無法啟動子整合。 | 呼叫整合的「呼叫整合」工作失敗,原因如下:
|
在子整合中設定執行身分服務帳戶,或將呼叫設為同步執行。然後授予子整合服務帳戶的「服務帳戶使用者」角色。 |
| 主體發布或測試使用驗證設定檔的整合,但沒有權限做為其服務帳戶,或執行作業達到使用該設定檔的工作。 | 發布或測試失敗,或工作失敗,並顯示下列錯誤: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.先前發布的版本會繼續執行。如果您使用自動化功能發布,這項錯誤會顯示在部署管道記錄中,而非 Google Cloud 控制台。 |
將服務帳戶使用者角色授予發布者、測試人員和自動化部署服務帳戶。 |
| 工作會使用觸發工作的委託人憑證執行,而該委託人缺少目標資源的存取權。在新的整合中,以及自 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 角色:查看完整的角色清單,以及各角色包含的特定權限。
- 如要瞭解 Application Integration 如何使用 IAM,請參閱「存取控管」。
排解無效授權問題
- 授權套用至錯誤的專案:授權必須在擁有服務帳戶的專案中進行,不一定是擁有整合的專案。
- 傳播延遲:除了標準 IAM 傳播延遲外,授權決策也會短暫快取。請稍候幾分鐘再重試。
- 涉及多個服務帳戶:系統會分別評估執行身分服務帳戶、各驗證設定檔的服務帳戶,以及各子整合項目的執行身分服務帳戶。每項權限都必須明確授予。
- 授權套用至錯誤的主體:如果是 Cloud Scheduler、Cloud Pub/Sub、Eventarc 或 Integration Connectors 事件觸發條件,需要授權的主體是觸發條件的服務帳戶,而非您的使用者帳戶。請參閱「誰需要服務帳戶使用者角色」。
- 因呼叫端角色而遭到封鎖:「服務帳戶使用者」角色會決定您是否能「以」執行身分服務帳戶的身分執行。不過,您是否可以執行整合動作本身,是由另一項 IAM 角色控管。請參閱「IAM 角色錯誤」。