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

物件鎖定的考量事項

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

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

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

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

檢視鎖定資訊的許可

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

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

繞過控管模式

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

若要繞過控管模式,您必須在請求中明確指出您要繞過此模式。若要這麼做,請在 PutObjectRetention API 作業要求中加入x-amz-bypass-governance-retention:true標頭,或使用對等參數搭配透過 AWS CLI 或 AWS SDK 發出的要求。如果您具有 s3:BypassGovernanceRetention 許可,則 S3 主控台會對透過 S3 主控台提出的請求自動套用此標頭。

注意

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

搭配 S3 複寫使用物件鎖定

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

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

注意

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

如需有關 S3 複寫的一般資訊,請參閱 複製物件概觀

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

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

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

  • 保留截止日期

  • 保留模式

  • 法務保存狀態

如需詳細資訊,請參閱 Amazon 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-MD5標頭。MD5 摘要是將物件上傳至值區之後驗證物件完整性的一種方法。上傳物件後,Amazon S3 會計算物件的 MD5 摘要,並將其與您提供的值進行比較。僅當兩個摘要匹配時,請求才會成功。S3 主控台會自動新增此標頭,但是您必須在使用 PutObjectAPI 時指定此標頭。

如需詳細資訊,請參閱 上傳物件時使用 Content-MD5

設定事件和通知

您可以使用 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:::example-s3-bucket1/*", "Condition": { "NumericGreaterThan": { "s3:object-lock-remaining-retention-days": "10" } } } ] }
注意

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

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