AWS Step Functions で IAM を使用する方法 - AWS Step Functions

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

AWS Step Functions で IAM を使用する方法

AWS Step Functions はコードの実行と AWS リソースへのアクセス (AWS Lambda 関数の呼び出しなど) が可能です。セキュリティを維持するために、IAM ロールを使用してこれらのリソースへの Step Functions アクセスを許可する必要があります。

このガイドの Step Functions チュートリアル によって、ステートマシンを作成した AWS リージョンで有効なIAM ロールの自動生成の利用を有効化できます。ただし、ステートマシン独自の IAM ロールを作成できます。

ステートマシンで使用する IAM ポリシーを作成するときは、そのポリシーにステートマシンが引き受けるタスクのアクセス許可を含める必要があります。例として、AWS既存の管理ポリシーを使用することもできます。詳細については、IAM ユーザーガイドのIAM ポリシーの作成」を参照してください。

ステートマシン独自の IAM ロールを作成するには、このセクションのステップに従います。

この例では、Lambda 関数を呼び出す許可を持つIAM ロールを作成します。

Step Functions のロールの作成

  1. IAM コンソールにサインインし、[Roles] (ロール)、[Create role] (ロール作成))の順に選択します。

  2. [Select type of trusted entity] (信頼されたエンティティ) ページの [AWS service] ( のサービス) で、リストから [Step Functions] を選択し、[Next: Permissions] (次へ: 許可) を選択します。

  3. [Attached permissions policy] (添付の許可ポリシー) ページで、[Next: Review] (次: レビュー) を選択します。

  4. [Review] (確認) ページで、StepFunctionsLambdaRole[Role name] (ロール名) に入力し、[Create role] (ロールの作成) を選択します。

    ロールのリストで、IAM ロールが表示されます。

IAM 許可とポリシーの詳細については、IAM ユーザーガイドアクセス管理を参照してください。

サービス間での混乱した代理問題の防止

混乱した代理人とは、別のエンティティから強制的にアクションを実行させられるエンティティ(サービスまたはアカウント)です。ではAWS、サービス間でのなりすましが、1 つのサービス (呼び出し対象サービス) が別のサービス (呼び出し対象サービス) を呼び出すときに発生する可能性があります。呼び出し元サービスは、本来ならアクセスすることが許可されるべきではない方法でその許可を使用して、別の顧客のリソースに対する処理を実行するように操作される場合があります。この種のなりすましは、アカウント間でもサービス間でも発生する可能性があります。

「混乱した代理」問題を防ぐために、AWSお客様のすべてのサービスのデータを保護するのに役立つツールを提供しています。このセクションでは、特定のサービス間の混乱防止に焦点を当てていますAWS Step Functions。ただし、このトピックの詳細については、IAM ユーザーガイドの「混乱した代理人の問題」セクションを参照してください

IAM が Step Functions に与えるリソースへのアクセス権限を制限するには、aws:SourceArnaws:SourceAccountリソースポリシーでおよびグローバル条件コンテキストキーを使用することをお勧めします。これらのグローバル条件コンテキストキーの両方を使用し、aws:SourceArnAWS値にアカウント ID が含まれている場合、AWS同じポリシーステートメントで使用されるときは、aws:SourceArnAWS値と値のアカウントが同じアカウント ID を使用する必要があります。aws:SourceAccount

注記

混乱した代理問題から保護するための最も効果的な方法は、リソースの完全な ARN を指定しながら、aws:SourceArn グローバル条件コンテキストキーを使用することです。完全な ARN が不明な場合や、複数のリソースを指定する場合には、ARN の未知部分にワイルドカード (*) が付いた wildards () を使用します。aws:SourceArn例えば、arn:aws:states:*:111122223333:*

以下は、信頼できるポリシーの例でaws:SourceArnおよびを Step Functionsaws:SourceAccount と組み合わせて使用して、代理人の混乱を防ぐ方法を示しています。

{ "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 FunctionsTask は状態の他のサービスを直接管理します。制御する必要があるサービスの API アクションに Step Functions からのアクセス許可がでるように、インラインポリシーを添付します。

  1. IAM コンソール を開いて [Roles] (ロール) を選択し、Step Functions ロールを検索したら、そのロールを選択します。

  2. [Add inline policy] (インラインポリシーの追加) を選択します。

  3. ロールのポリシーを作成するには、[Visual editor] (ビジュアルエディタ) または [JSON] タブを使用します。

‭AWS Step Functions‬ で他の ‭AWS のサービスを制御する方法の詳細については、‭他のサービスで AWS Step Functions を使用する を参照してください。

注記

Step Functions コンソールで作成された IAM ポリシーの例については、統合サービスの IAM ポリシー を参照してください。