创建Amplify Backend报错:用户无创建触发器权限,Lambda创建失败
解决AWS Amplify后端创建时Lambda CreateFunction权限拒绝问题
问题重现
执行AWS CLI创建Lambda函数时触发权限拒绝错误:
aws lambda --profile haniq-main create-function --function-name my-function --zip-file fileb://function.zip --handler index.handler --runtime nodejs18.x --role arn:aws:iam::640766513655:role/lambda-ex An error occurred (AccessDeniedException) when calling the CreateFunction operation: None
该问题导致Amplify后端创建失败,核心原因是操作的IAM实体无Lambda创建权限。
解决方案
- 添加Lambda创建权限
给haniq-main配置对应的IAM用户/角色附加自定义策略,授予lambda:CreateFunction权限:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:CreateFunction", "Resource": "arn:aws:lambda:*:640766513655:function:*" } ] }
- 补充IAM角色传递权限
创建Lambda需要传递执行角色,因此必须同时授予iam:PassRole权限,避免角色传递失败:
{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::640766513655:role/lambda-ex", "Condition": { "StringEquals": { "iam:PassedToService": "lambda.amazonaws.com" } } }
验证Lambda执行角色权限
确保lambda-ex角色已附加AWSLambdaBasicExecutionRole托管策略,该策略允许Lambda写入CloudWatch日志,是函数运行的基础权限。排查权限限制
- 执行
aws configure list --profile haniq-main确认当前使用的IAM身份正确,避免配置文件混淆。 - 若在AWS组织环境下,检查是否存在服务控制策略(SCP)或IAM权限边界拦截了
lambda:CreateFunction操作。
内容的提问来源于stack exchange,提问作者Hani Q
相关产品推荐
相关产品推荐

