翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 のロールの作成
-
IAM コンソール にサインインし
、ロール 、ロール の作成 を選択します。 -
[信頼できるエンティティ] ページの [AWS サービス] で、リストから [Step Functions] を選択し、[次へ:許可] を選択します。
-
[アタッチされた許可ポリシー] ページで、[次へ:確認] を選択します。
-
[確認] ページで、
StepFunctionsLambdaRole
を [ロール名] に入力し、[ロールの作成] を選択します。IAM ロールがロールのリストに表示されます。
アクセスIAM許可とポリシーの詳細については、「 ユーザーガイド」の「アクセス管理IAM」を参照してください。
サービス間の混乱した代理の防止
混乱した代理問題は、アクションを実行する許可を持たないエンティティが、より権限のあるエンティティにアクションの実行を強制できるセキュリティ上の問題です。では 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ポリシーを生成する方法。