在 Step Functions 中為您的狀態機器建立 IAM 角色 - AWS Step Functions

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

在 Step Functions 中為您的狀態機器建立 IAM 角色

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

本指南學習步驟函數的教學課程中的 可讓您利用自動產生的 IAM 角色,這些角色適用於您建立狀態機器 AWS 的區域。不過,您可以為狀態機器建立自己的 IAM 角色。

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

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

在此範例中,您會建立具有叫用 Lambda 函數許可的 IAM 角色。

建立 Step Functions 的角色

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

  2. 選取受信任實體頁面AWS 的服務下,從清單中選擇步驟函數,然後選擇下一步:許可

  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,或如果您要指定多個資源,請將aws:SourceArn全域內容條件索引鍵與萬用字元 (*) 用於 ARN 的未知部分。例如:arn:aws:states:*:111122223333:*

以下是可信任政策的範例,示範如何使用 aws:SourceArnaws:SourceAccount 搭配 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 ,請參閱將 服務與 Step Functions 整合

注意

如需 Step Functions 主控台建立的 IAM 政策範例,請參閱 Step Functions 如何為整合服務產生 IAM 政策