為狀態機建立 IAM 角色 - AWS Step Functions

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

為狀態機建立 IAM 角色

AWS Step Functions 可以執行代碼和訪問 AWS 資源(例如調用 AWS Lambda 函數)。為了維護安全性,您必須使用 IAM 角色將這些資源的存取授予 Step Functions。

本指南Step Functions 的教學課程中的可讓您利用自動產生的 IAM 角色,這些角色對您建立狀態機的 AWS 區域有效。不過,您可以為狀態機器建立自己的 IAM 角色。

建立要使用的狀態機器的 IAM 政策時,該政策應包含您希望狀態機器承擔的許可。您可以使用現有的 AWS 受管理原則做為範例,也可以從頭開始建立符合您特定需求的自訂原則。如需詳細資訊,請參閱 IAM 使用者指南中的建立 IAM 政策

若要為狀態機建立自己的 IAM 角色,請遵循本節中的步驟。

在此範例中,您建立具有叫用 Lambda 函數之權限的 IAM 角色。

建立 Step Functions 的角色

  1. 登入 IAM 主控台,然後選擇 [角色]、[建立角]。

  2. 在 [選取信任的實體] 頁面的 [AWS 服務] 下,從清單中選取 [Step Functions],然後選擇 [下一步:權限]。

  3. Attached permissions policy (連結許可政策) 頁面上,選擇 Next: Review (下一步:檢閱)

  4. 在 [複查] 頁面上,輸入StepFunctionsLambdaRole角色名稱,然後選擇 [建立角色]。

    IAM 角色會顯示在角色清單中。

如需 IAM 許可和政策的詳細資訊,請參閱 IAM 使用者指南中的存取管理

防止跨服務混淆副問題

混淆代理人問題屬於安全性議題,其中沒有執行動作許可的實體可以強制具有更多許可的實體執行該動作。在中 AWS,跨服務模擬可能會導致混淆的副問題。在某個服務 (呼叫服務) 呼叫另一個服務 (被呼叫服務) 時,可能會發生跨服務模擬。這種類型的冒充可能發生跨帳戶和跨服務。可以操縱呼叫服務來使用其許可,以其不應有存取許可的方式對其他客戶的資源採取動作。

為了防止代表混淆, AWS 提供了一些工具,協助您透過已授予您帳戶中資源存取權的服務主體來保護所有服務的資料。本節著重於特定的跨服務混淆副預防 AWS Step Functions;不過,您可以在 IAM 使用者指南混淆的副問題一節中深入了解此主題。

我們建議在資源策略中使用aws:SourceArnaws:SourceAccount全域條件內容索引鍵,以限制授Step Functions予其他服務存取資源的權限。如果您想要僅允許一個資源與跨服務存取相關聯,則請使用 aws:SourceArn。如果您想要允許該帳戶中的任何資源與跨服務使用相關聯,請使用 aws:SourceAccount

防範混淆代理人問題的最有效方法是使用 aws:SourceArn 全域條件內容索引鍵,以及資源的完整 ARN。如果您不知道資源的完整 ARN,或者您要指定多個資源,請針對 ARN 的未知部分使用萬用字元 (*) 的aws:SourceArn全域內容條件索引鍵。例如 arn:aws:states:*:111122223333:*

以下是受信任原則的範例,顯示如何使aws:SourceAccountaws:SourceArn Step Functions,以防止混淆的副問題。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":[ "states.amazonaws.com" ] }, "Action":"sts:AssumeRole", "Condition":{ "ArnLike":{ "aws:SourceArn":"arn:aws:states:us-east-1:111122223333:stateMachine:*" }, "StringEquals":{ "aws:SourceAccount":"111122223333" } } } ] }

連接內嵌政策

Step Functions 可以直接在Task狀態下控制其他服務。附加內嵌政策以允許 Step Functions 存取您需要控制之服務的 API 動作。

  1. 開啟 IAM 主控台、選擇 [角色]、搜尋您的 Step Functions 角色,然後選取該角色。

  2. 選取 Add inline policy (新增內嵌政策)

  3. 使用 Visual editor (視覺編輯工具)JSON 標籤來建立角色的政策。

如需如何 AWS Step Functions 控制其他 AWS 服務的詳細資訊,請參閱AWS Step Functions 搭配其他服務使用

注意

如需由 Step Functions 主控台建立的 IAM 政策範例,請參閱整合式服務的 IAM 政策