我正在尝试使用Firehose API (JS),但不断出现以下错误:
“ InvalidArgumentException:Firehose无法承担角色 arn:aws:iam :: XXXXXXXXXX:role / NAME。请检查提供的角色。
我检查了角色,并设置了自定义策略,以包括STS和Firehose操作的所有资源。如果我允许在STS下使用AssumeRole
,我不知道为什么会出现此错误。
我使用的方法是createDeliveryStream(params = {}, callback)
和S3DestinationConfiguration
。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"iam:*",
"kinesisvideo:*",
"s3:PutAccountPublicAccessBlock",
"s3:GetAccountPublicAccessBlock",
"s3:ListAllMyBuckets",
"s3:*",
"firehose:*",
"sts:*",
"s3:HeadBucket"
],
"Resource": "*"
}
]
}
答案 0 :(得分:2)
请检查IAM角色中定义的信任关系,并验证它是否设置为firehose.amazonaws.com
。在信任关系中定义的策略使服务可以担当角色。对于Kinesis Firehose,请参阅this文档,其中包含有关Firehose的IAM角色的详细信息。请参阅文档中有关信任策略的“授予Kinesis Data Firehose对Amazon S3目标的访问权限”部分。