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に関するエラーが出たものと思われる。