為什麼我的 Amazon S3 伺服器存取記錄並未傳遞?

1 分的閱讀內容
0

我設定了 Amazon Simple Storage Service (Amazon S3) 伺服器存取記錄。但是,日誌並未填入應傳遞的儲存貯體。

簡短說明

如果您設定 Amazon 3 伺服器存取記錄,但沒有在預期的儲存貯體中看到日誌,請檢查下列項目:

  • 日誌傳遞群組 (傳遞帳戶) 可存取目標儲存貯體。
  • 目標儲存貯體的儲存貯體政策不得拒絕存取日誌。
  • Amazon S3 物件鎖定不得開啟目標儲存貯體。
  • 如果目標儲存貯體已開啟預設加密,則必須將 AES256 (SSE-S3) 選取為加密金鑰。
  • 近期的記錄組態變更需要一些時間才會生效。

解決方法

日誌傳遞群組可存取目標儲存貯體

名稱為日誌傳遞群組的傳遞帳戶會將伺服器存取日誌傳遞至目標儲存貯體 (日誌傳送的目標儲存貯體)。如要接收伺服器存取日誌,日誌傳遞群組必須擁有目標儲存貯體的寫入存取權。檢查目標儲存貯體的存取控制清單 (ACL),以確認日誌傳遞群組是有否寫入存取權。

如要使用 Amazon S3 主控台檢查並修改目標儲存貯體的 ACL,請執行下列操作:

  1. 開啟 Amazon S3 主控台
  2. 從儲存貯體清單中選擇伺服器存取日誌應傳送目的地的目標儲存貯體。
  3. 選擇許可索引標籤。
  4. 選擇存取控制清單
  5. S3 日誌傳遞群組下方,確認群組是否可存取寫入物件。如果群組無法存取寫入物件,請繼續執行下一步驟。
  6. 選取記錄傳遞
  7. LogDelivery 對話方塊的存取物件下方,選取寫入物件
  8. 選擇儲存

目標儲存貯體的儲存貯體政策不得拒絕存取日誌

檢查儲存貯體政策,取得目標儲存貯體資訊。在儲存貯體政策中搜尋包含 "Effect": "Deny" 的陳述式。然後,確認拒絕陳述式並未阻止存取日誌寫入到儲存貯體。

注意: 最佳作法是為伺服器存取日誌使用個別儲存貯體。根據預設,S3 儲存貯體為私有,因此您不需要在儲存貯體政策中使用拒絕陳述式,來避免未經授權存取儲存貯體。如果 AWS Identity and Access Management (IAM) 使用者或角色與儲存貯體位於相同 AWS 帳戶,且 IAM 身分在其 IAM 政策中擁有儲存貯體相關權限,則該使用者或角色可以存取儲存貯體。

Amazon S3 物件鎖定不得開啟目標儲存貯體

確認目標儲存貯體是否開啟物件鎖定。物件鎖定可避免傳遞伺服器存取日誌,因此您必須針對希望日誌傳送到的儲存貯體關閉物件鎖定。

如果目標儲存貯體已開啟預設加密,則必須選取 AES256 (SSE-S3) 選取

如果您在目標儲存貯體上使用預設加密,請確認已將 AES-256 (SSE-S3) 選取為加密金鑰。不支援使用 AWS-KMS (SSE-KMS) 進行加密。如需如何使用 Amazon S3 主控台設定預設加密的指示,請參閱開啟 Amazon S3 預設儲存貯體加密

近期的記錄組態變更需要一些時間才會生效

首次開啟伺服器存取記錄,或變更日誌的目標儲存貯體,可能需要一些時間才能完全實作。在開啟記錄後的一小時內,可能無法記錄部分請求。在變更目標儲存貯體後的一小時內,部分日誌可能仍會傳遞至上一個目標儲存貯體。對記錄進行組態變更後,請務必等候約一小時,以便驗證日誌。如需詳細資訊,請參閱伺服器日誌傳遞最佳方式


相關資訊

如何傳遞日誌?

AWS 官方
AWS 官方已更新 1 年前