

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

# 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** (建立警示)。