排解授權錯誤
本頁是「為即將推出的授權異動做好準備」的一部分。說明您可能會看到的錯誤和修正方式。
遭拒的動作有兩種原因,值得區分:
- 以服務帳戶身分執行 - 您無法以該帳戶身分執行操作,或該帳戶無法存取工作所需的資源。請參閱「以服務帳戶身分執行作業時發生錯誤」。
- 您自己的 IAM 角色:您完全無法執行這項操作。請參閱「IAM 角色錯誤」。
這兩項檢查都會套用,因此修正其中一項不會修正另一項。
以服務帳戶身分執行時發生錯誤
部分檢查仍在逐步推出,因此您可能還看不到所有錯誤。在訊息中,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.已發布的內容會繼續放送。如果自動化程序為您發布,這項資訊會顯示在部署管道中,而不是控制台中 |
將「服務帳戶使用者」角色授予發布者、測試人員和自動化程序 |
| 工作會以觸發者的身分執行,而該使用者無法存取資源。在新整合中,以及自 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 角色錯誤」。