Kinesis Firehose 可以跨账户吗?

Cha*_* L. 7 amazon-web-services amazon-kinesis amazon-kinesis-firehose

账户 A 是我在其中创建 Kinesis 流的应用程序账户,我想在账户 B 中创建 Firehose 以从账户 A Kinesis 流中读取数据。这可能吗?我尝试按照( https://medium.com/upday-devs/configure-kcl-to-read-from-a- Different-aws-account-16000b26e7ff )中的步骤操作并创建一个外部访问角色(例如“arn”)账户 A 中的 :aws:iam::111111111:role/External-Kinesis-Access') 并仅指定 ARN

  KinesisStreamSourceConfiguration:
    KinesisStreamARN:
      Ref: KinesisSourceStreamARN
    RoleARN: 'arn:aws:iam::111111111:role/External-Kinesis-Access'
Run Code Online (Sandbox Code Playgroud)

但这会导致错误:IAM 角色和 Kinesis 流应属于同一帐户。

我尝试使用 sts:AssumeRole,但这会导致不同的错误:“不允许跨帐户传递角色。”

所以看来不支持通过 Firehose 进行跨帐户流式传输。我还发现了这个: https: //forums.aws.amazon.com/thread.jspa? threadID=249458 这让我相信它不受支持。

如果是这种情况,解决方法是什么?在账户 A 中创建 Lambda 函数以写入账户 B 中的 Firehose?

Phi*_*nis 3

正如您所建议的,可以有一个 lambda 函数。这里还有一个教程:https://medium.com/faun/quicksolutions-cross-account-use-lambda-to-write-to-firehose-in-another-aws-account-38bc4270a348

这将导致 lambda 执行产生额外的成本。如果您只想将数据保存到 S3,您也可以将 Firehose 配置为写入另一个帐户中的 S3 存储桶:https ://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#cross -account-delivery-s3https://blog.fajri.my.id/post/aws-kinesis-firehose-cross-account-bucket/