本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定標準記錄 (舊版)
備註
-
本主題適用於舊版的標準記錄。如需最新版本,請參閱設定標準記錄 (v2)。
-
如果您已啟用標準記錄 (舊版),且想要啟用 Amazon S3 的標準記錄 (v2),建議您指定不同的 Amazon S3 儲存貯體,或使用相同儲存貯體中的個別路徑 (例如,使用日誌字首或分割區)。這可協助您追蹤哪些日誌檔案與哪些分佈相關聯,並防止日誌檔案互相覆寫。
若要開始使用標準記錄 (舊版),請完成下列步驟:
-
選擇將接收日誌的 Amazon S3 儲存貯體,並新增必要的許可。
-
從 CloudFront 主控台或 CloudFront API 設定標準記錄 (舊版)。您只能選擇 Amazon S3 儲存貯體來接收您的日誌。
-
檢視您的存取日誌。
為標準日誌選擇 Amazon S3 儲存貯體
當您啟用分佈記錄時,請指定您要 CloudFront 存放日誌檔案存的 Amazon S3 儲存貯體。如果您使用 Amazon S3 做為原始伺服器,我們建議您為日誌檔案使用單獨的儲存貯體。
指定您希望 CloudFront 存放存取日誌的 Amazon S3 儲存貯體,例如 amzn-s3-demo-bucket.s3.amazonaws.com
。
您可以在同一個儲存貯體存放多個分佈的日誌檔案。啟用記錄時,您可以指定檔案名稱的選用字首,以便您可以繼續追蹤哪個日誌檔案與那個分佈關聯。
關於選擇 S3 儲存貯體
-
您的儲存貯體必須啟用存取控制清單 (ACL)。如果您從 CloudFront 主控台選擇未啟用 ACL 的儲存貯體,則會顯示錯誤訊息。請參閱 許可。
-
不要選擇 S3 物件擁有權設定為強制執行儲存貯體擁有者的 Amazon S3 儲存貯體。該設定會停用儲存貯體及其中物件的 ACL,這可防止 CloudFront 將記錄檔傳送至儲存貯體。
請勿在下列 中選擇 Amazon S3 儲存貯體 AWS 區域。CloudFront 不會將標準日誌交付到這些區域中的儲存貯體:
-
非洲 (開普敦)
-
亞太區域 (香港)
-
亞太區域 (海德拉巴)
-
亞太區域 (雅加達)
-
亞太區域 (墨爾本)
-
加拿大西部 (卡加利)
-
歐洲 (米蘭)
-
歐洲 (西班牙)
-
歐洲 (蘇黎世)
-
以色列 (特拉維夫)
-
Middle East (Bahrain)
-
中東 (阿拉伯聯合大公國)
-
許可
重要
從 2023 年 4 月開始,您必須為用於 CloudFront 標準日誌的新 S3 儲存貯體啟用 S3 S3 ACLs。您可以在建立儲存貯體時啟用 ACLs,或為現有儲存貯ACLs。
有關變更的詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的新 S3 儲存貯體的預設設定常見問答集和 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 中停用分佈的記錄功能,然後再次啟用。如需詳細資訊,請參閱標準記錄。
-
在 Amazon S3 主控台中瀏覽至 S3 儲存貯體,接著新增許可,即可為
awslogsdelivery
手動新增 ACL 許可。若要為awslogsdelivery
新增 ACL,您必須提供該帳戶的正式 ID,如下所示:c4c1ede66af53448b93c283ce9448c4ba468c9432aa01d700d3878632f77d2d0
如需將 ACLs 新增至 S3 儲存貯體的詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的設定 ACLs。
-
- 每個日誌檔案的 ACL
-
除了儲存貯體上的 ACL,每個日誌檔案上都有一個 ACL。每個日誌檔案上儲存貯體擁有者擁有
FULL_CONTROL
許可,分佈擁有者 (如果與儲存貯體擁有者不同) 沒有許可,且awslogsdelivery
帳戶擁有讀取和寫入許可。 - 停用記錄
-
如果您停用記錄,CloudFront 不會刪除儲存貯體或日誌檔案的 ACL。您可以視需要刪除 ACLs。
適用於 SSE-KMS 儲存貯體的必要金鑰政策
如果標準日誌的 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 儲存貯體金鑰,您也需要將 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) 指定伺服器端加密。
啟用標準記錄 (舊版)
若要啟用標準日誌,請使用 CloudFront 主控台或 CloudFront API。
啟用標準記錄 (舊版) (CloudFront 主控台)
啟用 CloudFront 分佈的標準日誌 (主控台)
-
針對標準記錄區段,針對日誌交付,選擇開啟。
-
(選用) 對於 Cookie 記錄,如果您想要在日誌中包含 Cookie,請選擇開啟。如需詳細資訊,請參閱Cookie 記錄。
提示
Cookie 記錄是全域設定,適用於分佈的所有標準日誌。您無法覆寫個別交付目的地的此設定。
-
針對交付至區段,指定 Amazon S3 (舊版)。
-
指定您的 Amazon S3 儲存貯體。如果您還沒有,您可以選擇建立或查看文件來建立儲存貯體。
-
(選用) 對於日誌字首,指定您希望 CloudFront 為此分佈的存取日誌檔案名稱加上字首的字串,例如
exampleprefix/
。結尾的斜線) (/) 是可選的,但建議簡化瀏覽日誌檔案。如需詳細資訊,請參閱日誌字首。 -
完成更新或建立分佈的步驟。
-
在日誌頁面中,確認分佈旁的標準日誌狀態為已啟用。
如需標準記錄交付和日誌欄位的詳細資訊,請參閱 標準記錄參考。
啟用標準記錄 (舊版) (CloudFront API)
您也可以使用 CloudFront API 為您的分佈啟用標準日誌。
啟用分佈的標準日誌 (CloudFront API)
-
使用 CreateDistribution 或 UpdateDistribution API 操作,並設定 LoggingConfig 物件。
編輯標準記錄設定
您可以啟用或停用記錄、變更存放日誌的 Amazon S3 儲存貯體,以及透過使用 CloudFront 主控台
如需詳細資訊,請參閱下列主題:
-
若要使用 CloudFront 主控台更新分佈,請參閱更新分佈。
-
若要使用 CloudFront API 更新分佈,請參閱 Amazon CloudFront API 參考中的 UpdateDistribution。
將日誌傳送至 Amazon S3
當您將日誌傳送至 Amazon S3 時,您的日誌會以下列格式顯示。
檔案名稱格式
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 已壓縮了日誌檔案。
標準日誌檔案格式
日誌檔案中的每個項目會提供有關單一檢視器請求的詳細資訊。日誌檔案具有下列特性:
-
使用 W3C 延伸日誌檔案格式
。 -
包含索引標籤分隔值。
-
包含不一定按時間順序排列的記錄。
-
包含兩個標頭行:一個有檔案格式版本,而另一個則列出包含在每個記錄的 W3C 欄位。
-
在欄位值中包含空格和特定其他字元的 URL 編碼對等字元。
以下字元會使用 URL 編碼的對等字元:
-
ASCII 字元碼 0 到 32 (含)
-
ASCII 字元碼 127 及更高
-
下表中的所有字元
URL 編碼標準定義於 RFC 1738
。 -
URL 編碼的值 |
字元 |
---|---|
%3C |
< |
%3E |
> |
%22 |
" |
%23 |
# |
%25 |
% |
%7B |
{ |
%7D |
} |
%7C |
| |
%5C |
\ |
%5E |
^ |
%7E |
~ |
%5B |
[ |
%5D |
] |
%60 |
` |
%27 |
' |
%20 |
空格 |
刪除日誌檔案
CloudFront 不會自動從您的 Amazon S3 儲存貯體刪除日誌檔案。如需有關從 Amazon S3 儲存貯體刪除日誌檔案的資訊,請參閱《Amazon Simple Storage Service 主控台使用者指南》中的刪除物件。
定價
標準記錄是 CloudFront 的一項選用功能。CloudFront 不收取啟用標準日誌的費用。不過,您在 Amazon S3 上存放和存取檔案時,會產生一般的 Amazon S3 費用。您可以隨時刪除它們。
如需 Amazon S3 定價的詳細資訊,請參閱 Amazon S3 定價
如需 CloudFront 定價的詳細資訊,請參閱 CloudFront 定價