Amazon lex でチャットボットを作成しました。ボットがラムダ関数にアクセスしようとすると、次のエラーが表示されます。
エラーが発生しました: ラムダ関数の呼び出し中にアクセスが拒否されました。ボットの作成に使用された IAM ポリシーのアクセス許可を確認してください
このエラーの修正にご協力いただけますでしょうか。
Amazon lex でチャットボットを作成しました。ボットがラムダ関数にアクセスしようとすると、次のエラーが表示されます。
エラーが発生しました: ラムダ関数の呼び出し中にアクセスが拒否されました。ボットの作成に使用された IAM ポリシーのアクセス許可を確認してください
このエラーの修正にご協力いただけますでしょうか。
この問題の根本は、Lex ボットに関連付けられている IAM ロールにあるようです。Lex は、Lambda 関数を呼び出すときにこのロールを引き受けます。1) ロールが Lambda を呼び出すことを許可するポリシーと、2) Amazon Lex がユーザーに代わってそのロールを引き受けることを許可する信頼ポリシーの両方が必要です。表示されているエラー メッセージから、ボットのロールで構成されている可能性があるのは信頼ポリシーであると予想されます。
1. IAM ロールの [アクセス許可] タブで、[インライン ポリシー] を選択し、次のカスタム ポリシーをアタッチします。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"lambda:InvokeFunction",
"polly:SynthesizeSpeech"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
2. [信頼関係] タブで、[信頼関係の編集] を選択し、Amazon Lex サービスプリンシパル (「lex.amazonaws.com」) を指定します。更新されたポリシーは次のようになります。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "lex.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
リファレンスとして、入門ドキュメント ( http://docs.aws.amazon.com/lex/latest/dg/gs-bp-prep.html )の項目 2 を参照してください。
完全な開示: 私はプロダクトマネージャーとして Amazon Lex に取り組んでいます