LoginSignup
2
0

More than 1 year has passed since last update.

AccessDeniedException,User: <s3-batch-operation> is not authorized to perform: lambda:InvokeFunction on resource: <myfunction> because no identity-based policy allows the lambda:InvokeFunction action エラーの対処

Posted at

経緯

 チュートリアル:S3 バッチ操作、AWS Lambda および AWS Elemental MediaConvert
 ステップ6:S3 バッチ操作の IAM ロールを作成する、でのエラー
スクリーンショット 2022-08-06 9.32.15.png

 Lambdaを呼び出すためにS3バッチのロールとして下記のポリシーをアタッチする。
スクリーンショット 2022-08-10 21.57.16.png

 その後S3バッチオペレーションのジョブを実行すると下記のエラーが発生

tutorial-bucket-1,mov_hts-samp002.mp4,,failed,403,AccessDeniedException,User: arn:aws:sts::<userID>:assumed-role/tutorial-s3batch-role/s3-batch-operations_2d09be84-8186-496a-9457-3c5023895557 is not authorized to perform: lambda:InvokeFunction on resource: arn:aws:lambda:ap-northeast-1:<userID>:function:test-lambda-convert:$LATEST because no identity-based policy allows the lambda:InvokeFunction action

 S3バッチのロールにアタッチしたポリシーを見にいくと警告が出ていることに気づく。
スクリーンショット 2022-08-10 21.32.19.png

対処

 問題は2つあるようでした。
1. IAMユーザーにLambdaを実行する権限がない。
2. IAMロールのポリシーの設定が適切でない。

Lambda での呼び出しに関する問題のトラブルシューティング

1. IAMユーザーにLambdaを実行する権限がない。

 ユーザーにはAdministoratorAccessがアタッチされているので問題なし

2. IAMロールのポリシーの設定が適切でない。

 ポリシーのResourceの欄を関数のARNではなくフルアクセスにする
スクリーンショット 2022-08-10 21.41.50.png

AWS Lambda関数の呼び出し

 警告もなくなり結果成功
スクリーンショット 2022-08-10 21.47.09.png

tutorial-bucket-1,mov_hts-samp004.mp4,,succeeded,200,,The input video object was converted successfully.

 ただこの場合S3バッチに全てのLambdaの実行許可を与えることになっているので推奨されるやり方ではないと思われる。Lambdaにadd-permissionを与えたり他にもいろいろ試しましたがうまくいかなかったので現状はこの方法のみ記載。
 より良い方法が見つかれば記載する予定。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0