為什麼我的 Amazon S3 伺服器存取日誌沒有傳遞到儲存貯體?

2 分的閱讀內容
0

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

簡短描述

當您第一次開啟伺服器存取記錄或變更日誌的目的地儲存貯體時,這些變更需要一些時間才能實作。在您開啟記錄後的第一個小時內,Amazon S3 可能不會記錄傳遞請求。此外,Amazon S3 可能會在您變更目的地儲存貯體後的第一個小時內,將日誌傳遞到先前的目的地儲存貯體。

變更記錄組態後,請等待至少 1 小時再確認日誌。如需詳細資訊,請參閱伺服器日誌傳遞最佳方式

請確定來源儲存貯體與目的地儲存貯體位於相同的 AWS 區域,且相同的 AWS 帳戶擁有這些儲存貯體。此外,如果您為目的地儲存貯體開啟了 Requester Pays 請求者付款 ,請將其關閉。

如果您仍然看不到目的地儲存貯體中的日誌,請使用下列疑難排解來解決問題。

解決方法

檢查日誌傳遞群組是否具有目的地儲存貯體的存取權

Amazon S3 使用日誌傳遞群組,將伺服器存取日誌傳遞至目的地儲存貯體。若要接收伺服器存取日誌,您必須授予記錄服務主體對目標儲存貯體的存取權。

若要授與對目的地儲存貯體的存取權,請建立 S3 儲存貯體政策。您可以使用存取控制清單 (ACL) 來授與對目的地儲存貯體的存取權。不過,最佳做法是只有在您必須單獨控制每個物件的存取權時,才使用 ACL。

透過儲存貯體政策授與存取權

更新儲存貯體政策,以將 s3:PutObject 權限授與記錄服務主體。

政策範例:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "S3ServerAccessLogsPolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "logging.s3.amazonaws.com"
            },
            "Action": [
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::DOC-EXAMPLE-DESTINATION-BUCKET/EXAMPLE-LOGGING-PREFIX*",
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:s3:::DOC-EXAMPLE-SOURCE-BUCKET"
                },
                "StringEquals": {
                    "aws:SourceAccount": "SOURCE-ACCOUNT-ID"
                }
            }
        }
    ]
}

透過儲存貯體 ACL 授與存取權

將授權項目新增至儲存貯體 ACL,授與 S3 日誌傳遞群組寫入權限。

若要修改目的地儲存貯體的 ACL,請完成下列步驟:

  1. 開啟 Amazon S3 console (Amazon S3 主控台)。
  2. Buckets (儲存貯體) 清單中,選取目的地儲存貯體。
  3. 選擇 Permissions (權限) 索引標籤。
  4. 在存取控制清單 (ACL) 區段中,選擇 Edit (編輯)。
  5. S3 log delivery group (S3 日誌傳遞群組) 下,選取 Objects - Write (物件 - 寫入)。
  6. S3 log delivery group (S3 日誌傳遞群組) 下,選取 Bucket ACL - Write (儲存貯體 ACL - 寫入)。
  7. 選擇 Save changes (儲存變更)。

確認目的地儲存貯體的政策是否拒絕存取日誌

檢查目的地儲存貯體的政策是否有包含 "Effect": "Deny" 的陳述式。如果政策具有 Deny 陳述式,請確認 Deny 陳述式未禁止對儲存貯體的寫入存取權。

**注意:**最佳做法是為伺服器存取日誌使用單獨的儲存貯體。儲存貯體預設為私有,因此您不需要在儲存貯體政策中使用 Deny 陳述式,來避免未經授權存取儲存貯體。

請確認您已關閉目的地儲存貯體的 Amazon S3 物件鎖定

請確定已關閉目的地儲存貯體的物件鎖定。當您開啟「物件鎖定」時,Amazon S3 無法傳遞伺服器存取日誌。

請檢查您是否選取了 SSE-S3 作為加密金鑰

如果您在目的地儲存貯體上使用預設加密,請確認您已選取使用 Amazon S3 受管金鑰 (SSE-S3) 的伺服器端加密進行加密。伺服器日誌傳遞不支援使用 AWS Key Management Service (KMS) 金鑰的伺服器端加密。若要設定預設加密,請參閱設定預設加密

AWS 官方
AWS 官方已更新 3 個月前