创建发布到 Amazon S3 的流日志 - Amazon Virtual Private Cloud

创建发布到 Amazon S3 的流日志

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

先决条件

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

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:DeleteLogDelivery" ], "Resource": "*" } ] }
使用控制台创建流日志
  1. 请执行以下操作之一:

  2. 选择 Actions(操作)、Create flow log(创建流日志)。

  3. 对于 Filter(筛选条件),指定要记录的 IP 流量数据的类型。

    • 已接受 – 仅记录接受的流量。

    • 已拒绝 – 仅记录拒绝的流量。

    • All(所有流量)– 记录接受的和拒绝的流量。

  4. 对于 Maximum aggregation interval(最大聚合时间间隔),选择捕获流并聚合到一个流日志记录中的最大时间段。

  5. 对于 Destination (目标),选择 Send to an Amazon S3 bucket (发送到 Amazon S3 存储桶)

  6. 对于 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 存储桶权限

  7. 对于 Log record format(日志记录格式),选定流日志记录的格式。

    • 要使用默认流日志记录格式,请选择 AWS default format(亚马逊云科技默认格式)

    • 要创建自定义格式,请选择Custom format(自定义格式)。对于Log format(日志行格式),选择要包括在流日志记录中的字段。

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

  9. 对于 Log file format(日志文件格式),指定日志文件的格式。

    • Text – 纯文本。这是默认格式。

    • Parquet – Apache Pparquet 是一种列式数据格式。与对纯文本数据的查询相比,对 Passic 格式的数据进行查询速度快 10 到 100 倍。使用 Gzip 压缩的 Parquet 格式的数据比 Gzip 压缩的纯文本格式的数据占用的存储空间少 20%。

  10. (可选)要使用 Hive 兼容的 S3 前缀,请选择 Hive-compatible S3 prefix(Hive 兼容的 S3 前缀)Enable(启用)

  11. (可选)要每小时对流日志进行分区,请选择 Every 1 hour(60 mins)(每 1 小时(60 分钟))

  12. (可选)要向流日志添加标签,请选择 Add new tag(添加新标签)并指定标签键和值。

  13. 选择 Create flow log(创建流日志)

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

使用以下命令之一:

以下 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}'