我正在尝试使用 Firehose 传输流设置 Lambda 转换。我为 Firehose 定义了一个 IAM 角色,其中包括以下策略文档:
{
"Statement": {
"Action": [
"lambda:InvokeFunction",
"lambda:GetFunctionConfiguration"
],
"Resource": [<Arn>, ...],
"Effect": "Allow"
}
}
我还授予 sts:AssumeRole 从 Firehose 访问 Lambda 角色的权限。
理论上,这应该授予我的 Firehose 对指定 lambda ARN 的“调用”访问权限。但转换失败了
{
"errorCode":"Lambda.InvokeAccessDenied",
"errorMessage":"Access was denied. Ensure that the access policy allows access to the Lambda function."
}
并且从 Lambda 控制台看不到明显的函数调用。我的 IAM 组件配置正确吗?或者这里可能还有其他问题吗?
最佳答案
这个说法对我有用。请注意资源末尾的 :*
。
{
"Sid": "",
"Effect": "Allow",
"Action": [
"lambda:InvokeFunction",
"lambda:GetFunctionConfiguration"
],
"Resource": "arn:aws:lambda:us-west-2:11111111111:function:transform-lambda:*"
}
关于aws-lambda - Kinesis Firehose 的 Lambda.InvokeAccessDenied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49180688/