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