我為我的 Amazon Simple Storage Service (Amazon S3) bucket 儲存貯體開啟了物件鎖定。我需要知道為什麼我仍然可以從此儲存貯體中刪除一些物件。
解決方法
物件層級「物件鎖定」組態設定可判斷您是否可以使用物件鎖定從 Amazon S3 儲存貯體刪除物件。
若要判斷為何仍可使用「物件鎖定」刪除儲存貯體中的特定物件,請勾選套用於該物件的「物件鎖定」設定。另外,請檢查刪除模式。
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請確定您使用的是最新版本的 AWS CLI。
檢查物件上的「物件鎖定」法務保存和「物件鎖定」保留設定
若要檢查這些設定,請開啟 Amazon S3 主控台,然後導覽至物件的「屬性」頁面。您也可以執行標頭物件 AWS CLI 命令:
aws s3api head-object --bucket sample-bucket --key test.png
輸出看起來類似於以下內容:
{
"AcceptRanges": "bytes",
"LastModified": "2023-03-09T04:39:46+00:00",
"ContentLength": 285074,
"ETag": "\"1e8cd7fb4e4ddeafdc6513200f47958f\"",
"VersionId": "Cm_wsGgkj8L3fySNPUu.J7xV1HEKMhGr",
"ContentType": "image/png",
"ServerSideEncryption": "aws:kms",
"Metadata": {},
"SSEKMSKeyId": "arn:aws:kms:us-east-1:111111111111:key/eod57e78-8c46-454a-8c22-897d8be9a5f4",
"ReplicationStatus": "PENDING",
"ObjectLockMode": "COMPLIANCE",
"ObjectLockRetainUntilDate": "2023-03-10T04:39:45.913000+00:00",
"ObjectLockLegalHoldStatus": "ON"
}
如果您對物件套用了法務保存,則會在輸出中看到「物件鎖定法務保存狀態」欄位。如果您對物件套用了「物件鎖定」保留,您也會看到「物件鎖定模式」和「物件鎖定保留日期」欄位。
您未在物件上開啟「物件鎖定」法務保存或「物件鎖定」保留
您可以永久刪除物件。
您已在物件上開啟「物件鎖定」法務保存
只有在具有 S3:PUTOBjectLegalHold 權限的使用者明確關閉對物件的法務保存之後,您才能永久刪除該物件。
您已在物件上開啟「物件鎖定」保留
如果物件受 GOVERNANCE(治理)模式保護,您可以在下列情況下永久刪除物件,即使在保留期結束之前:
- 您擁有 s3:BypassGovernanceRetention 權限。
- 您明確包含 x-amz-bypass-governance-retention:true 作為 DELETE 請求中的要求標頭。
根據預設,Amazon S3 主控台會在 DELETE 請求中包含 x-amz-bypass-governance-retention:true 標頭。因此,如果您擁有 s3:BypassGovernanceRetention 權限,則可以使用 S3 主控台刪除受 GOVERNANCE (治理) 模式保護的物件版本。
透過 s3:BypassGovernanceRetention 權限,您也可以使用 AWS CLI 刪除物件版本。傳遞 delete-object 命令中的 --bypass-governance-retention 選項:
aws s3api delete-object --bucket sample-bucket --key test.txt --version-id "9_gKg5vG56F.TTEUdwkxGpJ3tNDlWlGq" --bypass-governance-retention
如果物件受到 COMPLIANCE (合規) 模式保護,則在保留期結束之前,任何使用者 (包括根帳號) 都無法永久刪除該物件。
檢查刪除模式
簡單刪除
在簡單刪除作業中,您可以刪除物件,而不必在刪除要求中指定物件版本識別碼。
無論「物件鎖定」組態為何,您都可以在具有「物件鎖定」的儲存貯體中的任何物件上執行簡單刪除作業。簡單刪除不會從儲存貯體中刪除任何資料。它只會將刪除標記新增至儲存貯體,並將目前版本保留為非目前版本。
永久刪除
在永久刪除作業中,您可以透過在刪除請求中指定物件版本識別碼來刪除物件。
您可以在受治理保留模式保護的物件上執行永久刪除作業,即使在保留期結束之前也是如此。但是,您必須具有繞過治理模式的權限。
在下列任一情況下,您無法對物件執行永久刪除:
- 物件受 COMPLIANCE (合規) 保留模式保護,而且保留期尚未結束。
- 法務保存會套用至物件。
透過 S3 生命週期規則刪除
無論物件層級「物件鎖定」組態為何,S3 生命週期規則都會透過 Lifecycle 作業繼續執行目前版本的到期。但是,如果這些規則受「物件鎖定」保護,則不會永久刪除目前版本。
相關資訊
法務保存
保留模式