

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

# 在 Step Functions 中使用 Workflow Studio 設定執行角色
<a name="manage-state-machine-permissions"></a>

您可以使用 Workflow Studio 為您的工作流程設定執行角色。每個Step Functions狀態機器都需要一個 AWS Identity and Access Management (IAM) 角色，授予狀態機器對 AWS 服務 和 資源執行動作或呼叫 HTTPS APIs許可。此角色稱為*執行角色*。

執行角色必須包含每個動作IAM的政策，例如允許狀態機器叫用 AWS Lambda函數、執行AWS Batch任務或呼叫 Stripe API 的政策。 在下列情況下， Step Functions會要求您提供執行角色：
+ 您可以在主控台、 AWS SDKs AWS CLI 或使用 [CreateStateMachine](https://docs.aws.amazon.com/step-functions/latest/apireference/API_CreateStateMachine.html) API 建立狀態機器。
+ 您可以在主控台、 AWS SDKsAWS CLI或使用 [TestState](https://docs.aws.amazon.com/step-functions/latest/apireference/API_TestState.html) API [測試](test-state-isolation.md)狀態。

**Topics**
+ [關於自動產生的角色](#wfs-auto-gen-roles)
+ [自動產生角色](#auto-generating-roles)
+ [解決角色產生問題](#resolve-role-gen-problem)
+ [在 Workflow Studio 中測試 HTTP 任務的角色](#test-state-role-http)
+ [在 Workflow Studio 中測試最佳化服務整合的角色](#test-state-role-optimized)
+ [在 Workflow Studio 中測試 AWS SDK 服務整合的角色](#test-state-role-aws-sdk)
+ [在 Workflow Studio 中測試流程狀態的角色](#test-state-role-flow)

## 關於自動產生的角色
<a name="wfs-auto-gen-roles"></a>

當您在Step Functions主控台中建立狀態機器時，[Workflow Studio](workflow-studio.md) 可以自動為您建立包含必要IAM政策的執行角色。Workflow Studio 會分析您的狀態機器定義，並產生具有執行工作流程所需最低權限的政策。

Workflow Studio 可以為下列項目產生IAM政策：
+ 呼叫 HTTPS APIs [HTTP 任務](call-https-apis.md)。
+ 任務狀態 AWS 服務 會使用[最佳化整合](integrate-optimized.md)呼叫其他 ，例如 [Lambda Invoke](connect-lambda.md)、[DynamoDBGetItem](connect-batch.md) 或 [AWS Glue StartJobRun](connect-glue.md)。
+ 執行[巢狀工作流程](connect-stepfunctions.md)的任務狀態。
+ [分散式映射狀態](state-map-distributed.md)，包括啟動子工作流程執行、列出Amazon S3儲存貯體和讀取或寫入 S3 物件[的政策](iam-policies-eg-dist-map.md)。
+ [X-Ray](concepts-xray-tracing.md) 追蹤。在 Workflow Studio 中自動產生的每個角色都包含一個政策，該[政策](concepts-xray-tracing.md#xray-iam)會授予狀態機器將追蹤傳送至 的許可X-Ray。
+ [使用 CloudWatch Logs 在 Step Functions 中記錄執行歷史記錄](cw-logs.md) 在狀態機器上啟用記錄時。

Workflow Studio 無法為 AWS 服務 使用 [AWS SDK 整合](supported-services-awssdk.md)呼叫其他 的任務狀態產生IAM政策。

## 自動產生角色
<a name="auto-generating-roles"></a>

1. 開啟 [Step Functions 主控台](https://console.aws.amazon.com/states/home)，從功能表中選擇**狀態機器**，然後選擇**建立狀態機器**。

   您也可以更新現有的狀態機器。如果您要更新狀態機器，請參閱步驟 4。

1. 選擇**從空白建立**。

1. 為您的狀態機器命名，然後選擇**繼續**在 Workflow Studio 中編輯您的狀態機器。

1. 選擇 **Config** 索引標籤。

1. 向下捲動至**許可**區段，然後執行下列動作：

   1. 針對**執行角色**，請確定您保留**建立新角色**的預設選擇。

      Workflow Studio 會自動為狀態機器定義中的每個有效狀態產生所有必要IAM的政策。它會在 中顯示含有訊息的橫幅，**系統會建立具有完整許可的執行角色。**  
![\[Config 索引標籤的說明性螢幕擷取畫面，其中包含自動產生的許可預覽。\]](http://docs.aws.amazon.com/zh_tw/step-functions/latest/dg/images/wfs-full-permissions-role.png)
**提示**  
若要檢閱 Workflow Studio 自動為狀態機器產生的許可，請選擇**檢閱自動產生的許可**。
**注意**  
如果您刪除 Step Functions 建立的 IAM 角色，Step Functions 稍後無法重新建立該角色。同樣地，如果您修改角色 （例如，從 IAM 政策中的主體移除 Step Functions)，Step Functions 稍後無法還原其原始設定。

      如果 Workflow Studio 無法產生所有必要IAM的政策，則會顯示橫幅，其中包含**無法自動產生特定動作的許可訊息。只會建立具有部分許可IAM的角色。**如需如何新增缺少許可的資訊，請參閱 [解決角色產生問題](#resolve-role-gen-problem)。

   1. 如果您要**建立**狀態機器，請選擇建立。否則，請選擇 **Save (儲存)**。

   1. 在出現的對話方塊中選擇**確認**。

      Workflow Studio 會儲存您的狀態機器，並建立新的執行角色。

## 解決角色產生問題
<a name="resolve-role-gen-problem"></a>

在下列情況下，Workflow Studio 無法自動產生具有所有必要許可的執行角色：
+ 狀態機器中發生錯誤。請務必解決 Workflow Studio 中的所有驗證錯誤。此外，請確定您已解決儲存過程中遇到的任何伺服器端錯誤。
+ 您的狀態機器包含使用 AWS SDK 整合的任務。在這種情況下，Workflow Studio [無法自動產生](#auto-generating-roles)IAM政策。Workflow Studio 會顯示含有訊息的橫幅，**無法自動產生特定動作的許可。只會建立具有部分許可IAM的角色。**在**檢閱自動產生的許可**表中，選擇**狀態**中的內容，以取得有關執行角色遺失政策的詳細資訊。Workflow Studio 仍然可以產生執行角色，但此角色不會包含所有動作IAM的政策。請參閱**文件連結下方的連結**，以撰寫您自己的政策，並在產生後將其新增至角色。即使在您儲存狀態機器之後，仍可使用這些連結。

## 在 Workflow Studio 中測試 HTTP 任務的角色
<a name="test-state-role-http"></a>

[測試](call-https-apis.md#http-task-test) HTTP 任務狀態需要 執行角色。如果您沒有具有足夠許可的角色，請使用下列其中一個選項來建立角色：
+ **使用 Workflow Studio 自動產生角色 （建議）** – 這是安全選項。關閉**測試狀態**對話方塊，並遵循 中的指示[自動產生角色](#auto-generating-roles)。這需要您先建立或更新狀態機器，然後返回 Workflow Studio 以測試您的狀態。
+ **使用具有管理員存取權的角色** – 如果您有權建立具有 中所有服務和資源完整存取權的角色 AWS，您可以使用該角色在工作流程中測試任何類型的狀態。若要這樣做，您可以在IAM主控台 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 中建立Step Functions服務角色，並將 [AdministratorAccess 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html#jf_administrator)新增至該角色。

## 在 Workflow Studio 中測試最佳化服務整合的角色
<a name="test-state-role-optimized"></a>

呼叫[最佳化服務整合](integrate-optimized.md)的任務狀態需要 執行角色。如果您沒有具有足夠許可的角色，請使用下列其中一個選項來建立角色：
+ **使用 Workflow Studio 自動產生角色 （建議）** – 這是安全選項。關閉**測試狀態**對話方塊，並遵循 中的指示[自動產生角色](#auto-generating-roles)。這需要您先建立或更新狀態機器，然後返回 Workflow Studio 以測試您的狀態。
+ **使用具有管理員存取權的角色** - 如果您有權建立具有 中所有服務和資源完整存取權的角色 AWS，您可以使用該角色來測試工作流程中的任何類型的狀態。若要這樣做，您可以建立Step Functions服務角色，並將 [AdministratorAccess 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html#jf_administrator)新增至IAM主控台 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

## 在 Workflow Studio 中測試 AWS SDK 服務整合的角色
<a name="test-state-role-aws-sdk"></a>

呼叫 [AWS SDK 整合](supported-services-awssdk.md)的任務狀態需要 執行角色。如果您沒有具有足夠許可的角色，請使用下列其中一個選項來建立角色：
+ **使用 Workflow Studio 自動產生角色 （建議）** – 這是安全選項。關閉**測試狀態**對話方塊，並遵循 中的指示[自動產生角色](#auto-generating-roles)。這需要您先建立或更新狀態機器，然後返回 Workflow Studio 以測試您的狀態。請執行下列操作：

  1. 關閉**測試狀態**對話方塊

  1. 選擇 **Config** 索引標籤以檢視 Config 模式。

  1. 向下捲動至**許可**區段。

  1. Workflow Studio 會顯示含有訊息的橫幅，**無法自動產生特定動作的許可。只會建立具有部分許可IAM的角色。**選擇**檢閱自動產生的許可**。

  1. **檢閱自動產生的許可**表會顯示一列，顯示與您要測試的任務狀態對應的動作。請參閱 **文件連結下的連結**，將您自己的IAM政策寫入自訂角色。
+ **使用具有管理員存取權的角色** - 如果您有權建立具有 中所有服務和資源完整存取權的角色 AWS，您可以使用該角色來測試工作流程中任何類型的狀態。若要這樣做，您可以在IAM主控台 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 中建立Step Functions服務角色，並將 [AdministratorAccess 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html#jf_administrator)新增至該角色。

## 在 Workflow Studio 中測試流程狀態的角色
<a name="test-state-role-flow"></a>

您需要執行角色，才能在 Workflow Studio 中測試流程狀態。流程狀態是直接執行流程的狀態，例如 [選擇工作流程狀態](state-choice.md)、、[平行工作流程狀態](state-parallel.md)[映射工作流程狀態](state-map.md)、[傳遞工作流程狀態](state-pass.md)[等待工作流程狀態](state-wait.md)、[工作流程狀態成功](state-succeed.md)、 或 [失敗的工作流程狀態](state-fail.md)。[TestState](https://docs.aws.amazon.com/step-functions/latest/apireference/API_TestState.html) API 不適用於映射或平行狀態。使用下列其中一個選項來建立角色以測試流程狀態：
+ **在您的 AWS 帳戶 （建議） 中使用任何角色** – 流程狀態不需要任何特定IAM政策，因為它們不會呼叫 AWS 動作或資源。因此，您可以使用 中的任何IAM角色 AWS 帳戶。

  1. 在**測試狀態**對話方塊中，從**執行角色下拉式清單中選取任何角色**。

  1. 如果下拉式清單中沒有顯示任何角色，請執行下列動作：

     1. 在IAM主控台 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 中，選擇**角色**。

     1. 從清單中選擇角色，然後從角色詳細資訊頁面複製其 ARN。您將需要在**測試狀態**對話方塊中提供此 ARN。

     1. 在**測試狀態**對話方塊中，從**執行****角色下拉式清單中選取輸入角色 ARN**。

     1. 在**角色 ARN 中貼上 ARN**。
+ **使用具有管理員存取權的角色** – 如果您有權建立具有 中所有服務和資源完整存取權的角色 AWS，您可以使用該角色來測試工作流程中任何類型的狀態。若要這樣做，您可以建立Step Functions服務角色，並在IAM主控台 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 中新增 [AdministratorAccess 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html#jf_administrator)。