订阅 Firehose 传输流到 Amazon SNS 主题的先决条件
要将 Amazon Data Firehose 传输流订阅到 SNS 主题,您的 Amazon Web Services 账户 必须具有:
-
标准 SNS 主题。有关更多信息,请参阅 创建 Amazon SNS 主题。
-
Firehose 传输流。有关更多信息,请参阅《Amazon Data Firehose 开发人员指南》中的创建 Amazon Data Firehose 传输流和授予您的应用程序对 Firehose 资源的访问权限。
-
信任 Amazon SNS 服务委托人并具有写入到传输流的权限的 Amazon Identity and Access Management(IAM)角色。创建订阅时,您将输入此角色的 Amazon Resource Name (ARN) 作为
SubscriptionRoleARN
。Amazon SNS 担任此角色,它允许 Amazon SNS 将记录放入 Firehose 传输流中。下面的示例策略显示了建议的权限:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "firehose:DescribeDeliveryStream", "firehose:ListDeliveryStreams", "firehose:ListTagsForDeliveryStream", "firehose:PutRecord", "firehose:PutRecordBatch" ], "Resource": [ "arn:aws:firehose:us-east-1:111111111111:deliverystream/firehose-sns-delivery-stream" ], "Effect": "Allow" } ] }
要提供使用 Firehose 的完全权限,您还可以使用 Amazon 托管式策略
AmazonKinesisFirehoseFullAccess
。或者,要为使用 Firehose 提供更严格的权限,您可以创建自己的策略。至少,策略必须提供在特定传输流上运行PutRecord
操作的权限。在所有情况下,您都还必须编辑信任关系以包括 Amazon SNS 服务委托人。例如:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
有关创建角色的更多信息,请参阅 IAM 用户指南中的创建角色以委派权限给 Amazon 服务。
完成这些要求后,您可以将传输流订阅到 SNS 主题。