如何解决AWS根账号部署Serverless Lambda时的AccessDeniedException错误
AWS Lambda部署403错误排查方案
报错本质是Lambda服务返回的权限拒绝异常,即使用根账号操作也可能因账号状态、规则限制触发,按以下顺序排查:
- 第一步:验证本地AWS凭证有效性
执行aws sts get-caller-identity命令,确认返回的ARN为当前使用的根账号ARN(格式为arn:aws:iam::[你的账号ID]:root),同时核对Serverless Framework部署时指定的AWS profile是否与该凭证匹配,避免错误调用了其他低权限账号的凭证。 - 第二步:检查账号状态与全局限制
- 确认账号已完成全部注册验证流程,包括手机号、支付方式验证,未完成验证的新账号会被默认限制Lambda等服务的创建权限
- 如果你使用的是AWS组织下的成员账号,即使是根用户,也要确认组织的SCP(服务控制策略)没有配置拒绝Lambda相关操作的规则
- 进入Lambda控制台配额页面,确认函数创建、并发配额没有被耗尽或处于0的初始状态,配额不足也会触发403类错误
- 第三步:核对Serverless配置项
- 检查
serverless.yml中是否配置了错误的IAM角色ARN,避免部署时尝试 assume 不属于当前账号或无权限的角色 - 排查函数配置中是否关联了跨账号的资源,比如其他账号的KMS加密密钥、Lambda层,访问未授权的跨账号资源会触发权限拒绝
- 检查
- 第四步:排查网络与拦截规则
暂时关闭本地VPN、代理工具,避免API请求签名被篡改导致认证失败;同时确认账号没有配置拦截Lambda API请求的WAF、IAM访问控制规则。
内容的提问来源于stack exchange,提问作者DAnV
相关产品推荐
相关产品推荐

