當我嘗試執行 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 角色是否仍然存在
請完成下列步驟:
- 開啟 Step Functions 主控台。
- 在導覽窗格中,選擇 State machines (狀態機器)。
- 對於 Names (名稱),選擇狀態機器的名稱。
- 在 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 建立無伺服器工作流程