今夜がλ

夜だけプログラマー

AWS CLIでcreate-function時に「Cross-account pass role is not allowed」のエラー

普段、AWS Lambdaで関数を作成する際はブラウザ上のコンソール画面から操作していたが、AWS CLIで対応できるようにしたかったので試してみたところ、エラーが発生。

$ aws lambda create-function --function-name CreateThumbnail --zip-file fileb://function.zip --handler index.handler --runtime nodejs8.10 --timeout 10 --memory-size 1024 --role arn:aws:iam::123456789012:role/lambda-s3-role

An error occurred (AccessDeniedException) when calling the CreateFunction operation: Cross-account pass role is not allowed.
$ 

参考:チュートリアル: Amazon S3 で AWS Lambda を使用する - AWS Lambda

ちなみにクロスアカウントは使っていない。

よくよくコマンドを見ると、roleのAmazon Resource Name(arn)の指定に誤りがあった。 自分で作成したroleのarnを見直して修正。

$ aws lambda create-function --function-name CreateThumbnail --zip-file fileb://function.zip --handler index.handler --runtime nodejs8.10 --timeout 10 --memory-size 1024 --role {正しいarn}

これで通った。 別アカウントが作成したroleのarnを指定しまっていたため、Cross-accountに関するエラーが出たものと思われる。