Firehose无法扮演角色

6
我正在尝试使用 Firehose API (JS),但一直收到以下错误消息:

"InvalidArgumentException: Firehose无法扮演角色arn:aws:iam::XXXXXXXXXX:role/NAME。请检查所提供的角色。

我检查了角色,并将自定义策略设置为包括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": "*"
        }
    ]
}

1
如果您在问题中实际展示了角色,那么回答起来会更容易。但我怀疑您缺少“Principal”元素。 - guest
我同意,我很快会更新。AWS控制台出问题了。我同意你的看法,我试图设置原则,但是它给了我一些错误,我也会尽快更新。 - Brian Nezhad
@guest 已更新。 - Brian Nezhad
1
你能检查IAM角色中定义的信任关系并验证它是否设置为firehose.amazonaws.com吗? - krishna_mee2004
好的,我会打出来。很高兴能帮忙。 - krishna_mee2004
显示剩余2条评论
1个回答

20
请检查 IAM 角色中定义的信任关系,并验证它是否设置为 firehose.amazonaws.com。在信任关系中定义的策略使服务能够扮演该角色。对于 Kinesis Firehose,请参考 此文档,其中包含有关 Firehose 的 IAM 角色的详细信息。请参考文档中的“向 Amazon S3 目标授予 Kinesis Data Firehose 访问权限”部分,其中提到了信任策略。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接