

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

# AWS Transit Gateway，亚马逊数据 Firehose 中的流量日志记录
<a name="flow-logs-kinesis"></a>

**Topics**
+ [用于跨账户传输的 IAM 角色](#flow-logs-kinesis-iam)
+ [创建源账户角色](flowlog-fh-create-source.md)
+ [创建目的地账户角色](flowlog-fh-create-destination.md)
+ [创建发布到 Firehose 的流日志](flow-logs-kinesis-create.md)

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

**先决条件**

流日志数据发布到 Firehose 时，会以纯文本格式发布到 Firehose 传输流。您必须先创建 Firehose 传输流。有关创建传输流的步骤，请参阅 *Amazon Data Firehose 开发人员指南*中的[创建 Amazon Data Firehose 传输流](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html)。

**定价**

将收取标准摄取和传输费用。要了解更多信息，请打开 [Amazon P CloudWatch ric](https://aws.amazon.com/cloudwatch/pricing/) ing，选择**日志**，然后找到**销售日志。**

## 用于跨账户传输的 IAM 角色
<a name="flow-logs-kinesis-iam"></a>

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

**Topics**
+ [源账户角色](#flow-logs-kinesis-iam-role-source)
+ [目的地账户角色](#flow-logs-kinesis-iam-role-destination)

### 源账户角色
<a name="flow-logs-kinesis-iam-role-source"></a>

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

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/mySourceRole",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "delivery.logs.amazonaws.com"
                },
                "StringLike": {
                    "iam:AssociatedResourceARN": [
                        "arn:aws:ec2:us-east-1: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::111122223333:role/AWSLogDeliveryFirehoseCrossAccountRole"
        }
    ]
}
```

------

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

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

****  

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

------

### 目的地账户角色
<a name="flow-logs-kinesis-iam-role-destination"></a>

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

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

****  

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

------

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

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

****  

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

------

# 为 Amazon Data Firehose 创建 Tr AWS ansit Gateway Flow Logs 源账户角色
<a name="flowlog-fh-create-source"></a>

从源账户中，在 AWS Identity and Access Management 控制台中创建源角色。

**创建源账户角色**

1. 登录 AWS 管理控制台 并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中，选择**策略**。

1. 选择**创建策略**。

1. 在创建策略页面上，执行以下操作：

   1. 选择 **JSON**。

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

   1. 选择 **Next: Tags**（下一步：标签）和 **Next: Review**（下一步：审核）。

   1. 输入您策略的名称和可选描述，然后选择 **Create policy**（创建策略）。

1. 在导航窗格中，选择**角色**。

1. 选择**创建角色**。

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

   ```
   "Principal": {
      "Service": "delivery.logs.amazonaws.com"
   },
   ```

1. 在 **Add permissions**（添加权限）页面上，选中您在此过程中先前创建的策略复选框，然后选择 **Next**（下一步）。

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

1. 选择**Create role（创建角色）**。

# 为 Amazon Data Firehose 创建 T AWS ransit Gateway Flow Logs 目标账户角色
<a name="flowlog-fh-create-destination"></a>

在目标账户中，在 AWS Identity and Access Management 控制台中创建目标角色。

**创建目的地账户角色**

1. 登录 AWS 管理控制台 并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中，选择**策略**。

1. 选择**创建策略**。

1. 在创建策略页面上，执行以下操作：

   1. 选择 **JSON**。

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

   1. 选择 **Next: Tags**（下一步：标签）和 **Next: Review**（下一步：审核）。

   1. 输入以开头的策略名称 **AWSLogDeliveryFirehoseCrossAccountRole**，然后选择**创建策略**。

1. 在导航窗格中，选择**角色**。

1. 选择**创建角色**。

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

   ```
   "Principal": {
      "AWS": "arn:aws:iam::source-account:role/mySourceRole"
   },
   ```

1. 在 **Add permissions**（添加权限）页面上，选中您在此过程中先前创建的策略复选框，然后选择 **Next**（下一步）。

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

1. 选择**Create role（创建角色）**。

# 创建发布到 Amazon Data Firehose 的 T AWS ransit Gateway 流日志记录
<a name="flow-logs-kinesis-create"></a>

创建发布到 Amazon Data Firehose 的 Transit Gateway 流日志记录。确保已经为跨账户传输设置了源和目的地 IAM 账户，并且已创建 Firehose 传输流，然后才能创建流日志。请参阅[Amazon Data Firehose 流日志](flow-logs-kinesis.md)了解更多信息。您可以使用亚马逊 VPC 控制台或 CLI AWS 创建 Firehose 流日志。

**使用控制台创建发布到 Firehose 的中转网关流日志**

1. 打开位于 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 的 Amazon VPC 控制台。

1. 在导航窗格中，选择 **Transit gateways**（中转网关）或 **Transit gateway attachments**（中转网关连接）。

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

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

1. 在 **Destination**（目的地）中，选择 **Send to a Firehose Delivery System**（发送到 Firehose 传输系统）。

1. 对于 **Firehose Delivery Stream ARN**（Firehose 传输流 ARN），选择您创建的要在其中发布流日志的传输流的 ARN。

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

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

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

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

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

以下 AWS 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
```

以下 AWS 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
```