Firehose 无法担任角色

Firehose is unable to assume role

我正在尝试使用 Firehose API (JS),但我不断收到以下错误:

"InvalidArgumentException: Firehose is unable to assume role arn:aws:iam::XXXXXXXXXX:role/NAME. Please check the role provided.

我检查了角色,并设置了我的自定义策略以包含用于 STS 和 Firehose 操作的所有资源。如果我在 STS 下允许 AssumeRole,我不知道为什么会出现此错误。

方法调用

我使用的方法是 createDeliveryStream(params = {}, callback)S3DestinationConfiguration

政策JSON

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "iam:*",
                "kinesisvideo:*",
                "s3:PutAccountPublicAccessBlock",
                "s3:GetAccountPublicAccessBlock",
                "s3:ListAllMyBuckets",
                "s3:*",
                "firehose:*",
                "sts:*",
                "s3:HeadBucket"
            ],
            "Resource": "*"
        }
    ]
}

请检查 IAM 角色中定义的信任关系并验证它是否设置为 firehose.amazonaws.com。信任关系中定义的策略使服务能够承担该角色。对于 Kinesis Firehose,请参阅 this 文档,其中包含有关 Firehose 的 IAM 角色的详细信息。请参阅文档中提到信任策略的 "Grant Kinesis Data Firehose Access to an Amazon S3 Destination" 部分。