Lambda.InvokeAccess从Kinesis Firehose拒绝 [英] Lambda.InvokeAccessDenied from Kinesis Firehose

查看:154
本文介绍了Lambda.InvokeAccess从Kinesis Firehose拒绝的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用Firehose交付流来设置Lambda转换.我为Firehose定义了一个IAM角色,其中包括以下策略文档:

I'm trying to set up Lambda transformations with a Firehose delivery stream. I have an IAM role defined for the Firehose which includes the following policy document:

{
    "Statement": {
        "Action": [
            "lambda:InvokeFunction",
            "lambda:GetFunctionConfiguration"
        ],
        "Resource": [<Arn>, ...],
        "Effect": "Allow"
    }
}

我还向sts:AssumeRole授予了Firehose对Lambda角色的访问权限.

I've also granted sts:AssumeRole access to the Lambda role from Firehose.

从理论上讲,这应授予我的Firehose调用"访问指定的lambda ARN的权限.但是转换失败了

This should theoretically grant my Firehose "Invoke" access to the specified lambda ARNs. But the transforms are failing with

{
  "errorCode":"Lambda.InvokeAccessDenied",
  "errorMessage":"Access was denied. Ensure that the access policy allows access to the Lambda function."
}

,并且从Lambda控制台看不到函数调用.我的IAM组件是否配置正确?还是这里出了什么问题?

and no function invocations are apparent from the Lambda console. Do I have my IAM components configured correctly? Or could something else be going wrong here?

推荐答案

在Firehose的ProcessingConfiguration中的其他地方,我提供了一个角色来执行没有足够权限的lambda.通过删除

Elsewhere in the ProcessingConfiguration for my Firehose, I had supplied a role to execute the lambda which did not have adequate permissions. By removing

- ParameterName: RoleArn
  ParameterValue:
    Fn::GetAtt: [<Role>, Arn]

从ProcessingConfiguration配置集中,lambda能够使用适当的角色/策略成功执行.

from the ProcessingConfiguration config set, the lambda was able to execute successfully using the appropriate role/policy.

这篇关于Lambda.InvokeAccess从Kinesis Firehose拒绝的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆