本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将流日志发布到 Firehose
流日志可以将流日志数据直接发布到 Firehose。您可以选择将流日志发布到与资源监视器相同的帐户或不同的帐户。
先决条件
发布到 Firehose 时,流日志数据将以纯文本格式发布到 Firehose 传输流。您必须先创建一个 Firehose 传送流。有关创建传输流的步骤,请参阅《亚马逊数据 Firehose 开发者指南》中的创建亚马逊数据 Firehose 传输流。
定价
将收取标准摄取和传输费用。要了解更多信息,请打开 Amazon P CloudWatch ric
用于跨账户传输的 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" } ] }
使用以下步骤从源账户中创建角色。
创建源账户角色
-
登录 Amazon Web Services Management Console 并打开 IAM 控制台,网址为 https://console.aws.amazon.com/iam/
。 -
在导航窗格中,选择策略。
-
选择创建策略。
-
在创建策略页面上,执行以下操作:
-
选择 JSON。
-
将此窗口的内容替换为此部分开头的权限策略。
-
选择 Next: Tags(下一步:标签)和 Next: Review(下一步:审核)。
-
输入您策略的名称和可选描述,然后选择 Create policy(创建策略)。
-
-
在导航窗格中,选择角色。
-
选择 创建角色。
-
对于 Trusted entity type(可信实体类型),选择 Custom trust policy(自定义信任策略)。对于 Custom trust policy(自定义信任策略),将
"Principal": {},
替换为以下内容,以指定日志传输服务。选择下一步。"Principal": { "Service": "delivery.logs.amazonaws.com" },
-
在 Add permissions(添加权限)页面上,选中您在此过程中先前创建的策略复选框,然后选择 Next(下一步)。
-
输入您的角色的名称,并且可以选择提供描述。
-
选择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" } ] }
使用以下步骤从目的地账户中创建角色。
创建目的地账户角色
-
登录 Amazon Web Services Management Console 并打开 IAM 控制台,网址为 https://console.aws.amazon.com/iam/
。 -
在导航窗格中,选择策略。
-
选择创建策略。
-
在创建策略页面上,执行以下操作:
-
选择 JSON。
-
将此窗口的内容替换为此部分开头的权限策略。
-
选择 Next: Tags(下一步:标签)和 Next: Review(下一步:审核)。
-
输入以开头的策略名称 AWSLogDeliveryFirehoseCrossAccountRole,然后选择创建策略。
-
-
在导航窗格中,选择角色。
-
选择 创建角色。
-
对于 Trusted entity type(可信实体类型),选择 Custom trust policy(自定义信任策略)。对于 Custom trust policy(自定义信任策略),将
"Principal": {},
替换为以下内容,以指定日志传输服务。选择下一步。"Principal": { "AWS": "arn:aws:iam::source-account:role/mySourceRole" },
-
在 Add permissions(添加权限)页面上,选中您在此过程中先前创建的策略复选框,然后选择 Next(下一步)。
-
输入您的角色的名称,并且可以选择提供描述。
-
选择Create role(创建角色)。
创建发布到 Firehose 的流日志
使用控制台创建发布到 Firehose 的传输网关流日志
通过 https://console.aws.amazon.com/vpc/
打开 Amazon VPC 控制台。 -
在导航窗格中,选择 Transit gateways(中转网关)或 Transit gateway attachments(中转网关连接)。
-
选中一个或多个中转网关或中转网关连接复选框。
-
选择 Actions(操作)、Create flow log(创建流日志)。
-
在 Destination(目的地)中,选择 Send to a Firehose Delivery System(发送到 Firehose 传输系统)。
-
对于 Firehose Delivery Stream ARN(Firehose 传输流 ARN),选择您创建的要在其中发布流日志的传输流的 ARN。
-
对于 Log record format(日志记录格式),选定流日志记录的格式。
-
要使用默认流日志记录格式,请选择 Amazon default format(亚马逊云科技默认格式)。
-
要创建自定义格式,请选择Custom format(自定义格式)。对于Log format(日志行格式),选择要包括在流日志记录中的字段。
-
-
(可选)要向流日志添加标签,请选择 Add new tag(添加新标签)并指定标签键和值。
-
选择 Create flow log(创建流日志)。
使用命令行工具创建发布到 Firehose 的流日志
使用以下命令之一:
-
create-flow-logs (CLI)Amazon
-
New-EC2FlowLogs (Amazon Tools for Windows PowerShell)
-
CreateFlowLogs(亚马逊 EC2 查询 API)
以下 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