调用Lambda函数时遇权限错误:缺少lambda:InvokeFunction权限
问题原因与解决方案
错误信息明确显示:调用方Lambda的执行角色(Lambda_Invoke)没有被授予调用目标Lambda(main)的权限,你之前给IAM用户授权是无效的——因为Lambda函数之间调用时,使用的是发起调用的Lambda函数的执行角色,而非IAM用户的权限。
解决步骤
- 打开IAM控制台,找到名为
Lambda_Invoke的角色(即错误信息里arn:aws:sts::34566842343:assumed-role/Lambda_Invoke/actions对应的角色) - 给这个角色添加一条身份策略,允许
lambda:InvokeFunction动作,资源指定为目标Lambda的ARN:arn:aws:lambda:us-west-1:34566842343:function:main
示例策略(JSON格式)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-west-1:34566842343:function:main" } ] }
- 保存策略后,重新测试Lambda调用即可。
额外注意
如果仍有问题,可检查目标Lambda的资源策略是否允许来自Lambda_Invoke角色的调用,但根据错误提示,核心问题是调用方角色的身份策略缺失权限,优先解决这个即可。
内容的提问来源于stack exchange,提问作者Sreyash
相关产品推荐
相关产品推荐

