為什麼即使在我為 Amazon S3 儲存貯體開啟物件鎖定之後仍然可以刪除物件?

1 分的閱讀內容
0

我為我的 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 作業繼續執行目前版本的到期。但是,如果這些規則受「物件鎖定」保護,則不會永久刪除目前版本。

相關資訊

法務保存

保留模式

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