翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Step Functions でのステートマシンの IAMロールの作成
AWS Step Functions はコードとアクセスを実行できます AWS リソース ( の呼び出しなど AWS Lambda 関数)。セキュリティを維持するには、 IAMロールを使用して Step Functions にこれらのリソースへのアクセスを許可する必要があります。
Step Functions を学習するためのチュートリアル このガイドの を使用すると、 で有効な自動生成されたIAMロールを利用できます。 AWS ステートマシンを作成するリージョン。ただし、ステートマシン用に独自のIAMロールを作成できます。
ステートマシンが使用する IAMポリシーを作成する場合、ポリシーにはステートマシンが引き受けるアクセス許可を含める必要があります。既存の AWS マネージドポリシーを例として使用することも、特定のニーズを満たすカスタムポリシーを最初から作成することもできます。詳細については、「 ユーザーガイド」のIAM「ポリシーの作成IAM」を参照してください。
ステートマシンに独自のIAMロールを作成するには、このセクションのステップに従います。
この例では、Lambda 関数を呼び出すアクセス許可を持つ IAMロールを作成します。
Step Functions のロールの作成
-
IAM コンソール
にサインインし、ロール 、ロール の作成 を選択します。 -
信頼されたエンティティの選択ページの AWS サービス で、リストから Step Functions を選択し、次へ: アクセス許可 を選択します。
-
[アタッチされた許可ポリシー] ページで、[次へ:確認] を選択します。
-
[確認] ページで、
StepFunctionsLambdaRole
を [ロール名] に入力し、[ロールの作成] を選択します。IAM ロールがロールのリストに表示されます。
アクセスIAM許可とポリシーの詳細については、「 ユーザーガイド」の「アクセス管理IAM」を参照してください。
サービス間の混乱した代理の防止
混乱した代理問題は、アクションを実行する許可を持たないエンティティが、より権限のあるエンティティにアクションの実行を強制できるセキュリティ上の問題です。In AWS、サービス間のなりすましは、混乱した代理問題を引き起こす可能性があります。サービス間でのなりすましは、1 つのサービス (呼び出し元サービス) が、別のサービス (呼び出し対象サービス) を呼び出すときに発生する場合もあります。この種のなりすましは、クロスアカウントおよびクロスサービスで発生するおそれがあります。呼び出し元サービスが操作され、それ自身のアクセス許可が利用されて、本来アクセス許可が付与されない形で、別のユーザーのリソースに働きかけることがあります。
混乱した代理を防ぐには、 AWS は、アカウント内のリソースへのアクセスが許可されているサービスプリンシパルを使用して、すべてのサービスのデータを保護するのに役立つツールを提供します。このセクションでは、 固有のサービス間の混乱した代理の防止に焦点を当てます。 AWS Step Functionsただし、このトピックの詳細については、「 IAMユーザーガイド」の「混乱した代理問題」セクションを参照してください。
リソースポリシーで aws:SourceArn
および aws:SourceAccount
グローバル条件コンテキストキーを使用して、Step Functions は、リソースにアクセスするための別のサービスを提供します。クロスサービスアクセスにリソースを 1 つだけ関連付けたい場合は、aws:SourceArn
を使用します。そのアカウント内のリソースをクロスサービスの使用に関連付けることを許可する場合は、aws:SourceAccount
を使用します。
混乱した代理問題から保護する最も効果的な方法は、リソースARNがいっぱいになった aws:SourceArn
グローバル条件コンテキストキーを使用することです。リソースARNの全体がわからない場合、または複数のリソースを指定する場合は、 の未知の部分にワイルドカード文字 (*
) を含むaws:SourceArn
グローバルコンテキスト条件キーを使用しますARN。例えば、arn:aws:states:*:111122223333:*
と指定します。
混乱した代理問題を防止するために、信頼できるポリシーの中で Step Functions と aws:SourceArn
および aws: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" } } } ] }
インラインポリシーをアタッチする
Task
状態の他のサービスを Step Functions で直接制御できます。インラインポリシーをアタッチして、Step Functions が制御する必要のあるサービスのAPIアクションにアクセスできるようにします。
-
IAM コンソール
を開き、ロール を選択し、Step Functions ロールを検索して、そのロールを選択します。 -
[インラインポリシーの追加] を選択します。
-
ビジュアルエディタまたは JSONタブを使用して、ロールのポリシーを作成します。
方法の詳細については、 AWS Step Functions は他の を制御できます AWS サービスについては、「」を参照してくださいサービスと Step Functions の統合。
注記
Step Functions コンソールで作成されたIAMポリシーの例については、「」を参照してくださいStep Functions が統合サービスのIAMポリシーを生成する方法。