

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 订阅 Firehose 传输流到 Amazon SNS 主题的先决条件
<a name="prereqs-kinesis-data-firehose"></a>

要订阅 SNS 主题的直播流，您 AWS 账户 必须具备以下条件：
+ 标准 SNS 主题。有关更多信息，请参阅 [创建 Amazon SNS 主题](sns-create-topic.md)。
+ Firehose 传输流。有关更多信息，请参阅《Amazon Data Firehose 开发人员指南》**中的[创建传输流](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html)和[授予应用程序对 Firehose 资源的访问权限](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#access-to-firehose)。
+ 信任 Amazon SNS 服务委托人并有权写入传输流的 AWS Identity and Access Management (IAM) 角色。创建订阅时，您将输入此角色的 Amazon Resource Name (ARN) 作为 `SubscriptionRoleARN`。Amazon SNS 担任此角色，它允许 Amazon SNS 将记录放入 Firehose 传输流中。

  下面的示例策略显示了建议的权限：

------
#### [ JSON ]

****  

  ```
  {
    "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 的完全权限，您还可以使用 AWS 托管策略。`AmazonKinesisFirehoseFullAccess`或者，要为使用 Firehose 提供更严格的权限，您可以创建自己的策略。至少，策略必须提供在特定传输流上运行 `PutRecord` 操作的权限。

  在所有情况下，您都还必须编辑信任关系以包括 Amazon SNS 服务委托人。例如：

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Principal": {
          "Service": "sns.amazonaws.com"
        },
        "Action": "sts:AssumeRole"
      }
    ]
  }
  ```

------

  有关创建角色的更多信息，请参阅 *IAM 用户指南*中的[创建角色以向 AWS 服务委派权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

完成这些要求后，您可以[将传输流订阅到 SNS 主题](firehose-endpoints-subscribe.md)。