

# 创建发布到 Amazon S3 的流日志
<a name="flow-logs-s3-create-flow-log"></a>

在您创建和配置 Amazon S3 存储桶后，您可以为网络接口、子网和 VPC 创建流日志。

**先决条件**

创建流日志的 IAM 主体必须使用具有以下权限的 IAM 角色，才能将流日志发布到目标 Amazon S3 存储桶。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogDelivery",
        "logs:DeleteLogDelivery"
      ],
      "Resource": "*"
    }
  ]
}
```

------

**使用控制台创建流日志**

1. 请执行以下操作之一：
   + 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。在导航窗格中，选择**网络接口**。选中该网络接口的复选框。
   + 通过 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 打开 Amazon VPC 控制台。在导航窗格中，选择 **Your VPCs**(您的 VPC)。选中该 VPC 的复选框。
   + 通过 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 打开 Amazon VPC 控制台。在导航窗格中，选择 **Subnets**(子网)。选中子网的复选框。

1. 选择 **Actions**（操作）、**Create flow log**（创建流日志）。

1. 对于 **Filter（筛选条件）**，指定要记录的 IP 流量数据的类型。
   + **已接受** – 仅记录接受的流量。
   + **已拒绝** – 仅记录拒绝的流量。
   + **All（所有流量）**– 记录接受的和拒绝的流量。

1. 对于 **Maximum aggregation interval（最大聚合时间间隔）**，选择捕获流并聚合到一个流日志记录中的最大时间段。

1. 对于 **Destination (目标)**，选择 **Send to an Amazon S3 bucket (发送到 Amazon S3 存储桶)**。

1. 对于 **S3 bucket ARN（S3 存储桶 ARN）**，指定某个现有 Amazon S3 存储桶的 Amazon Resource Name（ARN）。您可以选择包含子文件夹。例如，要指定名为 `my-logs` 的存储桶中名为 `my-bucket` 的子文件夹，请使用以下 ARN：

   `arn:aws:s3:::my-bucket/my-logs/`

   存储桶不能使用 `AWSLogs` 作为子文件夹名称，因为这是保留项。

   如果您拥有该存储桶，我们会自动创建资源策略并将它附加到该存储桶。有关更多信息，请参阅 [针对流日志的 Amazon S3 存储桶权限](flow-logs-s3-permissions.md)。

1. 对于 **Log record format（日志记录格式）**，选定流日志记录的格式。
   + 要使用默认流日志记录格式，请选择 **AWS default format（亚马逊云科技默认格式）**。
   + 要创建自定义格式，请选择**Custom format**（自定义格式）。对于**Log format**（日志行格式），选择要包括在流日志记录中的字段。

1. 对于**其他元数据**，选择是否要以日志格式包含来自 Amazon ECS 的元数据。

1. 对于 **Log file format（日志文件格式）**，指定日志文件的格式。
   + **Text** – 纯文本。这是默认格式。
   + **Parquet** – Apache Pparquet 是一种列式数据格式。与对纯文本数据的查询相比，对 Passic 格式的数据进行查询速度快 10 到 100 倍。使用 Gzip 压缩的 Parquet 格式的数据比 Gzip 压缩的纯文本格式的数据占用的存储空间少 20％。

1. （可选）要使用 Hive 兼容的 S3 前缀，请选择 **Hive-compatible S3 prefix（Hive 兼容的 S3 前缀）**、**Enable（启用）**。

1. （可选）要每小时对流日志进行分区，请选择 **Every 1 hour（60 mins）（每 1 小时（60 分钟））**。

1. （可选）要向流日志添加标签，请选择 **Add new tag（添加新标签）**并指定标签键和值。

1. 选择 **Create flow log（创建流日志）**。

**使用命令行创建发布到 Amazon S3 的流日志**

使用以下命令之一：
+ [create-flow-logs](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-flow-logs.html)（AWS CLI）
+ [New-EC2FlowLog](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2FlowLog.html)（AWS Tools for Windows PowerShell）

以下 AWS CLI 示例将创建流日志，以捕获指定 VPC 的所有流量并将流日志传输到指定 Amazon S3 存储桶。`--log-format` 参数指定流日志记录的自定义格式。

```
aws ec2 create-flow-logs --resource-type VPC --resource-ids vpc-00112233344556677 --traffic-type ALL --log-destination-type s3 --log-destination arn:aws:s3:::flow-log-bucket/custom-flow-logs/ --log-format '${version} ${vpc-id} ${subnet-id} ${instance-id} ${srcaddr} ${dstaddr} ${srcport} ${dstport} ${protocol} ${tcp-flags} ${type} ${pkt-srcaddr} ${pkt-dstaddr}'
```