将流日志发布到 Amazon Data Firehose - Amazon Virtual Private Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

将流日志发布到 Amazon Data Firehose

流日志可以将流日志数据直接发布到 Amazon Data Firehose。

流日志数据发布到 Amazon Data Firehose 时,会以纯文本格式发布到 Amazon Data Firehose 传输流。

定价

将收取标准摄取和传输费用。有关更多信息,请打开 Amazon CloudWatch Pricing(Amazon CloudWatch 定价),选择 Logs(日志),找到 Vended Logs(已出售日志)。

用于跨账户传输的 IAM 角色

发布到 Amazon Data Firehose 时,您可以选择与要监控的资源位于同一账户(源账户)或不同账户(目的地账户)中的传输流。要启用跨账户将流日志传输到 Amazon Data Firehose,您必须在源账户中创建 IAM 角色,并在目的地账户中创建 IAM 角色。

源账户角色

在源账户中,创建授予以下权限的角色。在此示例中,角色的名称为 mySourceRole,但您也可以为该角色选择其他名称。最后一条语句允许目的地账户中的角色代入该角色。条件语句确保该角色仅传递给日志传输服务,并且仅在监控指定资源时传递。创建策略时,使用条件键 iam:AssociatedResourceARN 指定要监控的 VPC、网络接口或子网。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::source-account:role/mySourceRole", "Condition": { "StringEquals": { "iam:PassedToService": "delivery.logs.amazonaws.com" }, "StringLike": { "iam:AssociatedResourceARN": [ "arn:aws:ec2:region:source-account:vpc/vpc-00112233344556677" ] } } }, { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:DeleteLogDelivery", "logs:ListLogDeliveries", "logs:GetLogDelivery" ], "Resource": "*" }, { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::destination-account:role/AWSLogDeliveryFirehoseCrossAccountRole" } ] }

确保该角色具有以下信任策略,允许日志传输服务代入该角色。

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

使用以下步骤从源账户中创建角色。

创建源账户角色
  1. 打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择策略

  3. 选择创建策略

  4. 创建策略页面上,执行以下操作:

    1. 选择 JSON

    2. 将此窗口的内容替换为此部分开头的权限策略。

    3. 选择下一步

    4. 输入您的策略名称以及可选的描述和标签,然后选择创建策略

  5. 在导航窗格中,选择角色

  6. 选择 Create role(创建角色)。

  7. 对于 Trusted entity type(可信实体类型),选择 Custom trust policy(自定义信任策略)。对于 Custom trust policy(自定义信任策略),将 "Principal": {}, 替换为以下内容,以指定日志传输服务。选择下一步

    "Principal": { "Service": "delivery.logs.amazonaws.com" },
  8. Add permissions(添加权限)页面上,选中您在此过程中先前创建的策略复选框,然后选择 Next(下一步)。

  9. 输入您的角色的名称,并且可以选择提供描述。

  10. 选择Create role(创建角色)

目的地账户角色

在目的地账户中,创建名称以 AWSLogDeliveryFirehoseCrossAccountRole 开头的角色。该角色必须授予以下权限。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole", "firehose:TagDeliveryStream" ], "Resource": "*" } ] }

确保该角色具有以下信任策略,允许您在源账户中创建的角色代入该角色。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account:role/mySourceRole" }, "Action": "sts:AssumeRole" } ] }

使用以下步骤从目的地账户中创建角色。

创建目的地账户角色
  1. 打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择策略

  3. 选择创建策略

  4. 创建策略页面上,执行以下操作:

    1. 选择 JSON

    2. 将此窗口的内容替换为此部分开头的权限策略。

    3. 选择下一步

    4. 输入以 AWSLogDeliveryFirehoseCrossAccountRole 为开头的策略名称,然后选择 Create policy(创建策略)。

  5. 在导航窗格中,选择角色

  6. 选择 Create role(创建角色)。

  7. 对于 Trusted entity type(可信实体类型),选择 Custom trust policy(自定义信任策略)。对于 Custom trust policy(自定义信任策略),将 "Principal": {}, 替换为以下内容,以指定源账户角色。选择下一步

    "Principal": { "AWS": "arn:aws:iam::source-account:role/mySourceRole" },
  8. Add permissions(添加权限)页面上,选中您在此过程中先前创建的策略复选框,然后选择 Next(下一步)。

  9. 输入您的角色的名称,并且可以选择提供描述。

  10. 选择Create role(创建角色)

创建发布到 Amazon Data Firehose 的流日志

您可以为 VPC、子网或网络接口创建流日志。

先决条件
创建发布到 Amazon Data Firehose 的流日志
  1. 请执行以下操作之一:

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

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

    • Accepted(已接受)– 仅记录接受的流量

    • Rejected(已拒绝)– 仅记录拒绝的流量

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

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

  5. 对于 Destination(目的地),请选择下列选项之一:

    • 发送到同一个账户中的 Amazon Data Firehose – 传输流和要监控的资源位于同一账户中。

    • 发送到不同账户中的 Amazon Data Firehose – 传输流和要监控的资源位于不同账户中。

  6. 对于 Amazon Data Firehose 流名称,选择您创建的传输流。

  7. [仅限跨账户传输] 对于 IAM roles(IAM 角色),指定所需角色(请参阅 用于跨账户传输的 IAM 角色)。

  8. (可选)选择添加标签以将标签应用于流日志。

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

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

使用以下命令之一:

以下 Amazon CLI 示例将创建流日志,用于捕获指定 VPC 的所有流量,并将流日志传输到同一账户中的指定 Amazon Data Firehose 传输流。

aws ec2 create-flow-logs --traffic-type ALL \ --resource-type VPC \ --resource-ids vpc-00112233344556677 \ --log-destination-type kinesis-data-firehose \ --log-destination arn:aws:firehose:us-east-1:123456789012:deliverystream:flowlogs_stream

以下 Amazon CLI 示例将创建流日志,用于捕获指定 VPC 的所有流量,并将流日志传输到不同账户中的指定 Amazon Data Firehose 传输流。

aws ec2 create-flow-logs --traffic-type ALL \ --resource-type VPC \ --resource-ids vpc-00112233344556677 \ --log-destination-type kinesis-data-firehose \ --log-destination arn:aws:firehose:us-east-1:123456789012:deliverystream:flowlogs_stream \ --deliver-logs-permission-arn arn:aws:iam::source-account:role/mySourceRole \ --deliver-cross-account-role arn:aws:iam::destination-account:role/AWSLogDeliveryFirehoseCrossAccountRole

处理 Amazon Data Firehose 中的流日志记录

您可以从为传输流配置的目的地获取流日志数据。