【发布时间】:2022-02-19 04:29:34
【问题描述】:
我需要从另一个 lambda (lambdaA) 调用一个 lambda (lambdaB)。在 lambdaA 的 IAM 策略中,我有以下配置:
{
"Action": [
"lambda:invokeFunction"
],
"Resource": [
"arn:aws:lambda:ap-southeast-2:264100014405:function:handler:*"
],
"Effect": "Allow"
}
它不起作用,我在 lambdaA 中遇到以下错误:
lambdaA 无权执行:lambda:InvokeFunction on resource:arn:aws:lambda:ap-southeast-2:264100014405:handler,因为没有基于身份的策略允许 lambda:InvokeFunction 操作。
但如果我从资源中删除通配符:
"Resource": [
"arn:aws:lambda:ap-southeast-2:264100014405:function:handler"
],
效果很好。
lambdaA 调用 aws-sdk 以调用 lambda 名称为 handler 的 lambda。
我放通配符的原因是我想授予 lambdaA 权限,以便将来调用 lambdaB 上的所有别名。我应该在 lambdaA 的角色中设置什么正确的 IAM 政策?
【问题讨论】:
-
但字符串
handler与handler:*不匹配。您是否尝试将两者都添加到Resource?
标签: amazon-web-services aws-lambda amazon-iam