

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

# 步骤 1: 配置 AWS 服务
<a name="kaw-ds2s3-tutorial-step1"></a>

执行以下步骤来准备环境，以便使用 Amazon Kinesis Agent 将日志数据流式传输到 Amazon Simple Storage Service (Amazon S3)。有关更多信息和先决条件，请参阅[教程：使用适用于 Windows 的 Kinesis 代理将 JSON 日志文件流式传输到 Amazon S3](directory-source-to-s3-tutorial.md)。

使用 AWS 管理控制台配置 AWS Identity and Access Management (IAM)、Amazon S3、Kinesis Data Firehose 件和亚马逊 Elastic Compute Cloud (Amazon EC2)，以便准备将日志数据从 EC2 实例流式传输到 Amazon S3。

**Topics**
+ [配置 IAM 策略和角色](#kaw-ds2s3-tutorial-step1.1)
+ [创建 Amazon S3 存储桶](#kaw-ds2s3-tutorial-step1.2)
+ [创建 Kinesis Data Firehose 传输流](#kaw-ds2s3-tutorial-step1.3)
+ [创建 Amazon EC2 实例以运行适用于 Windows 的 Kinesis 代理](#kaw-ds2s3-tutorial-step1.4)
+ [后续步骤](#kaw-ds2s3-tutorial-next)

## 配置 IAM 策略和角色
<a name="kaw-ds2s3-tutorial-step1.1"></a>

创建以下策略，该策略授权 Windows Kinesis Agent 将记录流式传输到特定的 Kinesis Data Firehose 传输流：

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "firehose:PutRecord",
                "firehose:PutRecordBatch"
            ],
            "Resource": "arn:aws:firehose:region:account-id:deliverystream/log-delivery-stream"
        }
    ]
}
```

Replace{{`region`}}，名为 AWS 区域名称，该区域将在其中创建 Kinesis Data Firehose 传输流（`us-east-1`，例如）。将 {{`account-id`}} 替换为将在其中创建传输流的 AWS 账户的 12 位账户 ID。

 在导航栏中，选择**支持**，然后**支持中心**。您当前登录的 12 位数字账户号 (ID) 将显示在**支持中心**导航窗格中。

使用以下过程创建策略。将策略命名为 `log-delivery-stream-access-policy`。

**使用 JSON 策略编辑器创建策略**

1. 登录 AWS 管理控制台，并通过以下网址打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在左侧的导航窗格中，选择 **Policies (策略)**。

   如果这是您首次选择 **Policies**，则会显示 **Welcome to Managed Policies** 页面。选择 **Get Started **。

1. 在页面的顶部，选择 **Create policy (创建策略)**。

1. 选择 **JSON** 选项卡。

1. 输入 JSON 策略文档。有关 IAM 策略语言的详细信息，请参阅[IAM JSON 策略参考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)中的*IAM 用户指南*。

1. 完成后，选择**查看策略**。[策略验证程序](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html)将报告任何语法错误。
**注意**  
您可以随时在**可视化编辑器**和 **JSON** 选项卡之间切换。但是，如果您进行更改或选择**查看策略**中的**可视化编辑器**选项卡中，IAM 可能会调整您的策略结构以针对可视化编辑器进行优化。有关更多信息，请参阅 。[调整策略结构](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_policies.html#troubleshoot_viseditor-restructure)中的*IAM 用户指南*。

1. 在 **Review policy (查看策略)** 页面上，为创建的策略输入 **Name (名称)** 和 **Description (描述)**（可选）。查看策略**摘要**以查看您的策略授予的权限。然后，选择**创建策略**以保存您的工作。

![演示如何为 Kinesis Data Firehose 创建 IAM 策略的屏幕截图。](http://docs.aws.amazon.com/zh_cn/kinesis-agent-windows/latest/userguide/images/iam-create-kdf-policy.png)


**创建向 Kinesis Data Firehose 授予对 S3 存储桶的访问权限的角色**

1. 通过使用上一过程，创建一个使用以下 JSON 定义的名为 `firehose-s3-access-policy` 的策略：

   ```
   {
       "Version": "2012-10-17",  
       "Statement":
       [    
           {      
               "Effect": "Allow",      
               "Action": [        
                   "s3:AbortMultipartUpload",        
                   "s3:GetBucketLocation",        
                   "s3:GetObject",        
                   "s3:ListBucket",        
                   "s3:ListBucketMultipartUploads",        
                   "s3:PutObject"
               ],      
               "Resource": [        
                   "arn:aws:s3:::bucket-name",
                   "arn:aws:s3:::bucket-name/*"		    
               ]    
           },
           {
              "Effect": "Allow",
              "Action": [
                  "logs:PutLogEvents"
              ],
              "Resource": [
                  "arn:aws:logs:region:account-id:log-group:firehose-error-log-group:log-stream:firehose-error-log-stream"
              ]
           }
       ]
   }
   ```

   将 {{`bucket-name`}} 替换为将存储日志的唯一存储桶名称。Replace{{`region`}}（将在其中创建 CloudWatch Logs 组和日志流的 AWS 区域）。它们用于记录在通过 Kinesis Data Firehose 将数据流式传输到 Amazon S3 时发生的任何错误。将 {{`account-id`}} 替换为将在其中创建日志组和日志流的账户的 12 位账户 ID。  
![演示如何创建 IAM 策略以允许访问 Amazon S3 的屏幕截图。](http://docs.aws.amazon.com/zh_cn/kinesis-agent-windows/latest/userguide/images/iam-create-s3-policy.png)

1. 在 IAM 控制台的导航窗格中，选择 **Roles**，然后选择 **Create role**。

1. 选择**AWS 服务**角色类型，然后选择**Kinesis**服务。

1. 选择**Kinesis Data Firehose**作为用例，然后选择**后续：权限。**

1. 在搜索框中，输入**firehose-s3-access-policy**，选择该策略，然后选择**后续：审核**。

1. 在 **Role name (角色名称)** 框中，输入 **firehose-s3-access-role**。

1. 选择**创建角色**。

**创建要与将运行 Kinesis Agent 的 EC2 实例的实例配置文件关联的角色**

1. 在 IAM 控制台的导航窗格中，选择 **Roles**，然后选择 **Create role**。

1. 选择**AWS 服务**角色类型，然后选择**EC2**。

1. 选择**后续：权限。**

1. 在搜索框中，输入 **log-delivery-stream-access-policy**。

1. 选择策略，然后选择**后续：审核**。

1. 在 **Role name (角色名称)** 框中，输入 **kinesis-agent-instance-role**。

1. 选择**创建角色**。

## 创建 Amazon S3 存储桶
<a name="kaw-ds2s3-tutorial-step1.2"></a>

 创建 Kinesis Data Firehose 在其中流式传输日志的 S3 存储桶。

**创建用于日志存储的 S3 存储桶**

1. 通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 选择 **Create bucket (创建存储桶)**。

1. 在 **Bucket name (存储桶名称)** 框中，输入您在[配置 IAM 策略和角色](#kaw-ds2s3-tutorial-step1.1)中选择的唯一 S3 存储桶名称。

1. 选择应创建存储桶的区域。这通常与您打算在其中创建 Kinesis Data Firehose 传输流和 Amazon EC2 实例的区域相同。

1. 选择**创建**。

## 创建 Kinesis Data Firehose 传输流
<a name="kaw-ds2s3-tutorial-step1.3"></a>

创建将流式记录存储在 Amazon S3 中的 Kinesis Data Firehose 传输流。

**创建 Kinesis Data Firehose 传输流**

1. 打开 Kinesis Data Firehose 控制台，网址为[https://console.aws.amazon.com/firehose/](https://console.aws.amazon.com/firehose/)。

1. 选择 **Create Delivery Stream**。

1. 在 **Delivery stream name (传输流名称)** 框中，输入 **log-delivery-stream**。

1. 对于 **Source (源)**，请选择 **Direct PUT** 或其他源。  
![演示如何在创建 Kinesis Data Firehose 传输流时指定源的屏幕截图。](http://docs.aws.amazon.com/zh_cn/kinesis-agent-windows/latest/userguide/images/fh-create-delivery-stream-1.png)

1. 选择 **Next**。

1. 再次选择 **Next (下一步)**。

1. 对于目标，选择**Amazon S3**。

1. 对于 **S3 bucket (S3 存储桶)**，选择您在[创建 Amazon S3 存储桶](#kaw-ds2s3-tutorial-step1.2)中创建的存储桶的名称。  
![演示如何在创建 Kinesis Data Firehose 传输流时指定目标的屏幕截图。](http://docs.aws.amazon.com/zh_cn/kinesis-agent-windows/latest/userguide/images/fh-create-delivery-stream-2.png)

1. 选择 **Next**。

1. 在 **Buffer interval (缓冲间隔)** 框中，输入 **60**。

1. 在 **IAM role (IAM 角色)** 下，选择 **Create new or choose (新建或选择)**。

1. 对于 **IAM role (IAM 角色)**，选择 `firehose-s3-access-role`。

1. 选择 **Allow**。  
![演示如何在创建 Kinesis Data Firehose 传输流时配置选项和安全性的屏幕截图。](http://docs.aws.amazon.com/zh_cn/kinesis-agent-windows/latest/userguide/images/fh-create-delivery-stream-3.png)

1. 选择 **Next**。

1. 选择 **Create delivery stream (创建传输流)**。

## 创建 Amazon EC2 实例以运行适用于 Windows 的 Kinesis 代理
<a name="kaw-ds2s3-tutorial-step1.4"></a>

创建使用 Windows Kinesis Agent 通过 Kinesis Data Firehose 流式传输日志记录的 EC2 实例。

**创建 EC2 实例**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 按照 [Amazon EC2 Windows 实例入门](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html)中的说明操作，并使用以下额外步骤：
   + 对于实例的 **IAM role (IAM 角色)**，选择 `kinesis-agent-instance-role`。
   + 如果您还没有连接到互联网的公共 Virtual Private Cloud (VPC)，请按照[使用 Amazon EC2 进行设置](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/get-set-up-for-amazon-ec2.html)中的*适用于 Windows 实例的 Amazon EC2 用户指南*。
   + 创建或使用一个安全组，该安全组仅允许从您的计算机或组织的计算机访问实例。有关更多信息，请参阅 。[使用 Amazon EC2 进行设置](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/get-set-up-for-amazon-ec2.html)中的*适用于 Windows 实例的 Amazon EC2 用户指南*。
   + 如果您指定现有密钥对，请确保有权访问密钥对的私有密钥。或者，创建新的密钥对，并将私有密钥保存在安全位置。
   + 在继续之前，请等待实例运行并完成两项运行状况检查。
   + 您的实例需要一个公有 IP 地址。如果尚未分配一个，请按照[弹性 IP 地址](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-ip-addresses-eip.html)中的*适用于 Windows 实例的 Amazon EC2 用户指南*。

## 后续步骤
<a name="kaw-ds2s3-tutorial-next"></a>

[步骤 2: 安装、配置和运行适用于 Windows 的运行代理](kaw-ds2s3-tutorial-step2.md)