物件鎖定的考量事項 - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

物件鎖定的考量事項

Amazon S3 物件鎖定可協助在一段固定時間內或無限期避免刪除或覆寫物件。

您可以使用 Amazon S3 主控台、 AWS Command Line Interface (AWS CLI) AWS SDKs或 Amazon S3 REST API 檢視或設定物件鎖定資訊。如需 S3 物件鎖定功能的一般資訊,請參閱 使用物件鎖定鎖定物件

重要
  • 您在儲存貯體上啟用物件鎖定後,就無法停用該儲存貯體的物件鎖定或暫停版本控制。

  • 具有物件鎖定的 S3 儲存貯體不能用作伺服器存取日誌的目的地儲存貯體。如需詳細資訊,請參閱使用伺服器存取記錄記錄要求

檢視鎖定資訊的許可

您可以使用 以程式設計方式檢視 Amazon S3 物件版本的物件鎖定狀態 HeadObjectGetObject 操作。這兩項操作都會傳回所指定物件版本的保留模式、保留截止日期和法務保存狀態。此外,您可以使用 S3 S3庫存,檢視 S3 儲存貯體中多個物件的物件鎖定狀態。

若要檢視物件版本的保留模式和保留期,您必須具備 s3:GetObjectRetention 許可。若要檢視物件版本的法務保存狀態,您必須具備 s3:GetObjectLegalHold 許可。若要檢視儲存貯體的預設保留組態,您必須具備 s3:GetBucketObjectLockConfiguration 許可。如果您在儲存貯體上發出物件鎖定組態的請求,但該儲存貯體未啟用 S3 物件鎖定,則 Amazon S3 會傳回錯誤。

繞過控管模式

如果您具有 s3:BypassGovernanceRetention 許可,即可對控管模式中鎖定的物件版本執行操作,就像它們未受保護一樣。這些操作包括刪除物件版本、縮短保留期,或藉由設定包含空白參數的新 PutObjectRetention 請求來移除物件鎖定保留期。

若要繞過控管模式,您必須在請求中明確指出您要繞過此模式。若要執行此操作,請在PutObjectRetentionAPI操作請求中包含 x-amz-bypass-governance-retention:true 標頭,或透過 AWS CLI 或 提出的請求,請使用等效參數 AWS SDKs。如果您具有 s3:BypassGovernanceRetention 許可,則 S3 主控台會對透過 S3 主控台提出的請求自動套用此標頭。

注意

繞過控管模式並不會影響物件版本的法務保存狀態。如果物件版本已啟用法務保存,則法務保存會保留,並防止請求覆寫或刪除物件版本。

搭配 S3 複寫使用物件鎖定

您可以使用物件鎖定搭配 S3 複寫,以在 S3 儲存貯體之間啟用自動非同步複製鎖定物件及其保留中繼資料。這表示對於複寫的物件,Amazon S3 會取得來源儲存貯體的物件鎖定組態。換句話說,如果來源儲存貯體已啟用物件鎖定,則目的地儲存貯體也必須啟用物件鎖定。如果物件直接上傳至目的地儲存貯體 (S3 複寫外部),則會在目的地儲存貯體上進行物件鎖定集。當您使用複寫時,在來源儲存貯體中的物件會複寫到一或多個目的地儲存貯體

若要在已啟用物件鎖定的儲存貯體上設定複寫,您可以使用 S3 主控台 AWS CLI、Amazon S3 REST API或 AWS SDKs。

注意

若要將物件鎖定與複寫搭配使用,您必須授予 AWS Identity and Access Management (IAM) 角色中來源 S3 儲存貯體的兩個額外許可,以設定複寫。這兩項額外的許可為 s3:GetObjectRetentions3:GetObjectLegalHold。若該角色有 s3:Get* 許可陳述式,該陳述式即符合需求。如需詳細資訊,請參閱設定即時複寫的許可

如需有關 S3 複寫的一般資訊,請參閱 在 區域內和跨 區域複寫物件

如需設定 S3 複寫的範例,請參閱 設定即時複寫的範例

搭配加密使用物件鎖定

Amazon S3 預設會加密所有新物件。您可以搭配加密的物件使用物件鎖定。如需詳細資訊,請參閱使用加密來保護資料

雖然 Object Lock 有助於防止刪除或覆寫 Amazon S3 物件,但無法防止遺失對要刪除之加密金鑰的存取權。例如,如果您使用 AWS KMS 伺服器端加密來加密物件,並且刪除 AWS KMS 金鑰,則物件可能會變得無法讀取。

將物件鎖定搭配 Amazon S3 庫存清單

您可以設定 Amazon S3 庫存清單,以依照定義的排程在 S3 儲存貯體中建立物件的清單。您可以設定讓 Amazon S3 庫存清單包含物件的下列物件鎖定中繼資料:

  • 保留截止日期

  • 保留模式

  • 法務保存狀態

如需詳細資訊,請參閱使用 S3 庫存編製和分析資料目錄

使用物件鎖定管理 S3 生命週期政策

受保護物件上的物件生命週期管理組態仍可正常運作,包括放置刪除標記的功能。不過,S3 生命週期過期政策無法刪除鎖定版本的物件。無論物件位於哪個儲存類別,以及在儲存類別之間進行整個 S3 生命週期轉換,都會維護物件鎖定。

如需有關管理物件生命週期的詳細資訊,請參閱管理物件的生命週期

使用物件鎖定管理刪除標記

雖然您無法刪除受保護的物件版本,但您仍可以為該物件版本建立刪除標記。將刪除標記放置在物件上,並不會刪除物件或其物件版本。不過,這會使得 Amazon S3 在大多數方面表現得彷彿物件已遭刪除一樣。如需詳細資訊,請參閱使用刪除標記

注意

無論基礎物件上是否有任何保留期或法務保留,刪除標記都不會受到 WORM保護。

使用 S3 Storage Lens 搭配物件鎖定

若要查看啟用物件鎖定的儲存體位元組和物件計數的指標,您可以使用 Amazon S3 Storage Lens。S3 Storage Lens 是一種雲端儲存體分析功能,您可以用來了解整個組織使用物件儲存體的情況及其活動情形。

如需詳細資訊,請參閱使用 S3 Storage Lens 保護您的資料

如需指標的完整清單,請參閱Amazon S3 Storage Lens 指標詞彙表

將物件上傳至啟用物件鎖定的儲存貯體

任何使用物件鎖定設定保留期的物件上傳請求都需要 Content-MD5x-amz-sdk-checksum-algorithm標頭。這些標頭是在上傳期間驗證物件完整性的方法。

使用 Amazon S3 主控台上傳物件時,S3 會自動新增Content-MD5標頭。您可以選擇透過 主控台指定額外的總和檢查碼函數和總和檢查值作為x-amz-sdk-checksum-algorithm標頭。如果您使用 PutObjectAPI,則必須指定Content-MD5標頭、x-amz-sdk-checksum-algorithm標頭或兩者,才能設定物件鎖定保留期。

如需詳細資訊,請參閱檢查物件完整性

設定事件和通知

您可以使用 Amazon S3 事件通知來追蹤物件鎖定組態和資料的存取和變更 AWS CloudTrail。如需 的相關資訊 CloudTrail,請參閱 使用者指南 中的什麼是 AWS CloudTrail?AWS CloudTrail

您也可以使用 Amazon 根據此資料 CloudWatch 產生提醒。如需 的相關資訊 CloudWatch,請參閱 Amazon 使用者指南 CloudWatch中的什麼是 Amazon?。 CloudWatch

使用儲存貯體政策設定保留期的限制

您可以使用儲存貯體政策來設定儲存貯體允許的最短和最長保留期。最長保留期為 100 年。

下列範例顯示的儲存貯體原則使用 s3:object-lock-remaining-retention-days 條件索引鍵,設定最長 10 天的保留期間。

{ "Version": "2012-10-17", "Id": "SetRetentionLimits", "Statement": [ { "Sid": "SetRetentionPeriod", "Effect": "Deny", "Principal": "*", "Action": [ "s3:PutObjectRetention" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*", "Condition": { "NumericGreaterThan": { "s3:object-lock-remaining-retention-days": "10" } } } ] }
注意

如果您的儲存貯體是複寫組態的目的地儲存貯體,則您可以針對使用複寫建立的物件複本設定允許的最短和最長保留期。若要這麼做,您必須在儲存貯體政策中允許 s3:ReplicateObject 動作。如需複寫許可的詳細資訊,請參閱 設定即時複寫的許可

如需儲存貯體政策的詳細資訊,請參閱下列主題: