使用Serverless Framework部署Lambda函数遇403权限错误求助
解决方案:Serverless Framework部署Lambda 403错误排查
核心问题区分
你YML里配置的是Lambda函数的执行角色权限,但部署时出现的403错误是因为Serverless Framework使用的AWS CLI凭证没有足够权限完成部署操作,和Lambda自身的执行角色无关。
具体排查步骤
确认部署用的AWS凭证权限
先执行aws sts get-caller-identity确认当前CLI使用的身份,然后检查该IAM用户/角色的权限:- 必须包含
lambda:CreateFunction、lambda:GetFunction、iam:PassRole、cloudformation:*这些部署必需的权限 - 即使是管理员权限,也要检查是否存在拒绝策略或边界策略限制了这些动作
- 可以临时给该用户附加
AdministratorAccess策略测试,排除权限问题
- 必须包含
简化Lambda执行角色配置
你YML里的权限配置有冗余,lambda:*已经包含了后面列出的所有Lambda动作,简化后更清晰:service: test frameworkVersion: '3' provider: name: aws runtime: nodejs18.x # 替换为AWS支持的版本,nodejs12.x已停止维护 iam: role: statements: - Effect: "Allow" Action: "lambda:*" Resource: "*" functions: hello: handler: handler.hello清理部署缓存并重新部署
执行以下命令清理旧资源和缓存后重新部署:serverless remove serverless deploy --no-cache升级Node.js运行时版本
nodejs12.x已经被AWS Lambda终止支持,换成nodejs18.x或nodejs20.x,避免因版本兼容导致的部署异常
内容的提问来源于stack exchange,提问作者Marco Ref3at
相关产品推荐
相关产品推荐

