

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

# Application Load Balancer 的連線日誌
<a name="load-balancer-connection-logs"></a>

Elastic Load Balancing 提供連線日誌，可擷取傳送至負載平衡器之請求的詳細資訊。每個日誌都包含資訊，例如用戶端的 IP 地址和連接埠、接聽程式連接埠、使用的 TLS 密碼和通訊協定、TLS 交握延遲、連線狀態和用戶端憑證詳細資訊。您可以使用這些連線日誌來分析請求模式並疑難排解問題。

連線日誌是 Elastic Load Balancing 的選用功能，預設為停用。在您啟用負載平衡器的連線日誌後，Elastic Load Balancing 會擷取日誌，並將其存放在您指定的 Amazon S3 儲存貯體中，做為壓縮檔案。您可以隨時停用連線日誌。

您將需支付 Amazon S3 的儲存費用，但 Elastic Load Balancing 將日誌檔傳送到 Amazon S3 所使用的頻寬不需要付費。如需有關儲存費用的詳細資訊，請參閱 [Amazon S3 定價](https://aws.amazon.com/s3/pricing/)。

**Topics**
+ [連線日誌檔案](#connection-log-file-format)
+ [連線日誌項目](#connection-log-entry-format)
+ [範例日誌項目](#connection-log-entry-examples)
+ [處理連線日誌檔案](#connection-log-processing-tools)
+ [啟用連線日誌](enable-connection-logging.md)
+ [停用連線日誌](disable-connection-logging.md)

## 連線日誌檔案
<a name="connection-log-file-format"></a>

Elastic Load Balancing 每 5 分鐘發佈每個負載平衡器節點的日誌檔。日誌傳遞最終會達到一致。負載平衡器可能在相同期間傳遞多個日誌。這通常是在網站的流量很高時才會發生。

連線日誌的檔案名稱使用下列格式：

```
bucket[/prefix]/AWSLogs/aws-account-id/elasticloadbalancing/region/yyyy/mm/dd/conn_log_aws-account-id_elasticloadbalancing_region_app.load-balancer-id_end-time_ip-address_random-string.log.gz
```

*bucket*  
S3 儲存貯體的名稱。

*prefix*  
(選用) 儲存貯體的字首 (邏輯階層)。您指定的字首不得包含字串 `AWSLogs`。如需詳細資訊，請參閱[使用字首組織物件](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html)。

`AWSLogs`  
我們在您指定的儲存貯體名稱和可選字首之後，增加了以 `AWSLogs` 開頭的檔案名稱部分。

*aws-account-id*  
擁有者的帳戶 AWS ID。

*region*  
負載平衡器和 S3 儲存貯體的區域。

*yyyy*/*mm*/*dd*  
傳遞日誌的日期。

*load-balancer-id*  
負載平衡器的資源 ID。如果資源 ID 包含任何斜線 (/)，斜線會換成句點 (.)。

*end-time*  
記錄間隔結束的日期和時間。例如，結束時間 20140215T2340Z 的日子檔案包含在 23:35 和 23:40 (UTC 或 Zulu 時間) 之間發出的請求項目。

*ip-address*  
處理請求之負載平衡器節點的 IP 地址。對於內部負載平衡器，這是私有 IP 地址。

*random-string*  
系統產生的隨機字串。

以下是含字首的日誌檔案名稱範例：

```
s3://amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/elasticloadbalancing/us-east-2/2022/05/01/conn_log_123456789012_elasticloadbalancing_us-east-2_app.my-loadbalancer.1234567890abcdef_20220215T2340Z_172.160.001.192_20sg8hgm.log.gz
```

以下是不含字首的日誌檔案名稱範例：

```
s3://amzn-s3-demo-logging-bucket/AWSLogs/123456789012/elasticloadbalancing/us-east-2/2022/05/01/conn_log_123456789012_elasticloadbalancing_us-east-2_app.my-loadbalancer.1234567890abcdef_20220215T2340Z_172.160.001.192_20sg8hgm.log.gz
```

日誌檔案可存放於儲存貯體任意長時間，但您也可以定義 Amazon S3 生命週期規則，自動封存或刪除日誌檔案。如需詳細資訊，請參閱《*Amazon S3 使用者指南*》中的[物件生命週期管理](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html)。

## 連線日誌項目
<a name="connection-log-entry-format"></a>

每個連線嘗試在連線日誌檔案中都有一個項目。用戶端請求的傳送方式取決於持續或非持續的連線。非持久性連線具有單一請求，可在存取日誌和連線日誌中建立單一項目。持久性連線有多個請求，可在存取日誌中建立多個項目，並在連線日誌中建立單一項目。

**Topics**
+ [語法](#connection-log-entry-syntax)
+ [錯誤原因代碼](#connection-error-reason-codes)

### 語法
<a name="connection-log-entry-syntax"></a>

下表依序說明連線日誌項目的欄位。所有欄位以空格分隔。當我們新增欄位時，會將它新增至日誌項目的結尾。當我們準備發佈新欄位時，您可能會在欄位發佈之前看到額外的結尾 "-"。請確定您將日誌剖析設定為在上次記錄的欄位之後停止，並在我們發佈新欄位之後更新日誌剖析。


| 欄位 （位置） | Description | 
| --- | --- | 
|  時間戳記 (1)  |  負載平衡器成功建立或無法建立連線的時間，採用 ISO 8601 格式。  | 
|  client\$1ip (2)  |  請求用戶端的 IP 地址。  | 
|  client\$1port (3)  |  請求用戶端的連接埠。  | 
|  listener\$1port (4)  |  接收用戶端請求的負載平衡器接聽程式連接埠。  | 
|  tls\$1protocol (5)  |  【HTTPS 接聽程式】 交握期間使用的 SSL/TLS 通訊協定。對於非 SSL/TLS `-` 請求，此欄位設定為 。  | 
|  tls\$1cipher (6)  |  【HTTPS 接聽程式】 交握期間使用的 SSL/TLS 通訊協定。對於非 SSL/TLS `-` 請求，此欄位設定為 。  | 
|  tls\$1handshake\$1latency (7)  |  【HTTPS 接聽程式】 建立成功交握時經過的總秒數，精確度為毫秒。此欄位在下列`-`情況下設定為 ： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/application/load-balancer-connection-logs.html)  | 
|  leaf\$1client\$1cert\$1subject (8)  |  【HTTPS 接聽程式】 分葉用戶端憑證的主旨名稱。此欄位在下列`-`情況下設定為 ： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/application/load-balancer-connection-logs.html)  | 
|  leaf\$1client\$1cert\$1validity (9)  |  【HTTPS 接聽程式】 分葉用戶端憑證的有效性，使用 `not-after` ISO 8601 格式的 `not-before`和 。此欄位在下列`-`情況下設定為 ： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/application/load-balancer-connection-logs.html)  | 
|  leaf\$1client\$1cert\$1serial\$1number (10)  |  【HTTPS 接聽程式】 分葉用戶端憑證的序號。此欄位在下列`-`情況下設定為 ： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/application/load-balancer-connection-logs.html)  | 
|  tls\$1verify\$1status (11)  |  【HTTPS 接聽程式】 連線請求的狀態。`Success` 如果成功建立連線，則此值為 。在連線失敗時，值為 `Failed:$error_code`。  | 
|  conn\$1trace\$1id (12)  |  連線可追蹤性 ID 是用於識別每個連線**的唯一不透明 ID**。與用戶端建立連線後，來自此用戶端的後續請求會在其各自的存取日誌項目中包含此 ID。此 ID 可做為外部金鑰，在連線和存取日誌之間建立連結。  | 
|  tls\$1keyexchange (13)  |  【HTTPS 接聽程式】 TLS 或 PQ-TLS 交握期間使用的金鑰交換。對於非 SSL/TLS `-` 請求，此欄位設定為 。  | 

### 錯誤原因代碼
<a name="connection-error-reason-codes"></a>

如果負載平衡器無法建立連線，負載平衡器會將下列其中一個原因代碼儲存在連線日誌中。


| Code | Description | 
| --- | --- | 
|  `ClientCertMaxChainDepthExceeded`  |  已超過用戶端憑證鏈深度上限  | 
|  `ClientCertMaxSizeExceeded`  |  已超過用戶端憑證大小上限  | 
|  `ClientCertCrlHit`  |  CA 已撤銷用戶端憑證  | 
|  `ClientCertCrlProcessingError`  |  CRL 處理錯誤  | 
|  `ClientCertUntrusted`  |  用戶端憑證不受信任  | 
|  `ClientCertNotYetValid`  |  用戶端憑證尚未有效  | 
|  `ClientCertExpired`  |  用戶端憑證已過期  | 
|  `ClientCertTypeUnsupported`  |  不支援用戶端憑證類型  | 
|  `ClientCertInvalid`  |  用戶端憑證無效  | 
|  `ClientCertPurposeInvalid`  |  用戶端憑證用途無效  | 
|  `ClientCertRejected`  |  自訂伺服器驗證拒絕用戶端憑證  | 
|  `UnmappedConnectionError`  |  未映射的執行時間連線錯誤  | 

## 範例日誌項目
<a name="connection-log-entry-examples"></a>

以下是連線日誌項目的範例。請注意，範例文字只會出現在多行上，使其更容易閱讀。

以下是在連接埠 443 上啟用交互 TLS 驗證模式的 HTTPS 接聽程式成功連線的日誌項目範例。

```
2023-10-04T17:05:15.514108Z 203.0.113.1 36280 443 TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 4.036 
"CN=amazondomains.com,O=endEntity,L=Seattle,ST=Washington,C=US" NotBefore=2023-09-21T22:43:21Z;NotAfter=2026-06-17T22:43:21Z 
FEF257372D5C14D4 Success TID_3180a73013c8ca4bac2f731159d4b0fe
```

以下是在連接埠 443 上啟用交互 TLS 驗證模式的 HTTPS 接聽程式連線失敗的日誌項目範例。

```
2023-10-04T17:05:15.514108Z 203.0.113.1 36280 443 TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 - 
"CN=amazondomains.com,O=endEntity,L=Seattle,ST=Washington,C=US" NotBefore=2023-09-21T22:43:21Z;NotAfter=2026-06-17T22:43:21Z 
FEF257372D5C14D4 Failed:ClientCertUntrusted TID_1c71a68d70587445ad5127ff8b2687d7
```

## 處理連線日誌檔案
<a name="connection-log-processing-tools"></a>

連線日誌檔案會壓縮。如您利用 Amazon S3 主控台開啟檔案，則會解壓縮檔案並顯示資訊。如果您下載檔案，則必須先將其解壓縮才能看到資訊。

如果您的網站上有許多需求，負載平衡器產生的日誌檔可能有好幾 GB 的資料。您可能無法逐行處理這麼龐大的資料。因此，您可能需要使用提供平行處理解決方案的分析工具。例如，您可以使用下列分析工具來分析和處理連線日誌：
+ Amazon Athena 是一種互動式查詢服務，可讓您使用標準 SQL 輕鬆分析 Amazon S3 中的資料。
+ [Loggly](https://documentation.solarwinds.com/en/success_center/loggly/content/admin/s3-ingestion-auto.htm)
+ [Splunk](https://splunk.github.io/splunk-add-on-for-amazon-web-services/)
+ [Sumo Logic](https://www.sumologic.com/application/elb/)

# 啟用 Application Load Balancer 的連線日誌
<a name="enable-connection-logging"></a>

當您為負載平衡器啟用連線日誌時，您必須指定負載平衡器將存放日誌的 S3 儲存貯體名稱。儲存貯體必須具有儲存貯體政策，能授予 Elastic Load Balancing 寫入儲存貯體的許可。

**Topics**
+ [步驟 1：建立 S3 儲存貯體](#connection-log-create-bucket)
+ [步驟 2：連接政策到您的 S3 儲存貯體](#attach-bucket-policy-connection)
+ [步驟 3：設定連線日誌](#enable-connection-logs)
+ [步驟 4：確認儲存貯體許可](#verify-bucket-permissions-connection)
+ [疑難排解](#bucket-permissions-troubleshooting-connection)

## 步驟 1：建立 S3 儲存貯體
<a name="connection-log-create-bucket"></a>

啟用連線日誌時，您必須為連線日誌指定 S3 儲存貯體。您可以使用現有的儲存貯體，或特別為連線日誌建立儲存貯體。儲存貯體必須符合下列需求。

**要求**
+ 儲存貯體與負載平衡器必須位於相同的 Region (區域)。儲存貯體和負載平衡器可以由不同的帳戶擁有。
+ Amazon S3 受管金鑰 (SSE-S3) 是唯一支援的伺服器端加密選項。如需詳細資訊，請參閱 [Amazon S3 受管加密金鑰 (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html)。

**使用 Amazon S3 主控台建立 S3 儲存貯體**

1. 開啟位於 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。

1. 選擇**建立儲存貯體**。

1. 在 **Create bucket (建立儲存貯體)** 頁面上，執行下列操作：

   1. 針對 **Bucket name (儲存貯體名稱)**，輸入儲存貯體的名稱。該名稱在 Amazon S3 中所有現有的儲存貯體名稱之間，不得重複。在某些區域，可能會對儲存貯體的名稱進行其他限制。如需詳細資訊，請參閱《*Amazon S3 使用者指南*》中的[儲存貯體限制](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html)。

   1. 針對 **AWS 區域**，選取您建立負載平衡器時所在的區域。

   1. 對於**預設加密**，選擇 **Amazon S3 受管金鑰 (SSE-S3)**。

   1. 選擇**建立儲存貯體**。

## 步驟 2：連接政策到您的 S3 儲存貯體
<a name="attach-bucket-policy-connection"></a>

您的 S3 儲存貯體必須有儲存貯體政策，授予 Elastic Load Balancing 將連線日誌寫入儲存貯體的許可。儲存貯體政策是以存取政策語言所編寫的 JSON 陳述式集合，可定義儲存貯體的存取許可。每個陳述式包含單一許可的相關資訊，且包含一系列的元素。

如果您使用的是已連接政策的現有儲存貯體，您可以將 Elastic Load Balancing 連線日誌的 陳述式新增至政策。如果您這樣做，我們建議您評估產生的一組許可，以確保它們適用於需要存取 儲存貯體以進行連線日誌的使用者。

### 儲存貯體政策
<a name="bucket-policy-logdelivery-connection"></a>

此政策會將許可授予指定的日誌交付服務。

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "logdelivery.elasticloadbalancing.amazonaws.com"
      },
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/123456789012/*"
    }
  ]
}
```

針對 `Resource`，使用範例政策中顯示的格式，輸入存取日誌位置的 ARN。一律在 S3 儲存貯體 ARN 的資源路徑中包含具有負載平衡器的帳戶 ID。這可確保只有來自指定帳戶的負載平衡器才能將存取日誌寫入 S3 儲存貯體。

您指定的 ARN 取決於您是否計劃在[步驟 3 ](enable-access-logging.md#enable-access-logs)中啟用存取日誌時包含字首。

**字首為 的範例 S3 儲存貯體 ARN**  
S3 儲存貯體名稱為 amzn-s3-demo-logging-bucket，字首為 logging-prefix。

```
arn:aws:s3:::amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/*
```

**AWS GovCloud (US)** – 下列範例使用 的 ARN 語法 AWS GovCloud (US) Regions。

```
arn:aws-us-gov:s3:::amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/*
```

**沒有字首的範例 S3 儲存貯體 ARN**  
S3 儲存貯體名稱為 amzn-s3-demo-logging-bucket。S3 儲存貯體 ARN 中沒有字首部分。

```
arn:aws:s3:::amzn-s3-demo-logging-bucket/AWSLogs/123456789012/*
```

**AWS GovCloud (US)** – 下列範例使用 的 ARN 語法 AWS GovCloud (US) Regions。

```
arn:aws-us-gov:s3:::amzn-s3-demo-logging-bucket/AWSLogs/123456789012/*
```

### 舊版儲存貯體政策
<a name="legacy-bucket-policy"></a>

先前，對於 2022 年 8 月之前可用的區域，我們需要政策，將許可授予該區域特定的 Elastic Load Balancing 帳戶。仍然支援此舊版政策，但建議您將其取代為上述較新的政策。如果您偏好繼續使用此處未顯示的舊版政策，您可以這麼做。

 以下是舊版政策中要在 `Principal` 中指定的 Elastic Load Balancing 帳戶的 IDs，以供參考。請注意，不在此清單中的區域不支援舊版政策。
+ 美國東部 (維吉尼亞北部) – 127311923021
+ 美國東部 (俄亥俄) – 033677994240
+ 美國西部 (加利佛尼亞北部) – 027434742980
+ 美國西部 (奧勒岡) – 797873946194
+ 非洲 (開普敦) – 098369216593
+ 亞太區域 (香港) – 754344448648
+ 亞太區域 (雅加達) – 589379963580
+ 亞太區域 (孟買) – 718504428378
+ 亞太區域 (大阪) – 383597477331
+ 亞太區域 (首爾) – 600734575887
+ 亞太區域 (新加坡) – 114774131450
+ 亞太區域 (雪梨) – 783225319266
+ 亞太區域 (東京) – 582318560864
+ 加拿大 (中部) – 985666609251
+ 歐洲 (法蘭克福) – 054676820928
+ 歐洲 (愛爾蘭) – 156460612806
+ 歐洲 (倫敦) – 652711504416
+ 歐洲 (米蘭) – 635631232127
+ 歐洲 (巴黎) – 009996457667
+ 歐洲 (斯德哥爾摩) – 897822967062
+ 中東 (巴林) – 076674570225
+ 南美洲 (聖保羅) – 507241528517
+ AWS GovCloud （美國東部） – 190560391635
+ AWS GovCloud （美國西部） – 048591011584

### Outpost 區域
<a name="bucket-policy-outposts"></a>

以下政策會將許可授予指定的日誌交付服務。將此政策用於 Outpost 區域中的負載平衡器。

```
{
    "Effect": "Allow",
    "Principal": {
        "Service": "logdelivery.elb.amazonaws.com"
    },
    "Action": "s3:PutObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/123456789012/*"
    "Condition": {
        "StringEquals": {
            "s3:x-amz-acl": "bucket-owner-full-control"
        }
    }
}
```

針對 `Resource`，輸入存取日誌位置的 ARN。一律在 S3 儲存貯體 ARN 的資源路徑中包含具有負載平衡器的帳戶 ID。這可確保只有來自指定帳戶的負載平衡器才能將存取日誌寫入 S3 儲存貯體。

您指定的 ARN 取決於您是否計劃在[步驟 3 ](enable-access-logging.md#enable-access-logs)中啟用存取日誌時包含字首。

**字首為 的範例 S3 儲存貯體 ARN**  
S3 儲存貯體名稱為 amzn-s3-demo-logging-bucket，字首為 logging-prefix。

```
arn:aws:s3:::amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/*
```

**沒有字首的範例 S3 儲存貯體 ARN**  
S3 儲存貯體名稱為 amzn-s3-demo-logging-bucket。S3 儲存貯體 ARN 中沒有字首部分。

```
arn:aws:s3:::amzn-s3-demo-logging-bucket/AWSLogs/123456789012/*
```

### 安全最佳實務
<a name="bucket-policy-security-best-practices"></a>

若要增強安全性，請使用精確的 S3 儲存貯ARNs。
+ 使用完整的資源路徑，而不只是 S3 儲存貯體 ARN。
+ 包含 S3 儲存貯體 ARN 的帳戶 ID 部分。
+ 請勿在 S3 儲存貯體 ARN 的帳戶 ID 部分中使用萬用字元 (\$1)。

建立儲存貯體政策後，請使用 Amazon S3 介面，例如 Amazon S3 主控台或 AWS CLI 命令，將儲存貯體政策連接至 S3 儲存貯體。

------
#### [ Console ]

**將儲存貯體政策連接至 S3 儲存貯體**

1. 開啟位於 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。

1. 選取儲存貯體的名稱，開啟其詳細資訊頁面。

1. 選擇 **Permissions** (許可)，然後選擇 **Bucket policy** (儲存貯體政策)、**Edit** (編輯)。

1. 更新儲存貯體政策，授予所需許可。

1. 選擇**儲存變更**。

------
#### [ AWS CLI ]

**將儲存貯體政策連接至 S3 儲存貯體**  
使用 [put-bucket-policy](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-policy.html) 命令。在此範例中，儲存貯體政策已儲存至指定的 .json 檔案。

```
aws s3api put-bucket-policy \
    --bucket amzn-s3-demo-bucket \
    --policy file://access-log-policy.json
```

------

## 步驟 3：設定連線日誌
<a name="enable-connection-logs"></a>

使用下列程序來設定連線日誌，以擷取日誌檔案並將其交付至 S3 儲存貯體。

**要求**  
儲存貯體必須符合[步驟 1](#connection-log-create-bucket) 中所述的要求，且您必須按照[步驟 2](#attach-bucket-policy-connection) 所述連接儲存貯體政策。如果指定字首，則其不得包含字串 "AWSLogs"。

**管理連線日誌的 S3 儲存貯體**  
刪除您為連線日誌設定的儲存貯體之前，請務必停用連線日誌。否則，如果有新儲存貯體具有相同的名稱和所需的儲存貯體政策，但在非您擁有的 AWS 帳戶 中建立，Elastic Load Balancing 可以將負載平衡器的連線日誌寫入此新儲存貯體。

------
#### [ Console ]

**啟用連線日誌**

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

1. 在導覽窗格中，選擇 **Load Balancers (負載平衡器)**。

1. 選取您負載平衡器的名稱來開啟其詳細資訊頁面。

1. 在**屬性**索引標籤中，選擇**編輯**。

1. 針對**監控**，開啟**連線日誌**。

1. 針對 **S3 URI**，請輸入日誌檔案的 S3 URI。指定的 URI 取決於您是否使用字首。
   + 帶有字首的 URI：`s3://bucket-name/prefix`
   + 不帶字首的 URI：`s3://bucket-name`

1. 選擇**儲存變更**。

------
#### [ AWS CLI ]

**啟用連線日誌**  
使用 [modify-load-balancer-attributes](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-load-balancer-attributes.html) 命令搭配相關屬性。

```
aws elbv2 modify-load-balancer-attributes \
    --load-balancer-arn load-balancer-arn \
    --attributes \
        Key=connection_logs.s3.enabled,Value=true \
        Key=connection_logs.s3.bucket,Value=amzn-s3-demo-logging-bucket \
        Key=connection_logs.s3.prefix,Value=logging-prefix
```

------
#### [ CloudFormation ]

**啟用連線日誌**  
更新 [AWS::ElasticLoadBalancingV2::LoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-loadbalancer.html) 資源以包含相關屬性。

```
Resources:
  myLoadBalancer:
    Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer'
    Properties:
      Name: my-alb
      Type: application
      Scheme: internal
      Subnets: 
        - !Ref subnet-AZ1
        - !Ref subnet-AZ2
      SecurityGroups: 
        - !Ref mySecurityGroup
      LoadBalancerAttributes: 
        - Key: "connection_logs.s3.enabled"
          Value: "true"
        - Key: "connection_logs.s3.bucket"
          Value: "amzn-s3-demo-logging-bucket"
        - Key: "connection_logs.s3.prefix"
          Value: "logging-prefix"
```

------

## 步驟 4：確認儲存貯體許可
<a name="verify-bucket-permissions-connection"></a>

為您的負載平衡器啟用連線日誌後，Elastic Load Balancing 會驗證 S3 儲存貯體並建立測試檔案，以確保儲存貯體政策指定必要的許可。您可以使用 Amazon S3 主控台來確認是否已建立測試檔案。測試檔案不是實際的連線日誌檔案；它不包含範例記錄。

**驗證 Elastic Load Balancing 已在 S3 儲存貯體中建立測試檔案**

1. 開啟位於 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。

1. 選取您為連線日誌指定的儲存貯體名稱。

1. 導覽到測試檔案，`ELBConnectionLogTestFile`。位置取決於您是否使用字首。
   + 字首為 *amzn-s3-demo-logging-bucket*/*prefix*/AWSLogs/*123456789012*/ELBConnectionLogTestFile 的位置
   + 沒有字首的位置：*amzn-s3-demo-logging-bucket*/AWSLogs/*123456789012*/ELBConnectionLogTestFile

## 疑難排解
<a name="bucket-permissions-troubleshooting-connection"></a>

如果您收到存取遭拒錯誤，則以下是可能的原因：
+ 儲存貯體政策不會授予 Elastic Load Balancing 將連線日誌寫入儲存貯體的許可。確認您正在使用適合該區域的正確儲存貯體政策。確認資源 ARN 使用您在啟用連線日誌時指定的相同儲存貯體名稱。如果您在啟用連線日誌時未指定字首，請確認資源 ARN 不包含字首。
+ 儲存貯體使用不支援的伺服器端加密選項。儲存貯體必須使用 Amazon S3 受管金鑰 (SSE-S3)。

# 停用 Application Load Balancer 的連線日誌
<a name="disable-connection-logging"></a>

您可以隨時停用負載平衡器的連線日誌。停用連線日誌後，您的連線日誌會保留在您的 S3 儲存貯體中，直到您將其刪除為止。如需詳細資訊，請參閱《*Amazon S3 使用者指南*》中的[建立、設定和使用儲存貯](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html)體。

------
#### [ Console ]

**停用連線日誌**

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

1. 在導覽窗格中，選擇 **Load Balancers (負載平衡器)**。

1. 選取您負載平衡器的名稱來開啟其詳細資訊頁面。

1. 在**屬性**索引標籤中，選擇**編輯**。

1. 針對**監控**，請關閉**連線日誌**。

1. 選擇**儲存變更**。

------
#### [ AWS CLI ]

**停用連線日誌**  
使用 [modify-load-balancer-attributes](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-load-balancer-attributes.html) 命令。

```
aws elbv2 modify-load-balancer-attributes \
    --load-balancer-arn load-balancer-arn \
    --attributes Key=connection_logs.s3.enabled,Value=false
```

------