AWS Step Functions ステートマシンを実行しようとすると、次のエラーが表示されます。 「グローバルサービスプリンシパル states.amazonaws.com もリージョナルサービスプリンシパルのどちらにも、提供されたロールを引き受ける権限はありません。」 問題をトラブルシューティングするにはどうすればいいですか?
解決方法
ステートマシンが引き受ける AWS Identity and Access Management (IAM) ロールに、必要な信頼関係が設定されていることを確認します
IAM ロールの信頼ポリシーに、次のいずれかが信頼できるエンティティとして記載されている必要があります。
- AWS リージョンのエンドポイント: [**states.<region>.amazonaws.com **]
- AWS グローバルエンドポイント: [**states.amazonaws.com **]
ステートマシンが引き受ける IAM ロールの信頼ポリシーを確認および編集するには、ロール信頼ポリシーの変更 (コンソール) の指示に従ってください。詳細については、AWS Step Functions と IAM の連携を参照してください。
注記:StartExecution API アクションが呼び出されると、Step Functions はアクションの実行中にステートマシンに関連付けられた IAM ロールを使用します。ステートマシンが引き受ける IAM ロールがアクションの実行時に変更された場合、その API アクションでは IAM ロールは使用されません。
ステートマシンが引き受ける IAM ロールがまだ存在することを確認する
1. Step Functions コンソール を開きます。
2. 左側のナビゲーションペインで [ステートマシン] を選択します。
3. ステートマシンの名前を選択します。
4. [詳細] セクションで、[** IAM ロール**] ARN の下にあるリンクを選択します。IAM ロールが存在する場合、そのロールは IAM コンソールで開きます。IAM ロールが存在しない場合、IAM コンソールは [エンティティが見つかりません] というページを開きます。
ステートマシンが引き受ける IAM ロールが存在しない場合は、必要な権限を含む別の名前で 新しい IAM ロールを作成します。次に、作成した新しい IAM ロールを引き継ぐようにステートマシンを設定します。詳細については、AWS Step Functions と IAM の連携を参照してください。
**重要:**作成する新しい IAM ロールには、以前の IAM ロールとは異なる名前を付ける必要があります。