

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# AWS 傳輸閘道流程日誌
<a name="tgw-flow-logs"></a>

傳輸閘道流量日誌是 AWS 傳輸閘道的一項功能，可讓您擷取進出傳輸閘道之 IP 流量的相關資訊。流程日誌資料可以發佈至 Amazon CloudWatch Logs、Amazon S3 或 Firehose。建立流量日誌之後，您可以在選擇的目標中擷取及檢視其資料。流量日誌資料是在網路流量路徑之外收集，因此不會影響網路輸送量或延遲。您可以建立或刪除流量日誌，而不會影響網路效能。傳輸閘道流量日誌擷取僅與傳輸閘道相關的資訊，如 [傳輸閘道流量日誌記錄](#flow-log-records) 中所述。如果您想要擷取您 VPC 中傳入和傳出網路介面之 IP 流量資訊，請使用 VPC 流量日誌。如需詳細資訊，請參閱 *Amazon VPC 使用者指南*中的[使用 VPC 流量日誌記錄 IP 流量](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)。

**注意**  
若要建立傳輸閘道流程日誌，您必須是傳輸閘道的擁有者。如果您不是擁有者，傳輸閘道擁有者必須授予您許可。

所監控傳輸閘道的流量日誌將記錄為*流量日誌記錄*，即由描述流量的欄位組成的日誌事件。如需詳細資訊，請參閱[傳輸閘道流量日誌記錄](#flow-log-records)。

若要建立流量日誌，您要指定：
+ 要建立流量日誌的資源
+ 流量日誌資料的發佈目標

在您建立流量日誌之後，其可能需要數分鐘的時間，才會開始收集資料並將資料發佈至選擇的目標。流量日誌不會擷取您傳輸閘道的即時日誌串流。

您可以將標籤套用至流量日誌。每個標籤皆包含由您定義的一個索引鍵與一個選用值。標籤可協助您整理流量日誌，例如依據用途或擁有者整理日誌。

如果您不再需要流量日誌，即可將其刪除。刪除流量日誌會停用資源的流量日誌服務，並且將不會再建立新的流量日誌記錄或將其發佈至 CloudWatch Logs 或 Amazon S3。刪除流量日誌不會刪除傳輸閘道的任何現有流量日誌記錄或日誌串流 (適用於 CloudWatch Logs) 或日誌檔案物件 (適用於 Amazon S3)。若要刪除現有的日誌串流，請使用 CloudWatch Logs 主控台。若要刪除現有的檔案物件，請使用 Amazon S3 主控台。在您刪除流量日誌之後，它可能需要數分鐘的時間，才會停止收集資料。如需詳細資訊，請參閱[刪除 AWS 傳輸閘道流量日誌記錄](delete-flow-log.md)。

您可以為傳輸閘道建立流程日誌，將資料發佈至 CloudWatch Logs、Amazon S3 或 Amazon Data Firehose。如需詳細資訊，請參閱下列內容：
+  [建立發佈至 CloudWatch Logs 的流程日誌 ](flow-logs-cwl-create-flow-log.md)
+ [建立發佈至 Amazon S3 的流程日誌](flowlog-s3-create.md)
+ [建立發佈至 Firehose 的流程日誌](flow-logs-kinesis-create.md)

## 限制
<a name="flow-logs-limits"></a>

下列限制適用於傳輸閘道流量日誌：
+  不支援多點傳送流量。
+ 不支援連線附件。所有 Connect 流程日誌都會出現在傳輸附件下，因此必須在傳輸閘道或 Connect 傳輸附件上啟用。
+ 傳輸閘道流量日誌支援每個帳戶每個資源最多 250 個訂閱。若要在已達到此限制的資源上建立其他訂閱，您必須先刪除現有的訂閱。

## 傳輸閘道流量日誌記錄
<a name="flow-log-records"></a>

流量日誌記錄代表您傳輸閘道中的網路流。每筆記錄都是包含欄位的字串，其中欄位會由空格分隔。記錄包含流量不同元件的值，例如來源、目標和通訊協定。

建立流量日誌時，您可以使用流量日誌記錄的預設格式，或指定自訂格式。

**Topics**
+ [預設格式](#flow-logs-default)
+ [自訂格式](#flow-logs-custom)
+ [可用的欄位](#flow-logs-fields)

### 預設格式
<a name="flow-logs-default"></a>

使用預設格式時，流量日誌記錄會依照[可用欄位](#flow-logs-fields)表格中顯示的順序，包括所有版本 2 至版本 6 欄位。您無法自訂或變更預設格式。若要擷取其他欄位或不同的欄位子集，請改為指定自訂格式。

### 自訂格式
<a name="flow-logs-custom"></a>

使用自訂格式時，您可以指定流量日誌記錄中包含哪些欄位以及順序。這樣可讓您建立專門針對需求的流量日誌，省略不相關的欄位。使用自訂格式可以減少個別處理程序從已發佈的流量日誌擷取特定資訊的需求。您可指定任何數量的可用流量日誌欄位，但至少必須指定一個。

### 可用的欄位
<a name="flow-logs-fields"></a>

下表描述傳輸閘道流量日誌記錄的所有可用欄位。**Version** (版本) 欄表示導入此欄位的版本。

將流量日誌資料發佈到 Amazon S3 時，欄位的資料類型取決於流量日誌格式。如果格式為純文字，則所有欄位均為 STRING 類型。如果格式為 Parquet，請參閱欄位資料類型的資料表。

如果欄位不適用或無法計算特定記錄，則記錄會針對該項目顯示一個 '-' 符號。非直接來自封包標頭的中繼資料欄位是最佳近似值，而且它們的值可能會遺失或不正確。


| 欄位 | 描述 | 版本 | 
| --- | --- | --- | 
|  version  |  表示導入此欄位的版本。預設格式包括所有版本 2 欄位，其顯示順序與表格中的順序相同。 **Parquet 資料類型：**INT\$132  | 2 | 
| resource-type | 建立訂閱的資源類型。對於傳輸閘道流量日誌，這會是 TransitGateway。Parquet 資料類型：STRING | 6 | 
| account-id |  來源傳輸閘道擁有者的 AWS 帳戶 ID。 **Parquet 資料類型：**STRING  | 2 | 
|  tgw-id  | 正在記錄流量的傳輸閘道的 ID。**Parquet 資料類型：**STRING | 6 | 
|  tgw-attachment-id  | 正在記錄流量的傳輸閘道連接的 ID。**Parquet 資料類型：**STRING | 6 | 
|  tgw-src-vpc-account-id  |  來源 VPC 流量的 AWS 帳戶 ID。 **Parquet 資料類型：**STRING   | 6 | 
|  tgw-dst-vpc-account-id  |  目的地 VPC 流量的 AWS 帳戶 ID。 **Parquet 資料類型：**STRING   | 6 | 
|  tgw-src-vpc-id  |  傳輸閘道的來源 VPC ID **Parquet 資料類型：**STRING  | 6 | 
|  tgw-dst-vpc-id  |  傳輸閘道的目標 VPC ID。 **Parquet 資料類型：**STRING   | 6 | 
|  tgw-src-subnet-id  |  傳輸閘道來源流量的子網路 ID。 **Parquet 資料類型：**STRING   | 6 | 
|  tgw-dst-subnet-id  |  傳輸閘道目標流量的子網路 ID。 **Parquet 資料類型：**STRING   | 6 | 
| tgw-src-eni |  面向流程的來源傳輸閘道連接 ENI 的 ID。 **Parquet 資料類型：**STRING   | 6 | 
| tgw-dst-eni | 面向流程的目的地傳輸閘道連接 ENI 的 ID。**Parquet 資料類型：**STRING  | 6 | 
|  tgw-src-az-id  |  可用區域的 ID，其中包含記錄流量的來源傳輸閘道。如果流量來自子位置，記錄會顯示此欄位的 '-' 符號。 **Parquet 資料類型：**STRING  | 6 | 
|  tgw-dst-az-id  |  可用區域的 ID，其中包含記錄流量的目標傳輸閘道。 **Parquet 資料類型：**STRING  | 6 | 
| tgw-pair-attachment-id |   根據流動方向，這是流程的傳出和傳入連接 ID。 **Parquet 資料類型：**STRING  | 6 | 
|  srcaddr  |  傳入流量的來源位址。 **Parquet 資料類型：**STRING  | 2 | 
|  dstaddr  |  傳出流量的目的地位址。 **Parquet 資料類型：**STRING  | 2 | 
|  srcport  |  流量的來源連接埠。 **Parquet 資料類型：**INT\$132   | 2 | 
|  dstport  |  流量的目標連接埠。 **Parquet 資料類型：**INT\$132  | 2 | 
|  protocol  |  流量的 IANA 通訊協定號碼。如需詳細資訊，請參閱[指派的網際網路通訊協定號碼](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)。 **Parquet 資料類型：**INT\$132  | 2 | 
|  packets  |  在流量期間傳輸的封包數。 **Parquet 資料類型：**INT\$164  | 2 | 
|  bytes  |  在流量期間傳輸的位元組數。 **Parquet 資料類型：**INT\$164  | 2 | 
|  start  |  彙總時間間隔內接收到第一個流量封包的時間 (以 Unix 秒為單位)。這個時間最長可能是在傳輸閘道上傳送或接收封包之後 60 秒。 **Parquet 資料類型：**INT\$164  | 2 | 
|  end  |  彙總時間間隔內接收到最後一個流量封包的時間 (以 Unix 秒為單位)。這個時間最長可能是在傳輸閘道上傳送或接收封包之後 60 秒。 **Parquet 資料類型：**INT\$164  | 2 | 
| log-status |  流量日誌的狀態： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/vpc/latest/tgw/tgw-flow-logs.html) **Parquet 資料類型：**STRING  | 2 | 
| type |  流量類型。可能的值為：IPv4 \$1 IPv6 \$1 EFA。如需詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的 [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html)。 **Parquet 資料類型：**STRING  | 3 | 
|  packets-lost-no-route  |  封包因未指定路由而遺失。 **Parquet 資料類型：**INT\$164   | 6 | 
|  packets-lost-blackhole  |  封包因黑洞而遺失。 **Parquet 資料類型：**INT\$164   | 6 | 
|  packets-lost-mtu-exceeded  |  封包因大小超過 MTU 而遺失。 **Parquet 資料類型：**INT\$164   | 6 | 
|  packets-lost-ttl-expired  |  封包因存留時間過期而遺失。 **Parquet 資料類型：**INT\$164   | 6 | 
|  tcp-flags  |  下列 TCP 標記的位元遮罩值： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/vpc/latest/tgw/tgw-flow-logs.html)  若流量日誌項目僅包含 ACK 封包，則標記值為 0，而不是 16。  如需有關 TCP 標記的一般資訊 (如 FIN、SYN 和 ACK 等標記的含義)，請參閱 Wikipedia 上的 [TCP segment structure](https://en.wikipedia.org/wiki/Transmission_Control_Protocol#TCP_segment_structure) (TCP 區段結構)。 彙總時間間隔內的 TCP 標記可用 OR 運算彙總。針對短暫連線，標記可能和流量日誌記錄設在同一行，例如，SYN-ACK 和 FIN 為 19，而 SYN 和 FIN 為 3。 **Parquet 資料類型：**INT\$132  | 3 | 
|  region  |  包含記錄流量的傳輸閘道的區域。 **Parquet 資料類型：**STRING  | 4 | 
|  flow-direction  |  關於擷取流量的介面的流量方向。可能的值為：ingress \$1 egress。 **Parquet 資料類型：**STRING  | 5 | 
|  pkt-src-aws-service  |  srcaddr 如果來源 [IP 地址是 服務，則 的 IP 地址範圍](https://docs.aws.amazon.com/vpc/latest/userguide/aws-ip-ranges.html)子集名稱。 AWS 可能的值為：AMAZON \$1 AMAZON\$1APPFLOW \$1 AMAZON\$1CONNECT \$1 API\$1GATEWAY \$1 CHIME\$1MEETINGS \$1 CHIME\$1VOICECONNECTOR \$1 CLOUD9 \$1 CLOUDFRONT \$1 CODEBUILD \$1 DYNAMODB \$1 EBS \$1 EC2 \$1 EC2\$1INSTANCE\$1CONNECT \$1 GLOBALACCELERATOR \$1 KINESIS\$1VIDEO\$1STREAMS \$1 ROUTE53 \$1 ROUTE53\$1HEALTHCHECKS \$1 ROUTE53\$1HEALTHCHECKS\$1PUBLISHING \$1 ROUTE53\$1RESOLVER \$1 S3 \$1 WORKSPACES\$1GATEWAYS。 **Parquet 資料類型：**STRING  | 5 | 
| pkt-dst-aws-service | 如果目的地 IP 地址是 AWS 服務，則dstaddr欄位的 IP 地址範圍子集名稱。如需可能值的清單，請參閱 pkt-src-aws-service 欄位。Parquet 資料類型：STRING | 5 | 

## 控制流量日誌的使用方式
<a name="controlling-use-of-flow-logs"></a>

根據預設， 使用者沒有使用流程日誌的許可。您可以建立使用者政策，將建立、描述和刪除流程日誌的許可授予使用者。如需詳細資訊，請參閱 *Amazon EC2 API 參考*中的[授予 IAM 使用者需要的 Amazon EC2 資源許可](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ec2-api-permissions.html)。

以下是授予使用者建立、描述、刪除流量日誌等完整許可的範例政策。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DeleteFlowLogs",
        "ec2:CreateFlowLogs",
        "ec2:DescribeFlowLogs"
      ],
      "Resource": "*"
    }
  ]
}
```

------

視要發佈至 CloudWatch Logs 或 Amazon S3 而定，您將需要一些額外的 IAM 角色與許可組態。如需詳細資訊，請參閱[AWS Amazon CloudWatch Logs 中的傳輸閘道流程日誌記錄](flow-logs-cwl.md)及[AWS Amazon S3 中的傳輸閘道流程日誌記錄](flow-logs-s3.md)。

## 傳輸閘道流量日誌定價
<a name="flow-logs-tgw-pricing"></a>

若發佈傳輸閘道流量日誌，會套用付費日誌的資料擷取和儲存費用。如需有關發佈付費記錄時的定價詳細資訊，請開啟 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)，在**付費方案**下，選取**日誌**並尋找**付費日誌**。

# 建立或更新 AWS Transit Gateway 流程日誌的 IAM 角色
<a name="create-flow-logs-role"></a>

您可以使用 AWS Identity and Access Management 主控台更新現有角色，或使用下列程序來建立新的角色，以搭配流程日誌使用。

**建立流量日誌的 IAM 角色**

1. 前往網址 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在導覽窗格中，選擇 **Roles** (角色)、**Create role** (建立新角色)。

1. 對於 **Select type of trusted entity (選取信任的實體類型)**，選擇 **AWS service ( 服務)**。在 **Use case** (使用案例) 中選擇 **EC2**。選擇**下一步**。

1. 在 **Add permissions** (新增許可) 頁面上，選擇 **Next: Tags** (下一步：標籤) 並選擇性新增標籤。選擇**下一步**。

1. 在名稱、檢閱和建立頁面上，輸入角色的名稱，並選擇性地提供**描述**。選擇建**立角色**。

1. 選擇您角色的名稱。對於 **Add permissions** (新增許可)，請選擇 **Create Inline Policy** (建立內嵌政策)，然後選擇 **JSON** 索引標籤。

1. 從 [用於將流量日誌發佈至 CloudWatch Logs 的 IAM 角色](flow-logs-cwl.md#flow-logs-iam) 複製第一個政策，然後在視窗中貼上。選擇 **Review policy** (檢閱政策)。

1. 輸入您政策的名稱，然後選擇 **Create policy** (建立政策)。

1. 選取您角色的名稱。針對 **Trust relationships** (信任關聯)，選擇 **Edit trust relationship** (編輯信任關聯)。在現有的政策文件中，將服務從 `ec2.amazonaws.com` 變更為 `vpc-flow-logs.amazonaws.com`。選擇 **Update Trust Policy** (更新信任政策)。

1. 在 **Summary (摘要)** 頁面上，記下您角色的 ARN。當您建立流量日誌時，會需要此 ARN。

# AWS Amazon CloudWatch Logs 中的傳輸閘道流程日誌記錄
<a name="flow-logs-cwl"></a>

流量日誌可以將流量日誌資料直接發佈到 Amazon CloudWatch。

發佈至 CloudWatch Logs 時，流量日誌資料會發佈至日誌群組，該日誌群組中每個傳輸閘道具有唯一日誌串流。日誌串流包含流量日誌記錄。您可以建立多個流量日誌，將資料發佈至相同的日誌群組。若相同日誌群組中的一或多個流量日誌內存在相同的傳輸閘道，它便會擁有一個合併日誌串流。若您指定其中一個流量日誌應擷取拒絕流量，並且指定其他流量日誌應擷取接受流量，則合併日誌串流便會擷取所有流量。

當您將流量日誌發佈到 CloudWatch Logs 時，會套用付費日誌的資料擷取和存檔費用。如需詳細資訊，請參閱 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)。

在 CloudWatch Logs 中，**timestamp** 欄位對應到流量日誌記錄中擷取的開始時間。**ingestionTime** 欄位提供 CloudWatch Logs 收到流量日誌記錄的日期和時間。該時間戳記晚於流量日誌記錄中擷取的結束時間。

如需 CloudWatch Logs 的詳細資訊，請參閱*《Amazon CloudWatch Logs 使用者指南》*中的[傳送至 CloudWatch Logs 的日誌](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-CWL)。

**Topics**
+ [用於將流量日誌發佈至 CloudWatch Logs 的 IAM 角色](#flow-logs-iam)
+ [IAM 使用者傳遞角色的許可](#flow-logs-iam-user)
+ [建立發佈至 CloudWatch Logs 的流程日誌](flow-logs-cwl-create-flow-log.md)
+ [檢視流程日誌記錄](view-flow-log-records.md)
+ [處理流程日誌記錄](process-records-cwl.md)

## 用於將流量日誌發佈至 CloudWatch Logs 的 IAM 角色
<a name="flow-logs-iam"></a>

與您流量日誌關聯的 IAM 角色必須具有足夠的許可，將流量日誌發佈到 CloudWatch Logs 中指定的日誌群組。IAM 角色必須屬於您的 AWS 帳戶。

與您 IAM 角色連線的 IAM 政策必須包含至少下列任一許可：

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogGroups",
        "logs:DescribeLogStreams"
      ],
      "Resource": "*"
    }
  ]
}
```

------

同時確認您的角色具有允許流量日誌服務擔任角色的信任關係。

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

****  

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

------

建議您使用 `aws:SourceAccount` 和 `aws:SourceArn` 條件金鑰，保護自己免受[混淆代理人問題](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)的困擾。例如，您可以將下列條件區塊新增至先前的信任政策。來源帳戶是流量日誌的擁有者，且來源 ARN 是流量日誌 ARN。如果您不清楚流量日誌 ID，您可以使用萬用字元 (\$1) 取代該部分的 ARN，然後在建立流量日誌之後更新政策。

```
"Condition": {
    "StringEquals": {
        "aws:SourceAccount": "account_id"
    },
    "ArnLike": {
        "aws:SourceArn": "arn:aws:ec2:region:account_id:vpc-flow-log/flow-log-id"
    }
}
```

## IAM 使用者傳遞角色的許可
<a name="flow-logs-iam-user"></a>

使用者也必須具備許可，能使用與此流量日誌相關聯之 IAM 角色的 `iam:PassRole` 動作。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "arn:aws:iam::111122223333:role/flow-log-role-name"
        }
    ]
}
```

------

# 建立發佈至 的 AWS Transit Gateway Flow Logs 記錄 Amazon CloudWatch Logs
<a name="flow-logs-cwl-create-flow-log"></a>

您可以建立傳輸閘道的流量日誌。如果您以 IAM 使用者身分執行這些步驟，請確定您擁有使用 `iam:PassRole` 動作的許可。如需詳細資訊，請參閱[IAM 使用者傳遞角色的許可](flow-logs-cwl.md#flow-logs-iam-user)。

您可以使用 Amazon VPC 主控台或 CLI 建立 Amazon CloudWatch AWS 流程日誌。

**使用主控台建立傳輸閘道流量日誌**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)：// 開啟 Amazon VPC 主控台。

1. 在導覽窗格中，選擇 **Transit gateways** (傳輸閘道)。

1. 選擇一或多個傳輸閘道的核取方塊，然後選擇**動作**、**建立流程日誌**。

1. 針對 **Destination** (目標)，選擇 **Send to CloudWatch Logs** (傳送至 CloudWatch Logs)。

1. 針對 **目標日誌群組**，請選擇當前目標日誌群組的名稱。
**注意**  
如果目標日誌群組尚不存在，在此欄位中輸入新名稱將會建立新的目標日誌群組。

1. 在 **IAM 角色** 中指定具備將日誌發佈至 CloudWatch Logs 之許可的角色名稱。

1. 對於 **Log record format** (日誌記錄格式)，請選取流量日誌記錄的格式。
   + 若要使用預設格式，請選擇 **AWS default format** ( 預設格式)。
   + 若要使用自訂格式，請選擇 **Custom format** (自訂格式)，然後從 **Log format** (日誌格式) 選取欄位。

1. (選用) 選擇 **Add new tag** (新增標籤) 將標籤套用至流量日誌。

1. 選擇 **Create flow log** (建立流量日誌)。

**使用命令列建立流量日誌**

請使用下列其中一個命令。
+ [create-flow-logs](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-flow-logs.html) (AWS CLI)
+ [新的 EC2 流量日誌](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2FlowLog.html) (AWS Tools for Windows PowerShell)

下列 AWS CLI 範例會建立擷取傳輸閘道資訊的流程日誌。流量日誌交付至 CloudWatch Logs 中稱為 `my-flow-logs` 的日誌群組，位於帳戶 123456789101，使用 IAM 角色 `publishFlowLogs`。

```
aws ec2 create-flow-logs --resource-type TransitGateway --resource-ids tgw-1a2b3c4d --log-group-name my-flow-logs --deliver-logs-permission-arn arn:aws:iam::123456789101:role/publishFlowLogs 
```

# 在 Amazon CloudWatch 中檢視 AWS 傳輸閘道流量日誌記錄
<a name="view-flow-log-records"></a>

依據所選擇的目標類型，您可以使用 CloudWatch Logs 主控台或 Amazon S3 主控台檢視您的流量日誌記錄。在您建立流量日誌之後，可能需要數分鐘的時間，才能在主控台中看到它。

**檢視發佈至 CloudWatch Logs 的流量日誌記錄**

1. 在 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中選擇 **Logs** (日誌)，然後選取包含您流量日誌的日誌群組。隨即顯示每個傳輸閘道日誌串流的清單。

1.  選取包含您希望檢視流量日誌記錄的傳輸閘道 ID 的日誌串流。如需詳細資訊，請參閱[傳輸閘道流量日誌記錄](tgw-flow-logs.md#flow-log-records)。

# 在 Amazon CloudWatch Logs 中處理 AWS 傳輸閘道流程日誌記錄
<a name="process-records-cwl"></a>

您可以您使用其他由 CloudWatch Logs 收集之日誌事件的相同方式，使用流量日誌記錄。如需監控日誌資料和指標篩選條件的詳細資訊，請參閱《*Amazon CloudWatch 使用者指南*》中的[使用篩選條件從日誌事件建立指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/MonitoringLogData.html)。

## 範例：建立流量日誌的 CloudWatch 指標篩選條件和警報
<a name="flow-logs-cw-alarm-example"></a>

在此範例中，您有一個 `tgw-123abc456bca` 的流量日誌。您希望建立警示，在 1 個小時期間內嘗試透過 TCP 連接埠 22 (SSH) 連線到您的執行個體，其中有 10 次或超過 10 次嘗試遭到拒絕時提醒您。首先，您必須建立符合要建立警示之流量模式的指標篩選條件。然後，您可以建立指標篩選條件的警示。

**建立拒絕 SSH 流量的指標篩選條件，及建立篩選條件的警示**

1. 前往 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中依序選擇 **Logs** (日誌)、**Log groups** (日誌群組)。

1. 選取日誌群組的核取方塊，然後選擇**動作**、**建立指標篩選條件**。

1. 針對 **Filter Pattern** (篩選條件模式)，輸入：

   ```
   [version, resource_type, account_id,tgw_id="tgw-123abc456bca”, tgw_attachment_id, tgw_src_vpc_account_id, tgw_dst_vpc_account_id, tgw_src_vpc_id, tgw_dst_vpc_id, tgw_src_subnet_id, tgw_dst_subnet_id, tgw_src_eni, tgw_dst_eni, tgw_src_az_id, tgw_dst_az_id, tgw_pair_attachment_id, srcaddr= "10.0.0.1", dstaddr, srcport=“80”, dstport, protocol=“6”, packets, bytes,start,end, log_status, type,packets_lost_no_route, packets_lost_blackhole, packets_lost_mtu_exceeded, packets_lost_ttl_expired, tcp_flags,region, flow_direction, pkt_src_aws_service, pkt_dst_aws_service]
   ```

1. 對於 **Select Log Data to Test** (選取要測試的日誌資料)，選取傳輸閘道的日誌串流。(選用) 若要檢視符合篩選條件模式的日誌資料行，請選擇 **Test Pattern** (測試模式)。就緒後，請選擇 **Next** (下一步)。

1. 輸入篩選條件名稱、指標命名空間和指標名稱。將指標值設定為 **1**。完成後，請選擇 **Next** (下一步)，然後選擇 **Create metric filter** (建立指標篩選條件)。

1. 在導覽窗格中，選擇 **Alarms** (警示)、**All alarms** (所有警示)。

1. 選擇 **Create alarm** (建立警示)。

1. 選擇您建立之指標篩選條件的命名空間。

   可能要過幾分鐘時間，主控台中才會顯示新的指標。

1. 選取您建立的指標名稱，然後選擇 **Select metric** (選取指標)。

1. 如下設定警示，然後選擇 **Next** (下一步)。
   + 在 **Statistic (統計資料)** 中選擇 **Sum (總和)**。這可確保您擷取的是指定時間段的資料點總數。
   + 在 **Period** (時段) 中選擇 **1 hour** (1 小時)。
   + 對於 **Whenever** (隨時)，選擇 **Greater/Equal** (大於/等於)，然後輸入 **10** 作為閾值。
   + 對於 **Additional configuration** (其他組態)、**Datapoints to alarm** (要警示的資料點)，保留預設值 **1**。

1. 對於 **Notification** (通知)，請選取現有的 SNS 主題，或選擇 **Create new topic** (建立新主題) 來建立新主題。選擇**下一步**。

1. 輸入警示的名稱和說明，然後選擇 **Next** (下一步)。

1. 完成設定警示之後，請選擇 **Create alarm** (建立警示)。

# AWS Amazon S3 中的傳輸閘道流程日誌記錄
<a name="flow-logs-s3"></a>

現在流量日誌可將流量日誌資料發佈至 Amazon S3。

當發佈至 Amazon S3 時，流量日誌資料將發佈至您指定的現有 Amazon S3 儲存貯體。所有受監控傳輸閘道的流量日誌記錄，都將發佈至存放在該儲存貯體的一系列日誌檔案物件。

當您將流程日誌發佈至 Amazon S3 時，資料擷取和封存費用會由 Amazon CloudWatch 套用至已結束的日誌。如需已發佈日誌的 CloudWatch 定價詳細資訊，請開啟 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)，選擇**日誌**，然後尋找**已發佈的日誌**。

若要建立用於流量日誌的 Amazon S3 儲存貯體，請參閱《Amazon S3 使用者指南**》中的[建立儲存貯體](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)。

如需有關多個帳戶記錄的詳細資訊，請參閱 AWS 解決方案程式庫中的[中央記錄](https://aws.amazon.com/solutions/implementations/centralized-logging/)。

如需 CloudWatch Logs 的詳細資訊，請參閱*《Amazon CloudWatch Logs 使用者指南》*中的[傳送至 Simple Storage Service (Amazon S3) 的日誌](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-S3)。

**Topics**
+ [流量日誌檔](#flow-logs-s3-path)
+ [將流量日誌發佈至 Amazon S3 的 IAM 委託人的 IAM 政策](#flow-logs-s3-iam)
+ [流量日誌的 Amazon S3 儲存貯體許可](#flow-logs-s3-permissions)
+ [搭配 SSE-KMS 使用的必要金鑰政策](#flow-logs-s3-cmk-policy)
+ [Amazon S3 日誌檔案許可](#flow-logs-file-permissions)
+ [建立來源帳戶角色](flowlog-s3-create-source.md)
+ [建立發佈至 Amazon S3 的流程日誌](flowlog-s3-create.md)
+ [檢視流程日誌記錄](view-flow-log-records-s3.md)
+ [Amazon S3 中的已處理 AWS 傳輸閘道流量日誌記錄](#process-records-s3)

## 流量日誌檔
<a name="flow-logs-s3-path"></a>

VPC 流量日誌功能會收集流量日誌記錄，將這些記錄整合為日誌檔案，然後每隔 5 分鐘將日誌檔案發佈至 Amazon S3 儲存貯體。每個日誌檔皆包含過去五分鐘所記錄之 IP 流量的流量日誌記錄。

日誌檔的大小上限為 75 MB。如果日誌檔案在 5 分鐘內達到檔案大小上限，則流量日誌會停止新增流量日誌記錄。然後，將流量日誌發佈至 Amazon S3 儲存貯體，並建立新的日誌檔案。

在 Amazon S3 中，流量日誌檔案的 **Last modified** (上次修改) 欄位指出檔案上傳至 Amazon S3 儲存貯體的日期和時間。這個時間晚於檔案名稱中的時間戳記，並且會因檔案上傳至 Amazon S3 儲存貯體所花費的時間而有所不同。

**日誌檔案格式**

可為日誌檔案指定下列其中一種格式。每個檔案都會壓縮到單一 Gzip 檔案中。
+ **Text** – 純文字。此為預設格式。
+ **Parquet** – Apache Parquet 是一種單欄資料格式。與純文字的資料查詢相比，Parquet 格式的資料查詢速度快 10 到 100 倍。採用 Gzip 壓縮的 Parquet 格式的資料佔用的儲存空間比使用 Gzip 壓縮的純文字要少 20％。

**日誌檔案選項**

您可以選擇指定下列項目。
+ **Hive 兼容的 S3 前綴** – 啟用 Hive 相容的前置詞，而不是將分割區匯入 Hive 相容的工具。在執行查詢之前，請使用 **MSCK REPAIR TABLE** 命令。
+ **每小時分割** – 如果您有大量的日誌，而且通常針對特定小時進行查詢，則透過每小時分割日誌，可獲得更快的結果並節省查詢成本。

**日誌檔案 S3 儲存貯體結構**  
使用基於流量日誌的 ID、區域、建立日期以及目標選項的資料夾架構，將日誌檔案儲存至指定的 Amazon S3 儲存貯體。

根據預設，檔案會傳遞至下列位置。

```
bucket-and-optional-prefix/AWSLogs/account_id/vpcflowlogs/region/year/month/day/
```

如果您啟用 Hive 相容的 S3 字首，檔案會傳遞至下列位置。

```
bucket-and-optional-prefix/AWSLogs/aws-account-id=account_id/service=vpcflowlogs/aws-region=region/year=year/month=month/day=day/
```

如果您啟用每小時分割，檔案會傳遞到下列位置。

```
bucket-and-optional-prefix/AWSLogs/account_id/vpcflowlogs/region/year/month/day/hour/
```

如果您啟用 Hive 相容的分割，並且每小時分割流量日誌，檔案會傳遞至下列位置。

```
bucket-and-optional-prefix/AWSLogs/aws-account-id=account_id/service=vpcflowlogs/aws-region=region/year=year/month=month/day=day/hour=hour/
```

**日誌檔案名稱**  
日誌檔案的檔案名稱以流量日誌 ID、區域以及建立日期和時間為基礎。檔案名稱使用下列格式。

```
aws_account_id_vpcflowlogs_region_flow_log_id_YYYYMMDDTHHmmZ_hash.log.gz
```

以下是 AWS 帳戶 123456789012 針對 us-east-1 區域中的資源，在 June 20, 2018 的 16:20 UTC 建立的流量日誌的日誌檔案範例。檔案包含結束時間介於 16:20:00 和 16:24:59 的流量日誌記錄。

```
123456789012_vpcflowlogs_us-east-1_fl-1234abcd_20180620T1620Z_fe123456.log.gz
```

## 將流量日誌發佈至 Amazon S3 的 IAM 委託人的 IAM 政策
<a name="flow-logs-s3-iam"></a>

建立流量日誌的 IAM 主體必須具有以下所需的許可，才能將流量日誌發佈至目標 Amazon S3 儲存貯體。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogDelivery",
        "logs:DeleteLogDelivery"
        ],
      "Resource": "*"
    }
  ]
}
```

------

## 流量日誌的 Amazon S3 儲存貯體許可
<a name="flow-logs-s3-permissions"></a>

根據預設，Amazon S3 儲存貯體及其所包含的物件皆為私有。只有儲存貯體擁有者可存取儲存貯體及存放於其中的物件。但是，儲存貯體擁有者可藉由編寫存取政策，將存取權授予其他資源和使用者。

如果建立流量日誌的使用者擁有儲存貯體且具有該儲存貯體的 `PutBucketPolicy` 和 `GetBucketPolicy` 許可，我們就會自動將以下政策連接至該儲存貯體。這個新的自動產生的政策會附加到原始政策。

否則，儲存貯體擁有者必須將此政策新增至儲存貯體、指定流量日誌建立者的 AWS 帳戶 ID，否則流量日誌會建立失敗。如需詳細資訊，請參閱《*Amazon Simple Storage Service 使用者指南*》中的[儲存貯體政策](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html)。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AWSLogDeliveryWrite",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::bucket_name/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control",
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:logs:us-east-1:123456789012:*"
                }
            }
        },
        {
            "Sid": "AWSLogDeliveryCheck",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": [
                "s3:GetBucketAcl"
            ],
            "Resource": "arn:aws:s3:::bucket_name",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:logs:us-east-1:123456789012:*"
                }
            }
        }
    ]
}
```

------

您為 *my-s3-arn* 指定的 ARN 取決於您是否使用與 Hive 相容的 S3 字首。
+ 預設字首

  ```
  arn:aws:s3:::bucket_name/optional_folder/AWSLogs/account_id/*
  ```
+ 與 Hive 相容的 S3 字首

  ```
  arn:aws:s3:::bucket_name/optional_folder/AWSLogs/aws-account-id=account_id/*
  ```

最佳實務是，建議您將這些許可授予日誌交付服務委託人，而不是個別 AWS 帳戶 ARNs。這也是使用 `aws:SourceAccount` 和 `aws:SourceArn` 條件金鑰來保護自己免受[混淆代理人問題](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)的困擾之最佳實務。來源帳戶是流量日誌的擁有者，且來源 ARN 是日誌服務的萬用字元 (\$1) ARN。

## 搭配 SSE-KMS 使用的必要金鑰政策
<a name="flow-logs-s3-cmk-policy"></a>

透過啟用採用 Amazon S3 受管金鑰 (SSE-S3) 的伺服器端加密或採用 KMS Keys (SSE-KMS) 的伺服器端加密，您可以保護 Amazon S3 儲存貯體中的資料。如需詳細資訊，請參閱《*Amazon S3 使用者指南*》中的[使用伺服器端加密保護資料](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html)。

透過 SSE-KMS，您可以使用 AWS 受管金鑰或客戶受管金鑰。透過 AWS 受管金鑰，您無法使用跨帳戶交付。流量日誌是從日誌傳遞帳戶傳遞，因此您必須授予跨帳戶傳遞的存取權。若要授予 S3 儲存貯體的跨帳戶存取權，請使用由客戶管理之金鑰並在啟用儲存貯體加密時指定客戶受管金鑰的 Amazon Resource Name (ARN)。如需詳細資訊，請參閱《*Amazon S3 使用者指南*》中的[使用 AWS KMS指定伺服器端加密](https://docs.aws.amazon.com/AmazonS3/latest/userguide/specifying-kms-encryption.html)。

當您將 SSE-KMS 與由客戶管理之金鑰搭配使用時，您必須將以下內容新增至金鑰的金鑰政策 (而不是 S3 儲存貯體的儲存貯體政策)，以便 VPC 流量日誌可以寫入您的 S3 儲存貯體。

**注意**  
使用 S3 儲存貯體金鑰可讓您透過使用儲存貯體層級金鑰，減少 AWS KMS 對 Encrypt、GenerateDataKey 和 Decrypt 操作的請求，以節省 AWS Key Management Service (AWS KMS) 請求成本。根據設計，利用此儲存貯體層級金鑰的後續請求不會導致 AWS KMS API 請求或根據 AWS KMS 金鑰政策驗證存取權。

```
{
    "Sid": "Allow Transit Gateway Flow Logs to use the key",
    "Effect": "Allow",
    "Principal": {
        "Service": [
            "delivery.logs.amazonaws.com"
        ]
    },
   "Action": [
       "kms:Encrypt",
       "kms:Decrypt",
       "kms:ReEncrypt*",
       "kms:GenerateDataKey*",
       "kms:DescribeKey"
    ],
    "Resource": "*"
}
```

## Amazon S3 日誌檔案許可
<a name="flow-logs-file-permissions"></a>

除了必要的儲存貯體原則之外，Amazon S3 使用存取控制清單 (ACL) 來管理流量日誌所建立之日誌檔案的存取。根據預設，儲存貯體擁有者擁有各個日誌檔案的 `FULL_CONTROL` 許可。日誌交付擁有者與儲存貯體擁有者不同時，就沒有任何許可。日誌交付帳戶擁有 `READ` 與 `WRITE` 許可。如需詳細資訊，請參閱《*Amazon Simple Storage Service 使用者指南*》中的[存取控制清單 (ACL) 概觀](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html)。

# 建立 Amazon S3 的 AWS Transit Gateway Flow Logs 來源帳戶角色
<a name="flowlog-s3-create-source"></a>

從來源帳戶，在 AWS Identity and Access Management 主控台中建立來源角色。

**建立來源帳戶角色**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在導覽窗格中，選擇**政策**。

1. 選擇 **Create policy** (建立政策)。

1. 在 Create policy (建立政策) 頁面上，執行下列動作：

   1. 選擇 **JSON**。

   1. 將此視窗的內容取代為本節開頭的許可政策。

   1. 選擇 **Next: Tags** (下一步：標籤) 和 **Next: Review** (下一步：檢閱)。

   1. 輸入您的政策的名稱和選用描述，然後選擇 **Create policy** (建立政策)。

1. 在導覽窗格中，選擇 **Roles** (角色)。

1. 選擇 **Create Role** (建立角色)。

1. 在**信任的實體類型**中，選擇**自訂信任政策**。對於 **Custom trust policy** (自訂信任政策)，將 `"Principal": {},` 取代為下列內容，以指定日誌交付服務。選擇**下一步**。

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

1. 在 **Add permissions** (新增許可) 頁面上，選取您先前在此程序中建立的政策的核取方塊，然後選擇 **Next** (下一步)。

1. 輸入您角色的名稱，然後選擇性提供描述。

1. 選擇 **Create Role** (建立角色)。

# 建立發佈至 Amazon S3 的 AWS Transit Gateway Flow Logs 記錄
<a name="flowlog-s3-create"></a>

建立並設定 Amazon S3 儲存貯體後，即可建立傳輸閘道的流量日誌。您可以使用 Amazon VPC 主控台或 CLI 建立 Amazon S3 流程日誌。 AWS 

**使用主控台建立發佈至 Amazon S3 的傳輸閘道流量日誌**

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. 配置流量日誌設定。如需詳細資訊，請參閱[配置流量日誌設定](#configure-flow-log)。<a name="configure-flow-log"></a>

**若要使用主控台配置流量日誌設定**

1. 對於 **Destination** (目標)，選擇 **Send to an S3 bucket** (傳送至 S3 儲存貯體)。

1. 針對 **S3 儲存貯體 ARN**，指定現有 Amazon S3 儲存貯體的 Amazon Resource Name (ARN)。您可以選擇包含子資料夾。例如，若要指定名為 `my-logs` 之儲存貯體中的 `my-bucket` 子資料夾，請使用以下 ARN 格式：

   `arn:aws::s3:::my-bucket/my-logs/`

   儲存貯體不可使用 `AWSLogs` 做為子資料夾名稱，因為這是保留項目。

   若您擁有儲存貯體，我們會自動建立資源政策並將它連接至儲存貯體。如需詳細資訊，請參閱[流量日誌的 Amazon S3 儲存貯體許可](flow-logs-s3.md#flow-logs-s3-permissions)。

1. 對於 **Log record format** (日誌記錄格式)，請指定流量日誌記錄的格式。
   + 若要使用預設的流量日誌紀錄格式，請選擇 **AWS default format ( 預設格式)**。
   + 若要建立自訂格式，請選擇 **Custom format** (自訂格式)。針對 **Log format** (日誌格式)，請選擇要包含在流量日誌記錄中的欄位。

1. 對於 **Log file format** (日誌檔案格式)，指定日誌檔案的格式。
   + **Text** – 純文字。此為預設格式。
   + **Parquet** – Apache Parquet 是一種單欄資料格式。與純文字的資料查詢相比，Parquet 格式的資料查詢速度快 10 到 100 倍。採用 Gzip 壓縮的 Parquet 格式的資料佔用的儲存空間比使用 Gzip 壓縮的純文字要少 20％。

1. (選用) 若要使用 Hive 相容的 S3 字首，請選擇 **Hive-compatible S3 prefix** (Hive 相容的 S3 字首)、**Enable** (啟用)。

1. (選用) 若要每小時分割流量日誌，請選擇 **Every 1 hour (60 mins)** (每 1 小時 (60 分鐘))。

1. (選用) 若要新增標籤至流量日誌，請選擇 **Add new tag** (新增新標籤)，並指定標籤金鑰和值。

1. 選擇 **Create flow log** (建立流程日誌)。

**使用命令列工具建立可發佈至 Amazon S3 的流量日誌**

請使用下列其中一個命令。
+ [create-flow-logs](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-flow-logs.html) (AWS CLI)
+ [新的 EC2 流量日誌](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2FlowLog.html) (AWS Tools for Windows PowerShell)

下列 AWS CLI 範例會建立流程日誌，擷取 VPC 的所有傳輸閘道流量，`tgw-00112233344556677`並將流程日誌交付至名為 的 Amazon S3 儲存貯體`flow-log-bucket`。`--log-format` 參數會指定流量日誌記錄的自訂格式。

```
aws ec2 create-flow-logs --resource-type TransitGateway --resource-ids tgw-00112233344556677 --log-destination-type s3 --log-destination arn:aws:s3:::flow-log-bucket/my-custom-flow-logs/'
```

# 在 Amazon S3 中檢視 AWS 傳輸閘道流量日誌記錄
<a name="view-flow-log-records-s3"></a>

**檢視發佈至 Amazon S3 的流量日誌記錄**

1. 在以下網址開啟 Amazon S3 主控台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在 **Bucket name** (儲存貯體名稱) 中選擇發佈流量日誌之目標儲存貯體。

1. 針對**名稱**，選取日誌檔案旁的核取方塊。在物件概觀面板上，選擇 **Download** (下載)。

## Amazon S3 中的已處理 AWS 傳輸閘道流量日誌記錄
<a name="process-records-s3"></a>

日誌檔案已壓縮。如果您使用 Amazon S3 主控台開啟日誌檔案，這些檔案將會解壓縮，並顯示流量日誌記錄。如果您下載這些檔案，則必須解壓縮才能檢視流量日誌記錄。

# AWS Amazon Data Firehose 中的 Transit Gateway、Flow Logs 記錄
<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 CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)，選取 **Logs** (日誌)，然後尋找 **Vended Logs** (付費日誌)。

## 跨帳戶交付的 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` 指定要監控的 VPC、網路介面或子網路。

------
#### [ 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 的 AWS 傳輸閘道流量日誌來源帳戶角色
<a name="flowlog-fh-create-source"></a>

從來源帳戶，在 AWS Identity and Access Management 主控台中建立來源角色。

**建立來源帳戶角色**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在導覽窗格中，選擇**政策**。

1. 選擇 **Create policy** (建立政策)。

1. 在 Create policy (建立政策) 頁面上，執行下列動作：

   1. 選擇 **JSON**。

   1. 將此視窗的內容取代為本節開頭的許可政策。

   1. 選擇 **Next: Tags** (下一步：標籤) 和 **Next: Review** (下一步：檢閱)。

   1. 輸入您的政策的名稱和選用描述，然後選擇 **Create policy** (建立政策)。

1. 在導覽窗格中，選擇 **Roles** (角色)。

1. 選擇 **Create Role** (建立角色)。

1. 在**信任的實體類型**中，選擇**自訂信任政策**。對於 **Custom trust policy** (自訂信任政策)，將 `"Principal": {},` 取代為下列內容，以指定日誌交付服務。選擇**下一步**。

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

1. 在 **Add permissions** (新增許可) 頁面上，選取您先前在此程序中建立的政策的核取方塊，然後選擇 **Next** (下一步)。

1. 輸入您角色的名稱，然後選擇性提供描述。

1. 選擇 **Create Role** (建立角色)。

# 建立 Amazon Data Firehose 的 AWS 傳輸閘道流量日誌目的地帳戶角色
<a name="flowlog-fh-create-destination"></a>

從目的地帳戶，在 AWS Identity and Access Management 主控台中建立目的地角色。

**建立目的地帳戶角色**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在導覽窗格中，選擇**政策**。

1. 選擇 **Create policy** (建立政策)。

1. 在 Create policy (建立政策) 頁面上，執行下列動作：

   1. 選擇 **JSON**。

   1. 將此視窗的內容取代為本節開頭的許可政策。

   1. 選擇 **Next: Tags** (下一步：標籤) 和 **Next: Review** (下一步：檢閱)。

   1. 輸入您政策的名稱 (開頭為 **AWSLogDeliveryFirehoseCrossAccountRole**)，然後選擇 **Create policy** (建立政策)。

1. 在導覽窗格中，選擇 **Roles** (角色)。

1. 選擇 **Create Role** (建立角色)。

1. 在**信任的實體類型**中，選擇**自訂信任政策**。對於 **Custom trust policy** (自訂信任政策)，將 `"Principal": {},` 取代為下列內容，以指定日誌交付服務。選擇**下一步**。

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

1. 在 **Add permissions** (新增許可) 頁面上，選取您先前在此程序中建立的政策的核取方塊，然後選擇 **Next** (下一步)。

1. 輸入您角色的名稱，然後選擇性提供描述。

1. 選擇 **Create Role** (建立角色)。

# 建立發佈至 Amazon Data Firehose 的 AWS Transit Gateway Flow Logs 記錄
<a name="flow-logs-kinesis-create"></a>

建立發佈至 Amazon Data Firehose 的傳輸閘道流程日誌。在建立流程日誌之前，請確定您已設定跨帳戶交付的來源和目的地 IAM 帳戶角色，且已建立 Firehose 交付串流。如需詳細資訊，請參閱[Amazon Data Firehose 流程日誌](flow-logs-kinesis.md)。您可以使用 Amazon VPC 主控台或 CLI 建立 Firehose AWS 流程日誌。

**使用主控台建立發佈至 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. 在**目的地**中，請選擇**傳送至 Firehose 交付系統**。

1. 在 **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) (AWS CLI)
+ [新的 EC2 流量日誌](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
```

# 使用 APIs 或 CLI 建立和管理 AWS 傳輸閘道流量日誌
<a name="flow-logs-api-cli"></a>

您可以使用命令列執行此頁面所述的任務。

使用 [create-flow-logs](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-flow-logs.html) 命令時，適用下列限制：
+ `--resource-ids` 的 `TransitGateway` 或 `TransitGatewayAttachment` 資源類型上限為 25 個。
+ `--traffic-type` 不是預設的必要欄位。如果您為傳輸閘道資源類型提供此值，則會傳回錯誤。此限制僅適用於傳輸閘道資源類型。
+ `--max-aggregation-interval` 的預設值為 `60`，並且是傳輸閘道資源類型唯一接受的值。如果您嘗試傳遞任何其他值，則會傳回錯誤。此限制僅適用於傳輸閘道資源類型。
+ `--resource-type` 支援兩種新的資源類型：`TransitGateway` 和 `TransitGatewayAttachment`。
+ 如果您未設定要包含哪些欄位，`--log-format` 則會包含傳輸閘道資源類型的所有日誌欄位。這僅適用於傳輸閘道資源類型。

**建立流量日誌**
+ [create-flow-logs](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-flow-logs.html) (AWS CLI)
+ [新的 EC2 流量日誌](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2FlowLog.html) (AWS Tools for Windows PowerShell)

**描述您的流量日誌**
+ [describe-flow-logs](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-flow-logs.html) (AWS CLI)
+ [獲得 EC2 流量日誌](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2FlowLog.html) (AWS Tools for Windows PowerShell)

**檢視您的流量日誌記錄 (日誌事件)**
+ [get-log-events](https://docs.aws.amazon.com/cli/latest/reference/logs/get-log-events.html) (AWS CLI)
+ [獲得 CWL 日誌事件](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-CWLLogEvent.html) (AWS Tools for Windows PowerShell)

**刪除流量日誌**
+ [delete-flow-logs](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-flow-logs.html) (AWS CLI)
+ [移除 EC2 流量日誌](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2FlowLog.html) (AWS Tools for Windows PowerShell)

# 檢視 AWS 傳輸閘道流量日誌記錄
<a name="view-flow-logs"></a>

透過 Amazon VPC 檢視傳輸閘道流量日誌的相關資訊。當您選擇資源時，會列出該資源的所有流程日誌。顯示的資訊包含流量日誌的 ID、流量日誌組態，以及流量日誌狀態的相關資訊。

**檢視傳輸閘道流量日誌的相關資訊**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 在導覽窗格中，選擇 **Transit gateways** (傳輸閘道) 或 **Transit gateway attachments** (傳輸閘道連接)。

1. 選取傳輸閘道或傳輸閘道連接，然後選擇 **Flow Logs** (流量日誌)。標籤上即會顯示流量日誌的相關資訊。**Destination type (目標類型)** 欄位顯示發佈流量日誌之目標。

# 管理 AWS 傳輸閘道流量日誌標籤
<a name="modify-tags-flow-logs"></a>

您可以在 Amazon EC2 和 Amazon VPC 主控台中新增或移除流量日誌的標籤。

**新增或移除傳輸閘道流量日誌的標籤**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 在導覽窗格中，選擇 **Transit gateways** (傳輸閘道) 或 **Transit gateway attachments** (傳輸閘道連接)。

1. 選取傳輸閘道或傳輸閘道連接。

1. 為所需的流量日誌選擇 **Manage Tags** (管理標籤)。

1. 若要新增新標籤，請選擇 **Create Tag** (建立標籤)。若要移除標籤，請選擇刪除按鈕 (x)。

1. 選擇**儲存**。

# 搜尋 AWS 傳輸閘道流量日誌記錄
<a name="search-flow-log-records"></a>

您可以使用 CloudWatch Logs 主控台，搜尋發佈至 CloudWatch Logs 的流量日誌記錄。您可以使用[指標篩選條件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)來篩選流量日誌記錄。流量日誌記錄是以空格分隔。

**使用 CloudWatch Logs 主控台搜尋流量日誌記錄**

1. 在 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Logs** (日誌)，然後選擇 **Log groups** (日誌群組)。

1. 選取包含您流量日誌的日誌群組。隨即顯示每個傳輸閘道日誌串流的清單。

1. 如果您知道要搜尋的傳輸閘道，請選取個別日誌串流。或者，選擇 **Search Log Group** (搜尋日誌群組) 以搜尋整個日誌群組。如果您的日誌群組中有許多傳輸閘道，這可能需要一些時間，視您選取的時間範圍而定。

1. 對於 **Filter events** (篩選事件)，請輸入下列字串。這會假設流量日誌記錄使用[預設格式](tgw-flow-logs.md#flow-logs-default)。

   ```
   [version, resource_type, account_id,tgw_id, tgw_attachment_id, tgw_src_vpc_account_id, tgw_dst_vpc_account_id, tgw_src_vpc_id, tgw_dst_vpc_id, tgw_src_subnet_id, tgw_dst_subnet_id, tgw_src_eni, tgw_dst_eni, tgw_src_az_id, tgw_dst_az_id, tgw_pair_attachment_id, srcaddr, dstaddr, srcport, dstport, protocol, packets, bytes,start,end, log_status, type,packets_lost_no_route, packets_lost_blackhole, packets_lost_mtu_exceeded, packets_lost_ttl_expired, tcp_flags,region, flow_direction, pkt_src_aws_service, pkt_dst_aws_service]
   ```

1. 根據需要透過指定欄位值來修改篩選條件。下列範例會依特定來源 IP 地址進行篩選。

   ```
   [version, resource_type, account_id,tgw_id, tgw_attachment_id, tgw_src_vpc_account_id, tgw_dst_vpc_account_id, tgw_src_vpc_id, tgw_dst_vpc_id, tgw_src_subnet_id, tgw_dst_subnet_id, tgw_src_eni, tgw_dst_eni, tgw_src_az_id, tgw_dst_az_id, tgw_pair_attachment_id, srcaddr= 10.0.0.1, dstaddr, srcport, dstport, protocol, packets, bytes,start,end, log_status, type,packets_lost_no_route, packets_lost_blackhole, packets_lost_mtu_exceeded, packets_lost_ttl_expired, tcp_flags,region, flow_direction, pkt_src_aws_service, pkt_dst_aws_service]
   [version, resource_type, account_id,tgw_id, tgw_attachment_id, tgw_src_vpc_account_id, tgw_dst_vpc_account_id, tgw_src_vpc_id, tgw_dst_vpc_id, tgw_src_subnet_id, tgw_dst_subnet_id, tgw_src_eni, tgw_dst_eni, tgw_src_az_id, tgw_dst_az_id, tgw_pair_attachment_id, srcaddr= 10.0.2.*, dstaddr, srcport, dstport, protocol, packets, bytes,start,end, log_status, type,packets_lost_no_route, packets_lost_blackhole, packets_lost_mtu_exceeded, packets_lost_ttl_expired, tcp_flags,region, flow_direction, pkt_src_aws_service, pkt_dst_aws_service]
   ```

   下列範例會依傳輸閘道識別碼 tgw-123abc456bca、目的地連接埠和位元組數進行篩選。

   ```
   [version, resource_type, account_id,tgw_id=tgw-123abc456bca, tgw_attachment_id, tgw_src_vpc_account_id, tgw_dst_vpc_account_id, tgw_src_vpc_id, tgw_dst_vpc_id, tgw_src_subnet_id, tgw_dst_subnet_id, tgw_src_eni, tgw_dst_eni, tgw_src_az_id, tgw_dst_az_id, tgw_pair_attachment_id, srcaddr, dstaddr, srcport, dstport = 80 || dstport = 8080, protocol, packets, bytes >= 500,start,end, log_status, type,packets_lost_no_route, packets_lost_blackhole, packets_lost_mtu_exceeded, packets_lost_ttl_expired, tcp_flags,region, flow_direction, pkt_src_aws_service, pkt_dst_aws_service]
   ```

# 刪除 AWS 傳輸閘道流量日誌記錄
<a name="delete-flow-log"></a>

您可以使用 Amazon VPC 主控台刪除傳輸閘道流量日誌。

這些程序會停用資源的流量日誌服務。刪除流量日誌記錄並不會刪除 CloudWatch Logs 中的現有日誌串流或 Amazon S3 中的日誌檔。現有的流量日誌資料必須使用各服務的主控台進行刪除。此外，刪除發佈至 Amazon S3 的流量日誌並不會移除儲存貯體原則與日誌檔案存取控制清單 (ACL)。

**刪除傳輸閘道流量日誌**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 在導覽窗格中，選擇 **Transit gateways** (傳輸閘道)。

1. 選擇 **Transit gateway ID** (傳輸閘道 ID)。

1. 在 Flow logs (流量日誌) 區段中，選擇您要刪除的流量日誌。

1. 選擇 **Actions** (動作)，然後選擇 **Delete flow logs** (刪除流量日誌)。

1. 選擇 **Delete** (刪除)，確認您要刪除此流量。