如何解決 AWS Step Functions 中的「未授權擔任提供的角色」錯誤?

1 分的閱讀內容
0

當我嘗試執行 AWS Step Functions 狀態機器時,我收到錯誤: 「全球服務主體 states.amazonaws.com 或區域服務主體均未得到授權以擔任所提供的角色。」

解決方法

確認您是否為狀態機器擔任的 IAM 角色設定所需的信任關係

在 AWS Identity and Access Management (IAM) 角色的信任政策中,下列其中一個端點必須列為信任實體:

  • AWS 區域端點:states.region.amazonaws.com
  • AWS 全球端點:states.amazonaws.com

使用 IAM 主控台更新 IAM 角色的信任政策,以便政策包括先前的其中一個端點。

注意: 呼叫 StartExecution API 動作時,Step Functions 會在 API 動作執行時期,使用與狀態機器相關聯的 IAM 角色。如果您在動作執行時期變更 IAM 角色,則 Step Functions 不會在 API 動作上使用 IAM 角色。

驗證您的狀態機器擔任的 IAM 角色是否仍然存在

請完成下列步驟:

  1. 開啟 Step Functions 主控台
  2. 在導覽窗格中,選擇 State machines (狀態機器)。
  3. 對於 Names (名稱),選擇狀態機器的名稱。
  4. Details (詳細資訊) 區段中,選擇 IAM role ARN (IAM 角色 ARN) 下方的連結。如果 IAM 角色存在,則該角色會在 IAM 主控台中開啟。如果 IAM 角色不存在,則 IAM 主控台會開啟顯示 No Entity Found (找不到實體) 的頁面。

如果您的狀態機器擔任的 IAM 角色不存在,則請建立包含所需許可的新 IAM 角色。然後,設定狀態機器來擔任新 IAM 角色。 
重要: 新的 IAM 角色必須具有與之前的 IAM 角色不同的名稱。

如需詳細資訊,請參閱 AWS Step Functions 如何與 IAM 搭配使用

相關資訊

使用 AWS Step Functions 和 AWS Lambda 建立無伺服器工作流程

AWS 官方
AWS 官方已更新 2 個月前