

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

# 設定標準記錄 (舊式)
<a name="standard-logging-legacy-s3"></a>

**備註**  
本主題適用於先前版本的標準記錄。如需最新版本，請參閱[設定標準記錄 (v2)](standard-logging.md)。
如果您已啟用標準記錄 (舊版)，而且想要啟用 Amazon S3 的標準記錄 (v2)，建議您指定*不同的* Amazon S3 儲存貯體，或使用相同儲存貯體中的*個別路徑* (例如，使用日誌字首或分割)。這可協助您追蹤哪些日誌檔案與哪些分佈相關聯，並防止日誌檔案互相覆寫。

若要開始使用標準記錄 (舊版)，請完成下列步驟：

1. 選擇將接收日誌的 Amazon S3 儲存貯體，並新增必要許可。

1. 從 CloudFront 主控台或 CloudFront API 設定標準記錄 (舊版)。您只能選擇 Amazon S3 儲存貯體來接收您的日誌。

1. 檢視您的存取日誌。

## 為標準日誌選擇 Amazon S3 儲存貯體
<a name="access-logs-choosing-s3-bucket"></a>

當您啟用分佈記錄時，請指定您要 CloudFront 存放日誌檔案存的 Amazon S3 儲存貯體。如果您是使用 Amazon S3 做為原始伺服器，我們建議您為日誌檔案使用*個別的*儲存貯體。

指定您要 CloudFront 儲存存取記錄的 Amazon S3 儲存貯體，例如 `amzn-s3-demo-bucket.s3.amazonaws.com`。

您可以在同一個儲存貯體存放多個分佈的日誌檔案。啟用記錄時，您可以指定檔案名稱的選用字首，以便您可以繼續追蹤哪個日誌檔案與那個分佈關聯。

**關於選擇 S3 儲存貯體**  
您的儲存貯體必須啟用存取控制清單 (ACL)。如果您從 CloudFront 主控台選擇未啟用 ACL 的儲存貯體，則會出現錯誤訊息。請參閱 [許可](#AccessLogsBucketAndFileOwnership)。
不要選擇 [S3 物件擁有權](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html)設定為**強制執行儲存貯體擁有者**的 Amazon S3 儲存貯體。該設定會停用儲存貯體及其中物件的 ACL，這可防止 CloudFront 將記錄檔傳送至儲存貯體。
舊版記錄不支援選擇加入區域中的 Amazon S3 儲存貯體。請選擇預設啟用的區域，或使用支援選擇加入區域和其他功能的 [Standard Logging V2](standard-logging.md)。如需預設和選擇加入區域的清單，請參閱 [AWS 區域](https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html)。

## 許可
<a name="AccessLogsBucketAndFileOwnership"></a>

**重要**  
從 2023 年 4 月開始，您必須對用於 CloudFront 標準日誌的新 S3 儲存貯體啟用 S3 ACL。您可以在[建立儲存貯體](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-ownership-new-bucket.html)時啟用 ACL，或為[現有儲存貯體](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-ownership-existing-bucket.html)啟用 ACL。  
有關變更的詳細資訊，請參閱《Amazon Simple Storage Service 使用者指南》**中的[新 S3 儲存貯體的預設設定常見問答集](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-faq.html)和 *AWS 新聞部落格*中的[預告：Amazon S3 安全性變更將於 2023 年 4 月推出](https://aws.amazon.com/blogs/aws/heads-up-amazon-s3-security-changes-are-coming-in-april-of-2023/)。

對於您為日誌檔案指定的儲存貯體，您的 AWS 帳戶 必須具有下列許可：
+ 儲存貯體的 ACL 必須授予您 `FULL_CONTROL`。如果您是儲存貯體擁有者，您的帳戶會有預設的該許可。如果您不是，儲存貯體擁有者則必須更新儲存貯體的 ACL。
+ `s3:GetBucketAcl`
+ `s3:PutBucketAcl`

**儲存貯體的 ACL**  
當您建立或更新分佈及啟用記錄時，CloudFront 使用這些許可更新儲存貯體的 ACL，提供 `awslogsdelivery` 帳戶 `FULL_CONTROL` 許可。`awslogsdelivery` 帳戶將日誌檔案寫入儲存貯體。如果您的帳戶沒有更新 ACL 所需的許可，則建立或更新分佈會失敗。  
在某些情況下，如果您以程式設計的方式提交請求建立儲存貯體，但有指定名稱的儲存貯體已存在，則 S3 在儲存貯體上重設許可為預設值。如果您配置 CloudFront 在 S3 儲存貯體儲存存取日誌，且停止在該儲存貯體中取得日誌，請檢查儲存貯體上的許可，確保 CloudFront 擁有必要的許可。

**還原儲存貯體的 ACL**  
如果您移除 `awslogsdelivery` 帳戶的許可，CloudFront 便無法將日誌儲存到 S3 儲存貯體。若要啟用 CloudFront，使其開始為分佈儲存日誌，請執行以下其中一個步驟，即可還原 ACL 許可：  
+ 在 CloudFront 中停用分佈的記錄功能，然後再次啟用。如需詳細資訊，請參閱[標準記錄](DownloadDistValuesGeneral.md#DownloadDistValuesLoggingOnOff)。
+ 在 Amazon S3 主控台中瀏覽至 S3 儲存貯體，接著新增許可，即可為 `awslogsdelivery` 手動新增 ACL 許可。若要為 `awslogsdelivery` 新增 ACL，您必須提供該帳戶的正式 ID，如下所示：

  `c4c1ede66af53448b93c283ce9448c4ba468c9432aa01d700d3878632f77d2d0`

  

  如需將 ACL 新增至 S3 儲存貯體的詳細資訊，請參閱《Amazon Simple Storage Service 使用者指南》**中的[設定 ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html)。

**每個日誌檔案的 ACL**  
除了儲存貯體上的 ACL，每個日誌檔案上都有一個 ACL。每個日誌檔案上儲存貯體擁有者擁有 `FULL_CONTROL` 許可，分佈擁有者 (如果與儲存貯體擁有者不同) 沒有許可，且 `awslogsdelivery` 帳戶擁有讀取和寫入許可。

**停用記錄**  
如果您停用記錄，CloudFront 不會刪除儲存貯體或日誌檔案的 ACL。您可以視需要刪除 ACL。

### 適用於 SSE-KMS 儲存貯體的必要金鑰政策
<a name="AccessLogsKMSPermissions"></a>

如果標準日誌的 S3 儲存貯體透過客戶自管金鑰來使用 AWS KMS keys (SSE-KMS) 實現伺服器端加密，則必須將下列陳述式新增至客戶自管金鑰的金鑰政策。這可讓 CloudFront 將日誌寫入儲存貯體。您無法搭配 使用 SSE-KMS， AWS 受管金鑰 因為 CloudFront 無法將日誌檔案寫入儲存貯體。

```
{
    "Sid": "Allow CloudFront to use the key to deliver logs",
    "Effect": "Allow",
    "Principal": {
        "Service": "delivery.logs.amazonaws.com"
    },
    "Action": "kms:GenerateDataKey*",
    "Resource": "*"
}
```

如果標準日誌的 S3 儲存貯體使用 SSE-KMS 搭配 [S3 儲存貯體金鑰](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html)，您還需要將 `kms:Decrypt` 權限新增至政策陳述式。在此情況下，完整的政策陳述式如下所示。

```
{
    "Sid": "Allow CloudFront to use the key to deliver logs",
    "Effect": "Allow",
    "Principal": {
        "Service": "delivery.logs.amazonaws.com"
    },
    "Action": [
        "kms:GenerateDataKey*",
        "kms:Decrypt"
    ],
    "Resource": "*"
}
```

**注意**  
當您為 S3 儲存貯體啟用 SSE-KMS 時，請為客戶自管金鑰指定完整的 ARN。如需詳細資訊，請參閱《*Amazon Simple Storage Service 使用者指南*》中的[使用 AWS KMS keys (SSE-KMS) 指定伺服器端加密](https://docs.aws.amazon.com/AmazonS3/latest/userguide/specifying-kms-encryption.html)。

## 啟用標準記錄 (舊版)
<a name="standard-logs-legacy-enable"></a>

若要啟用標準日誌，請使用 CloudFront 主控台或 CloudFront API。

**Contents**
+ [啟用標準記錄 (舊版) (CloudFront 主控台)](#standard-logs-legacy-enable-console)
+ [啟用標準記錄 (舊版) (CloudFront API)](#standard-logs-legacy-enable-api)

### 啟用標準記錄 (舊版) (CloudFront 主控台)
<a name="standard-logs-legacy-enable-console"></a>

**啟用 CloudFront 分佈的標準日誌 (主控台)**

1. 使用 CloudFront 主控台建立[新的分佈](distribution-web-creating-console.md)或[更新現有的分佈](HowToUpdateDistribution.md#HowToUpdateDistributionProcedure)。

1. 在**標準日誌**區段的**日誌交付**中，選擇**開啟**。

1. (選用) 對於 **Cookie 記錄**，如果您想要在日誌中包含 Cookie，請選擇**開啟**。如需詳細資訊，請參閱[Cookie 記錄](DownloadDistValuesGeneral.md#DownloadDistValuesCookieLogging)。
**提示**  
Cookie 記錄是全域設定，適用於分佈的*所有*標準日誌。您無法覆寫個別交付目的地的此設定。

1. 針對**交付至**區段，指定 **Amazon S3 (舊版)**。

1. 指定您的 Amazon S3 儲存貯體。如果您還沒有儲存貯體，您可以選擇**建立**或查看文件來[建立儲存貯體](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)。

1. (選擇性) 針對**日誌字首**功能，請指定您希望 CloudFront 在此分佈的存取日誌檔案名稱前加入的字首 (如果有)，例如 `exampleprefix/`。結尾的斜線) (/) 是可選的，但建議簡化瀏覽日誌檔案。如需詳細資訊，請參閱[日誌字首](DownloadDistValuesGeneral.md#DownloadDistValuesLogPrefix)。

1. 完成更新或建立分佈的步驟。

1. 在**日誌**頁面中，確認分佈旁的標準日誌狀態為**已啟用**。

   如需標準記錄交付和日誌欄位的詳細資訊，請參閱 [標準記錄參考](standard-logs-reference.md)。

### 啟用標準記錄 (舊版) (CloudFront API)
<a name="standard-logs-legacy-enable-api"></a>

您也可以使用 CloudFront API 為您的分佈啟用標準日誌。

**啟用分佈的標準日誌 (CloudFront API)**
+ 使用 [CreateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html) 或 [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html) API 操作，並設定 [LoggingConfig](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_LoggingConfig.html) 物件。

## 編輯標準記錄設定
<a name="ChangeSettings"></a>

您可以啟用或停用記錄、變更存放日誌的 Amazon S3 儲存貯體，以及透過使用 [CloudFront 主控台](https://console.aws.amazon.com/cloudfront/v4/home)或 CloudFront API 來變更日誌檔案的前綴。記錄設定的變更在 12 小時內生效。

如需詳細資訊，請參閱下列主題：
+ 若要使用 CloudFront 主控台更新分佈，請參閱[更新分佈](HowToUpdateDistribution.md)。
+ 若要使用 CloudFront API 更新分佈，請參閱 *Amazon CloudFront API 參考*中的 [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)。

## 傳送日誌至 Amazon S3
<a name="standard-logs-in-s3"></a>

當您將日誌傳送至 Amazon S3 時，您的日誌會以下列格式顯示。

### 檔案名稱格式
<a name="AccessLogsFileNaming"></a>

CloudFront 儲存在 Amazon S3 儲存貯體的每個日誌檔案名稱使用以下檔案名稱格式：

`<optional prefix>/<distribution ID>.YYYY-MM-DD-HH.unique-ID.gz`

使用國際標準時間 (UTC) 的日期與時間。

例如，如果您使用 `example-prefix` 做為前綴，且您的分佈 ID 為 `EMLARXS9EXAMPLE`，則檔案名稱看起來像這樣：

`example-prefix/EMLARXS9EXAMPLE.2019-11-14-20.RT4KCN4SGK9.gz`

啟用分佈的記錄時，您可以指定檔案名稱的選用字首，以便您可以繼續追蹤哪個日誌檔案與那個分佈關聯。如果您包含日誌檔案前綴的值，且您的前綴不是以正斜線 (`/`) 結尾，則 CloudFront 會自動附加一個正斜線。如果您的前綴確實以正斜線結束，CloudFront 就不會加以新增。

在檔案名稱尾端的 `.gz` 表示 CloudFront 使用 gzip 已壓縮了日誌檔案。

## 標準日誌檔案格式
<a name="LogFileFormat"></a>

日誌檔案中的每個項目會提供有關單一檢視器請求的詳細資訊。日誌檔案具有下列特性：
+ 使用 [W3C 延伸日誌檔案格式](https://www.w3.org/TR/WD-logfile.html)。
+ 包含索引標籤分隔值。
+ 包含不一定按時間順序排列的記錄。
+ 包含兩個標頭行：一個有檔案格式版本，而另一個則列出包含在每個記錄的 W3C 欄位。
+ 在欄位值中包含空格和特定其他字元的 URL 編碼對等字元。

  以下字元會使用 URL 編碼的對等字元：
  + ASCII 字元碼 0 到 32 (含)
  + ASCII 字元碼 127 及更高
  + 下表中的所有字元

  URL 編碼標準定義於 [RFC 1738](https://tools.ietf.org/html/rfc1738.html)。


|  URL 編碼的值  |  字元  | 
| --- | --- | 
|  %3C  |  <  | 
|  %3E  |  >  | 
|  %22  |  "  | 
|  %23  |  \$1  | 
|  %25  |  %  | 
|  %7B  |  \$1  | 
|  %7D  |  \$1  | 
|  %7C  |  \$1  | 
|  %5C  |  \$1  | 
|  %5E  |  ^  | 
|  %7E  |  \$1  | 
|  %5B  |  [  | 
|  %5D  |  ]  | 
|  %60  |  `  | 
|  %27  |  '  | 
|  %20  |  空格  | 

## 刪除日誌檔案
<a name="DeletingLogFiles"></a>

CloudFront 不會自動從您的 Amazon S3 儲存貯體中刪除日誌檔案。如需有關從 Amazon S3 儲存貯體刪除日誌檔案的資訊，請參閱《Amazon Simple Storage Service 主控台使用者指南》**中的[刪除物件](https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeletingObjects.html)。

## 定價
<a name="AccessLogsCharges"></a>

標準記錄是 CloudFront 的一項選用功能。CloudFront 不收取啟用標準日誌的費用。不過，在 Amazon S3 上的存放和存取檔案會依一般 Amazon S3 費用計費。您可隨時將其刪除。

如需 Amazon S3 定價的詳細資訊，請參閱 [Amazon S3 定價](https://aws.amazon.com/s3/pricing/)。

如需 CloudFront 定價的詳細資訊，請參閱 [CloudFront 定價](https://aws.amazon.com/cloudfront/pricing/)。