統合サービスの IAM ポリシー - AWS Step Functions

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

統合サービスの IAM ポリシー

AWS Step Functions コンソールでステートマシンを作成すると、Step Functions はステートマシン定義で使用されるリソースに基づいて AWS Identity and Access Management (IAM) ポリシーを次のように作成します。

  • ステートマシンが Optimized インテグレーションのいずれかを使用している場合、Step Functions はステートマシンに必要な権限とロールを含むポリシーを作成します。(例外: MediaConvert インテグレーションでは権限を手動で設定する必要がありますの IAM ポリシー AWS Elemental MediaConvert。「」を参照してください)。

  • ステートマシンが AWS SDK インテグレーションのいずれかを使用している場合は、部分的な権限を持つ IAM ロールが作成されます。その後、IAM コンソールを使用して、欠落しているロールポリシーを追加できます。

以下は、ステートマシンの定義に基づき、Step Functions でポリシーが生成される様子を示す例です。[[resourceName]] などのサンプルコードの項目は、ステートマシンの定義に表示されている静的リソースに置き換えられています。複数の静的リソースがある場合は、IAM ロールの各エントリが存在します。

動的リソースと静的リソース

静的リソースは、ステートマシンのタスク状態で直接定義されます。タスク状態で直接呼び出すリソースに関する情報を含めると、Step Functions はそのリソースのみの IAM ロールを作成します。

動的リソースは状態入力で渡され、パスを使用してアクセスできるリソースです (パス を参照してください)。動的リソースをタスクに渡す場合、Step Functions は "Resource": "*" を指定する権限の高いポリシーを作成します。

[ジョブを実行] パターンを使用したタスクの追加許可

[ジョブを実行] パターン (.sync で終了するもの) を使用するタスクについては、接続されたサービスの API アクションからのレスポンスのモニタリングおよび受信に、追加許可が必要です。関連するポリシーには、[リクエストレスポンス] または [コールバックを待つ] パターンを使用するタスクよりも多くの許可が含まれます。同期タスクに関する情報は、サービス統合パターン を参照してください。

注記

Run a Job (.sync) パターンをサポートするサービス統合には、追加の権限を提供する必要があります。

Step Functions は、接続サービスでジョブが実行されたときのジョブのステータスをモニタリングするため、ポーリングとイベントという 2 つの方法を使用します。

ポーリングには、Describe または Get API アクション に対する許可 (ecs:DescribeTasks または glue:GetJobRun など) が必要です。これらの許可がロールに欠落している場合、Step Functions はジョブのステータスを判断できない場合があります。これは、Run a Job (.sync) EventBridge サービスの統合の中にはイベントをサポートしていないものや、ベストエフォート方式でのみイベントを送信するものがあるためです。

AWS サービスから Amazon EventBridge に送信されるイベントは、マネージドルールを使用して Step Functions に送られevents:PutTargets、、events:PutRule、の権限が必要ですevents:DescribeRule。これらの許可がロールに欠落している場合、Step Functions がジョブの完了を認識するまで遅延が発生する可能性があります。 EventBridge イベントについて詳しくは、「AWS サービスからのイベント」を参照してください。

注記

ポーリングとイベントの両方をサポートする[ジョブを実行] (.sync) タスクの場合、イベントを使用してタスクが正常に完了する場合があります。これは、ロールにポーリングに必要な許可がない場合でも発生します。この場合、ポーリング許可が正しくない、または欠落していることにすぐに気付かないことがあります。まれにイベントが Step Functions に配信されない場合や、Step Functions によって処理されない場合、実行がスタックする可能性があります。ポーリング権限が正しく設定されていることを確認するには、 EventBridge 以下の方法でイベントのない環境で実行を実行できます。

  • Step Functions にイベントを転送するマネージドルールをから削除します。 EventBridgeこのマネージドルールはアカウント内のすべてのステートマシンで共有されるため、他のステートマシンに思いがけない影響が出ないようにするため、このアクションを実行するのはテストアカウントまたは開発アカウントだけにしてください。削除する特定のマネージドルールは、ターゲットサービスのポリシーテンプレートで events:PutRule に使用する Resource フィールドを検査して特定できます。マネージドルールは、そのサービス統合を使用するステートマシンを次回作成または更新するときに再度作成されます。 EventBridge ルールの削除について詳しくは、「ルールを無効化または削除する」を参照してください。

  • Step Functions Local でテストします。これは、[ジョブを実行] (.sync) タスクを完了するために行われるイベントの使用をサポートしていません。Step Functions Local を使用するには、ステートマシンで使用する IAM ロールを引き受けます。[信頼関係] を編集する必要がある場合もあります。AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY、および AWS_SESSION_TOKEN 環境変数を、引き受けたロールの値に設定してから、java -jar StepFunctionsLocal.jar を使用する Step Functions Local を起動します。最後に、 AWS CLI --endpoint-urlとパラメーターを使用してステートマシンを作成し、実行を開始し、実行履歴を取得します。詳細については、「ステートマシンのローカルテスト」を参照してください。

[ジョブを実行] (.sync) パターンを使用するタスクが停止すると、Step Functions はベストエフォートでタスクをキャンセルしようとします。これには、CancelStopTerminate、または Delete API アクション (batch:TerminateJob または eks:DeleteCluster など) への許可が必要です。ロールにこれらの許可がない場合、Step Functions はタスクをキャンセルできず、タスクの実行中に追加料金が発生する可能性があります。タスク停止の詳細については、ジョブ実行を参照してください。

IAM ロールの作成に使用されるポリシーテンプレート

次のトピックでは、Step Functions で自分たち用に新しいロールの作成を選択する場合に使用するポリシーテンプレートなどについて説明します。

注記

これらのテンプレートを確認して、Step Functions が IAM ポリシーを作成する方法を理解してください。また、 AWS 他のサービスと連携する場合に Step Functions の IAM ポリシーを手動で作成する方法の例としても役立ちます。Step Functions サービス統合の詳細については、AWS Step Functions 他のサービスとの併用 を参照してください。