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

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

将流日志发布到 Firehose

流日志可以将流日志数据直接发布到 Firehose。您可以选择将流日志发布到与资源监视器相同的帐户或不同的帐户。

先决条件

发布到 Firehose 时,流日志数据将以纯文本格式发布到 Firehose 传输流。您必须先创建一个 Firehose 传送流。有关创建传输流的步骤,请参阅《亚马逊数据 Firehose 开发者指南》中的创建亚马逊数据 Firehose 传送流

定价

将收取标准摄取和传输费用。要了解更多信息,请打开 Amazon P CloudWatch ric ing,选择日志,然后找到销售日志。

用于跨账户传输的 IAM 角色

当您发布到 Kinesis Data Firehose 时,您可以选择与要监控的资源位于同一账户(源账户)或不同账户(目的地账户)中的传输流。要允许跨账户向 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:transit-gateway/tgw-0fb8421e2da853bf" ] } } }, { "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. 登录 Amazon Web Services Management Console 并打开 IAM 控制台,网址为 https://console.aws.amazon.com/iam/

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

  3. 选择创建策略

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

    1. 选择 JSON

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

    3. 选择 Next: Tags(下一步:标签)和 Next: Review(下一步:审核)。

    4. 输入您策略的名称和可选描述,然后选择 Create policy(创建策略)。

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

  6. 选择 创建角色

  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(创建角色)

目的地账户角色

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

{ "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. 登录 Amazon Web Services Management Console 并打开 IAM 控制台,网址为 https://console.aws.amazon.com/iam/

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

  3. 选择创建策略

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

    1. 选择 JSON

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

    3. 选择 Next: Tags(下一步:标签)和 Next: Review(下一步:审核)。

    4. 输入以开头的策略名称 AWSLogDeliveryFirehoseCrossAccountRole,然后选择创建策略

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

  6. 选择 创建角色

  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(创建角色)

创建发布到 Firehose 的流日志

使用控制台创建发布到 Firehose 的传输网关流日志
  1. 通过 https://console.aws.amazon.com/vpc/ 打开 Amazon VPC 控制台。

  2. 在导航窗格中,选择 Transit gateways(中转网关)或 Transit gateway attachments(中转网关连接)。

  3. 选中一个或多个中转网关或中转网关连接复选框。

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

  5. Destination(目的地)中,选择 Send to a Firehose Delivery System(发送到 Firehose 传输系统)。

  6. 对于 Firehose Delivery Stream ARN(Firehose 传输流 ARN),选择您创建的要在其中发布流日志的传输流的 ARN。

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

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

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

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

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

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

使用以下命令之一:

以下 Amazon CLI 示例创建了一个流日志,用于捕获传输网关信息并将流日志传送到指定的 Firehose 传输流。

aws ec2 create-flow-logs \ --resource-type TransitGateway \ --resource-ids tgw-1a2b3c4d \ --log-destination-type kinesis-data-firehose \ --log-destination arn:aws:firehose:us-east-1:123456789012:deliverystream:flowlogs_stream

以下 Amazon CLI 示例创建了一个流日志,用于捕获公交网关信息,并将流日志传送到源账户的其他 Firehose 传输流。

aws ec2 create-flow-logs \ --resource-type TransitGateway \ --resource-ids gw-1a2b3c4d \ --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