

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

# 步骤 1：创建 Firehose 传输流
<a name="CreateFirehoseStream"></a>

**重要**  
 在完成以下步骤之前，您必须使用访问策略，以便 Firehose 可以访问您的 Amazon S3 存储桶。有关更多信息，请参阅《*Amazon Data Firehose 开发人员指南*》中的 [Controlling Access](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3)。  
 本部分（步骤 1）中的所有步骤都需要在日志数据接收者账户中完成。  
 以下示例命令中使用的是美国东部（弗吉尼亚州北部）。请将此区域替换为适用于您的部署的正确区域。

**创建将用作目标的 Firehose 传输流**

1. 创建 Amazon S3 存储桶：

   ```
   aws s3api create-bucket --bucket amzn-s3-demo-bucket --create-bucket-configuration LocationConstraint=us-east-1
   ```

1. 创建 IAM 角色，授予 Firehose 将数据放入存储桶的权限。

   1. 首先，使用文本编辑器在文件 `~/TrustPolicyForFirehose.json` 中创建信任策略。

      ```
      { "Statement": { "Effect": "Allow", "Principal": { "Service": "firehose.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId":"222222222222" } } } }
      ```

   1. 创建 IAM 角色，并指定您刚创建的信任策略文件。

      ```
      aws iam create-role \ 
          --role-name FirehosetoS3Role \ 
          --assume-role-policy-document file://~/TrustPolicyForFirehose.json
      ```

   1. 此命令的输出与以下内容类似。记下角色名称和角色 ARN。

      ```
      {
          "Role": {
              "Path": "/",
              "RoleName": "FirehosetoS3Role",
              "RoleId": "AROAR3BXASEKW7K635M53",
              "Arn": "arn:aws:iam::222222222222:role/FirehosetoS3Role",
              "CreateDate": "2021-02-02T07:53:10+00:00",
              "AssumeRolePolicyDocument": {
                  "Statement": {
                      "Effect": "Allow",
                      "Principal": {
                          "Service": "firehose.amazonaws.com"
                      },
                      "Action": "sts:AssumeRole",
                      "Condition": {
                          "StringEquals": {
                              "sts:ExternalId": "222222222222"
                          }
                      }
                  }
              }
          }
      }
      ```

1. 创建权限策略，以定义 Firehose 可对您的账户执行的操作。

   1. 首先，使用文本编辑器在名为 `~/PermissionsForFirehose.json` 的文件中创建以下权限策略。根据应用场景，您可能需要为此文件添加更多权限。

      ```
      {
          "Statement": [{
              "Effect": "Allow",
              "Action": [
                  "s3:PutObject",
                  "s3:PutObjectAcl",
                  "s3:ListBucket"
              ],
              "Resource": [
                  "arn:aws:s3:::amzn-s3-demo-bucket",
                  "arn:aws:s3:::amzn-s3-demo-bucket/*"
              ]
          }]
      }
      ```

   1. 输入以下命令，以将刚创建的权限策略与 IAM 角色相关联。

      ```
      aws iam put-role-policy --role-name FirehosetoS3Role --policy-name Permissions-Policy-For-Firehose-To-S3 --policy-document file://~/PermissionsForFirehose.json
      ```

1. 输入以下命令以创建 Firehose 传输流。*amzn-s3-demo-bucket2-arn*使用正确的部署值替换*my-role-arn*和。

   ```
   aws firehose create-delivery-stream \
      --delivery-stream-name 'my-delivery-stream' \
      --s3-destination-configuration \
     '{"RoleARN": "arn:aws:iam::222222222222:role/FirehosetoS3Role", "BucketARN": "arn:aws:s3:::amzn-s3-demo-bucket"}'
   ```

   该输出值应该类似于以下内容：

   ```
   {
       "DeliveryStreamARN": "arn:aws:firehose:us-east-1:222222222222:deliverystream/my-delivery-stream"
   }
   ```