Step Functions で Workflow Studio を使用して実行ロールを設定する
Workflow Studio を使用して、ワークフローの実行ロールを設定できます。すべての Step Functions ステートマシンには、AWS のサービス やリソースに対してアクションを実行したり、HTTPS API を呼び出したりするアクセス許可をステートマシンに付与する AWS Identity and Access Management (IAM) ロールが必要です。このロールは、実行ロールと呼ばれます。
この実行ロールには、ステートマシンが AWS Lambda 関数を呼び出したり、AWS Batch ジョブを実行したり、Stripe API を呼び出したりすることを許可する IAM ポリシーなど、アクションごとのポリシーが含まれている必要があります。Step Functions では、次の場合に実行ロールを指定する必要があります。
-
CreateStateMachine API を使用して、コンソール、AWS SDK、または AWS CLI でステートマシンを作成する場合。
-
TestState API を使用して、コンソール、AWS SDK、または AWS CLI でステートをテストする場合。
トピック
自動生成されたロールについて
Step Functions コンソールでステートマシンを作成すると、Workflow Studio は必要な IAM ポリシーを含む実行ロールを自動的に作成できます。Workflow Studio はステートマシンの定義を分析し、ワークフローの実行に必要な最小特権でポリシーを生成します。
Workflow Studio では以下の IAM ポリシーを生成できます。
-
HTTPS API を呼び出す HTTP タスク。
-
最適化された統合 を使用して他の AWS のサービス を呼び出す、Lambda Invoke、DynamoDB GetItem、または AWS Glue StartJobRun などのタスクステート。
-
ネストされたワークフローを実行するタスクステート。
-
子ワークフロー実行の開始、Amazon S3 バケットのリスト、S3 オブジェクトの読み取りと記述などのポリシーを含む、分散マップ状態。
-
X-Ray トレース。Workflow Studio で自動生成されるすべてのロールには、X-Ray にトレースを送信するアクセス許可をステートマシンに付与するポリシーが含まれています。
-
ステートマシンでロギングが有効になっている場合の CloudWatch Logs を使用した Step Functions の実行履歴のログ記録。
Workflow Studio は、AWS SDK 統合を使用して他の AWS のサービス を呼び出すタスクステートの IAM ポリシーを生成できません。
ロールを自動生成する
-
Step Functions コンソール
を開き、メニューから [ステートマシン] を選択したら、[ステートマシンの作成] を選択します。 既存のステートマシンを更新することもできます。ステートマシンを更新する場合は、ステップ 4 を参照してください。
-
[空白から作成] を選択します。
-
ステートマシンに名前を付け、[続行] を選択して Workflow Studio でステートマシンを編集します。
-
[設定] タブを選択します。
-
[アクセス許可] セクションまでスクロールして、次の操作を行います。
-
[実行ロール] では、デフォルトの [新しいロールを作成] を選択したままにしてください。
Workflow Studio は、ステートマシン定義内の有効なステートごとに、必要なすべての IAM ポリシーを自動的に生成します。[完全なアクセス許可で実行ロールが作成されます] というメッセージを含むバナーが表示されます。
ヒント
Workflow Studio がステートマシンに対して自動的に生成するアクセス許可を確認するには、[自動生成されたアクセス許可をレビューする] を選択します。
注記
Step Functions が作成した IAM ロールを削除すると、Step Functions を後で再作成することはできません。同様に、ロールを変更すると (例えば、IAM ポリシーのプリンシパルから Step Functions を削除するなど)、後で Step Functions でそれを元の設定に復元することはできません。
Workflow Studio で必要な IAM ポリシーをすべて生成できない場合、[特定のアクションのアクセス許可は自動生成できません] というメッセージを含むバナーが表示されます。IAM ロールは部分的なアクセス許可のみで作成されます。不足しているアクセス許可を追加する方法については、「ロール生成に関する問題を解決する」を参照してください。
-
ステートマシンを作成する場合は [作成] を選択します。問題がなければ、[保存] を選択します。
-
表示されるダイアログボックスで、[確認] を選択します。
Workflow Studio はステートマシンを保存し、新しい実行ロールを作成します。
-
ロール生成に関する問題を解決する
以下の場合、Workflow Studio は必要なすべてのアクセス許可を含む実行ロールを自動的に生成できません。
-
ステートマシンにエラーがある。Workflow Studio の検証エラーをすべて解決してください。また、保存中に発生したサーバー側のエラーには必ず対処してください。
-
ステートマシンに AWS SDK 統合を使用するタスクが含まれている。この場合、Workflow Studio は IAM ポリシーを自動生成できません。Workflow Studio には、[特定のアクションのアクセス許可は自動生成できません] というメッセージを含むバナーが表示されます。IAM ロールは部分的なアクセス許可のみで作成されます。[自動生成アクセス許可の確認] テーブルで、[ステータス] の内容を選択すると、実行ロールにないポリシーの詳細が表示されます。Workflow Studio は引き続き実行ロールを生成できますが、このロールにはすべてのアクションの IAM ポリシーが含まれるわけではありません。独自のポリシーを作成し、生成後にロールに追加するには、[ドキュメントリンク] の下のリンクを参照してください。これらのリンクは、ステートマシンを保存した後でも使用できます。
Workflow Studio で HTTP タスクをテストするためのロール
HTTP Task ステートのテストには、実行ロールが必要です。十分なアクセス許可を持つロールがない場合は、以下のオプションのいずれかを使用してロールを作成してください。
-
Workflow Studio でロールを自動生成する (推奨) — これは安全なオプションです。[ステートをテスト] ダイアログボックスを閉じて、ロールを自動生成する の指示に従います。そのためには、まずステートマシンを作成または更新してから、Workflow Studio に戻ってステートをテストする必要があります。
-
管理者アクセス権を持つロールを使用する — AWS 内のすべてのサービスとリソースへの完全なアクセスを持つロールを作成するアクセス許可がある場合は、そのロールを使用してワークフロー内のあらゆるタイプのステートをテストできます。これを行うには、IAM コンソール https://console.aws.amazon.com/iam/
で Step Functions サービスロールを作成し、AdministratorAccess ポリシーをそのサービスロールに追加します。
Workflow Studio で最適化されたサービス統合をテストするためのロール
最適化サービス統合を呼び出す Task ステートには、実行ロールが必要です。十分なアクセス許可を持つロールがない場合は、以下のオプションのいずれかを使用してロールを作成してください。
-
Workflow Studio でロールを自動生成する (推奨) — これは安全なオプションです。[ステートをテスト] ダイアログボックスを閉じて、ロールを自動生成する の指示に従います。そのためには、まずステートマシンを作成または更新してから、Workflow Studio に戻ってステートをテストする必要があります。
-
管理者アクセス権を持つロールを使用する — AWS 内のすべてのサービスとリソースへの完全なアクセスを持つロールを作成するアクセス許可がある場合は、そのロールを使用してワークフロー内のあらゆるタイプのステートをテストできます。これを行うには、IAM コンソール https://console.aws.amazon.com/iam/
で Step Functions サービスロールを作成し、AdministratorAccess ポリシーをそのサービスロールに追加します。
Workflow Studio で AWS SDK サービス統合をテストするためのロール
AWSSDK 統合を呼び出す Task ステートにも、実行ロールが必要です。十分なアクセス許可を持つロールがない場合は、以下のオプションのいずれかを使用してロールを作成してください。
-
Workflow Studio でロールを自動生成する (推奨) — これは安全なオプションです。[ステートをテスト] ダイアログボックスを閉じて、ロールを自動生成する の指示に従います。そのためには、まずステートマシンを作成または更新してから、Workflow Studio に戻ってステートをテストする必要があります。以下の操作を実行します。
-
[ステートをテスト] ダイアログボックスを閉じます。
-
[設定] タブを選択し、設定モードを表示します。
-
[アクセス許可] セクションまで下にスクロールします。
-
Workflow Studio には、[特定のアクションのアクセス許可は自動生成できません] というメッセージを含むバナーが表示されます。IAM ロールは部分的なアクセス許可のみで作成されます。[自動生成されたアクセス許可を確認] を選択します。
-
[自動生成されたアクセス許可を確認] テーブルには、テストするタスクステートに対応するアクションを示す行が表示されます。カスタムロールに独自の IAM ポリシーを記述するには、[ドキュメントリンク] の下のリンクを参照してください。
-
-
管理者アクセス権を持つロールを使用する — AWS 内のすべてのサービスとリソースへの完全なアクセスを持つロールを作成するアクセス許可がある場合は、そのロールを使用してワークフロー内のあらゆるタイプのステートをテストできます。これを行うには、IAM コンソール https://console.aws.amazon.com/iam/
で Step Functions サービスロールを作成し、AdministratorAccess ポリシーをそのサービスロールに追加します。
Workflow Studio でフローステートをテストするためのロール
Workflow Studio でフローステートをテストするには実行ロールが必要です。フローステートは、Choice ワークフローの状態、Parallel ワークフローの状態、Map 状態のワークフロー、Pass ワークフロー状態、Wait ワークフロー状態、Succeed ワークフロー状態、または ワークフロー状態に失敗する などの実行フローを指示する状態です。TestState API は Map ステートや Parallel ステートでは機能しません。次のいずれかのオプションを使用してフロー状態をテストするためのロールを作成します。
-
AWS アカウント の任意のロールを使用 (推奨) — Flow ステートでは AWS アクションやリソースを呼び出さないため、特定の IAM ポリシーは必要ありません。そのため、AWS アカウント ではどの IAM ロールでも使用できます。
-
[ステートをテスト] ダイアログボックスで、[実行ロール] ドロップダウンリストから任意のロールを選択します。
-
ドロップダウンリストにロールが表示されない場合は、以下の作業を行います。
-
IAM コンソール https://console.aws.amazon.com/iam/
で [ロール] を選択します。 -
リストからロールを選択し、ロールの詳細ページからその ARN をコピーします。この ARN は [ステートをテスト] ダイアログボックスに入力する必要があります。
-
[ステートをテスト] ダイアログボックスで、[実行ロール] ドロップダウンリストから [ロール ARN を入力] を選択します。
-
ARN を [ロール ARN] に貼り付けます。
-
-
-
管理者アクセス権を持つロールを使用する — AWS 内のすべてのサービスとリソースへの完全なアクセスを持つロールを作成するアクセス許可がある場合は、そのロールを使用してワークフロー内のあらゆるタイプのステートをテストできます。これを行うには、IAM コンソール https://console.aws.amazon.com/iam/
で Step Functions サービスロールを作成し、AdministratorAccess ポリシーをそのサービスロールに追加します。