

**推出 的新主控台體驗 AWS WAF**

您現在可以使用更新後的體驗，在主控台的任何位置存取 AWS WAF 功能。如需詳細資訊，請參閱[使用 主控台](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html)。

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

# Shield Advanced 攻擊流程日誌
<a name="ddos-flow-logs"></a>

流程日誌可讓您擷取流向 Shield Advanced 受保護資源中網路介面之流量的相關資訊。流程日誌資料會發佈至 Amazon S3、Amazon CloudWatch Logs 或 Amazon Data Firehose，您可以在啟用流程日誌之後擷取和檢視資料。

**注意**  
您必須在美國東部 （維吉尼亞北部） 區域、主控台和使用 時，檢視 Shield Advanced 中受保護資源的 CloudWatch 指標和日誌。 AWS CLI當您使用 時 AWS CLI，請包含下列參數，為您的命令指定美國東部 （維吉尼亞北部） 區域： `--region us-east-1`

**注意**  
即使您使用流程日誌直接發佈至 Amazon S3，CloudWatch Logs 也會產生費用。如需詳細資訊，請參閱 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)的日誌索引標籤下的已修訂日誌。

## 啟用將流程日誌發佈至 Amazon S3
<a name="ddos-flow-logs-enable"></a>

若要將流程日誌發佈至 Amazon S3，您必須為日誌交付動作和 Shield 服務設定 IAM 許可。

### 發佈流程日誌的 IAM 許可
<a name="ddos-flow-logs-iam-permissions"></a>

IAM 主體，例如 IAM 角色或使用者，必須具有足夠的許可，才能將流程日誌發佈至 Amazon S3 儲存貯體。IAM 政策必須包含下列許可：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadWriteAccessForLogDeliveryActions",
            "Effect": "Allow",
            "Action": [
                "logs:GetDelivery",
                "logs:GetDeliverySource",
                "logs:PutDeliveryDestination",
                "logs:GetDeliveryDestinationPolicy",
                "logs:DeleteDeliverySource",
                "logs:PutDeliveryDestinationPolicy",
                "logs:CreateDelivery",
                "logs:GetDeliveryDestination",
                "logs:PutDeliverySource",
                "logs:DeleteDeliveryDestination",
                "logs:DeleteDeliveryDestinationPolicy",
                "logs:DeleteDelivery",
                "logs:UpdateDeliveryConfiguration"
            ],
            "Resource": [
                "arn:aws:logs:us-east-1:{{accountID}}:delivery:*",
                "arn:aws:logs:us-east-1:{{accountID}}:delivery-source:*",
                "arn:aws:logs:us-east-1:{{accountID}}:delivery-destination:*"
            ]
        },
        {
            "Sid": "ListAccessForLogDeliveryActions",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeDeliveryDestinations",
                "logs:DescribeDeliverySources",
                "logs:DescribeDeliveries",
                "logs:DescribeConfigurationTemplates"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowUpdatesToResourcePolicyS3",
            "Effect": "Allow",
            "Action": [
                "s3:PutBucketPolicy",
                "s3:GetBucketPolicy"
            ],
            "Resource": "arn:aws:s3:::{{bucket-name}}"
        }
    ]
}
```

在上述政策中，將 {{accountID}} 取代為 AWS 您的帳戶 ID，並將 {{bucket-name}} 取代為 Amazon S3 儲存貯體的名稱。

### Shield 服務特定許可
<a name="ddos-flow-logs-shield-permissions"></a>

除了目的地特定的許可之外， AWS Shield 需要明確授權，才能從 資源傳送日誌。這提供額外的安全層。Shield 會針對提供日誌的保護資源授權 `AllowVendedLogDeliveryForResource`動作：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ServiceLevelAccessForLogDelivery",
            "Effect": "Allow",
            "Action": [
                "shield:AllowVendedLogDeliveryForResource"
            ],
            "Resource": "arn:aws:shield::{{accountID}}:protection/*"
        }
    ]
}
```

將 {{accountID}} 取代為 AWS 您的帳戶 ID。

## 啟用流程日誌交付
<a name="ddos-flow-logs-delivery"></a>

工作日誌交付包含三個元素。使用下列程序，使用 設定每個元素 AWS CLI。

1. 建立 `DeliverySource`，這是一個邏輯物件，代表傳送日誌的資源。執行以下命令：

   ```
   aws logs put-delivery-source \
     --name {{delivery-source-name}} \
     --resource-arn "arn:aws:shield::{{accountID}}:protection/{{protectionID}}" \
     --log-type FLOW_LOGS \
     --region us-east-1
   ```

   將 {{delivery-source-name}} 取代為交付來源的名稱、將 {{accountID}} 取代為 AWS 帳戶 ID，並將 {{protectionID}} 取代為 Shield Advanced 保護 ID。

   確定發出此命令的使用者具有服務層級許可 `shield:AllowVendedLogDeliveryForResource`。

1. 建立 `DeliveryDestination`，這是代表實際交付目的地的邏輯物件。執行以下命令：

   ```
   aws logs put-delivery-destination \
     --name {{delivery-destination-name}} \
     --output-format json \
     --delivery-destination-configuration "destinationResourceArn=arn:aws:s3:::{{bucket-name}}" \
     --region us-east-1
   ```

   將 {{delivery-destination-name}} 取代為交付目的地的名稱，並將 {{bucket-name}} 取代為 Amazon S3 儲存貯體的名稱。

1. 建立 `Delivery`，將交付來源連線至交付目的地。執行以下命令：

   ```
   aws logs create-delivery \
     --delivery-source-name {{delivery-source-name-from-step1}} \
     --delivery-destination-arn "{{arn-returned-in-step2}}" \
     --region us-east-1
   ```

   將 {{delivery-source-name-from-step1}} 取代為步驟 1 的交付來源名稱，並將 {{arn-returned-in-step2}} 取代為步驟 2 中傳回的 ARN。

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

來自 Shield 保護的流量日誌會在攻擊期間每隔 5 分鐘發佈至 Amazon S3 儲存貯體。日誌檔案每 5 分鐘寫入一次，每個日誌檔案都包含前五分鐘所記錄 IP 地址流量的流程日誌記錄。

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

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

單一日誌檔案包含具有多個記錄的交錯項目。若要查看保護的所有日誌檔案，請尋找依保護名稱、區域和您的帳戶 ID 彙總的項目。

## 流程日誌記錄語法
<a name="ddos-flow-logs-record-syntax"></a>

流程日誌記錄是以空格分隔的字串，其中包含下列欄位。


| 欄位 | 說明 | 
| --- | --- | 
| version | 流程日誌版本編號。 | 
| protection\_arn | AWS 保護 ARN，用於識別 Shield Advanced 中受保護的資源。 | 
| srcaddr | 封包的來源 IP 地址。 | 
| dstaddr | 封包的目的地 IP 地址。 | 
| srcport | 封包的來源連接埠。 | 
| dstport | 封包的目的地連接埠。 | 
| protocol | 封包的通訊協定。 | 
| packets | 彙總視窗中的封包數量。 | 
| bytes | 彙總視窗中的位元組數。 | 
| starttime | 彙總時段開始時間。 | 
| endtime | 彙總時段結束時間。 | 
| action | Shield Advanced 採取的動作。 | 
| tcp\_flags | 來自封包的 TCP 旗標欄位。 | 
| sampling\_rate | 封包處理期間使用的取樣率。 | 
| location | AWS 輸入位置。 | 
| srccountry | 代表輸入流量國家/地區的兩個字母國家/地區代碼。 | 