aws-lambda - Kinesis Firehose 的 Lambda.InvokeAccessDenied

标签 aws-lambda amazon-kinesis amazon-iam amazon-kinesis-firehose

我正在尝试使用 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/

相关文章:

aws-lambda - 如何杀死 LAMBDA 热容器以刷新 RDS Connection.pool 中的所有数据

node.js - 从 AWS Lambda (NodeJS) 发送 SSH 命令

amazon-kinesis - 如何在 Javascript SDK 中解码来自 kinesis.getRecords 的数据?

java - 使用 AWS Java DynamoDB 流 Kinesis 适配器处理 DynamoDB 流

git - AWS CodeCommit 公共(public)存储库

javascript - 如何使用 AWS Lambda 中的 websockets 将响应发送回客户端

node.js - 并行多次调用 lambda 似乎是在 50 个并发批处理中执行,而不是使用更高指定的保留并发数

java - 无法在 AWS lambda 函数中获取 AmazonDynamoDBClient

amazon-web-services - 如何为 ECS 任务分配 IAM 角色

amazon-web-services - 无法通过 AWS 配置文件承担角色