使用 S3 物件鎖定 - Amazon Simple Storage Service

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

使用 S3 物件鎖定

S3 物件鎖定可協助在一段固定時間內或無限期避免刪除或覆寫 Amazon S3 物件。物件鎖定使用 write-once-read-many(WORM) 模型來儲存物件。您可以使用「物件鎖定」來協助滿足需要 WORM 儲存的法規要求,或是新增另一層防護來防止物件變更或刪除。

注意

S3 物件鎖定經 Cohasset Associates 評定,可用於符合 SEC 17a-4、CFTC 和 FINRA 法規的環境。如需物件鎖定與上述法規有何相關性的詳細資訊,請參閱 Cohasset Associates Compliance Assessment

物件鎖定提供兩種管理物件保留的方式: 保留期法務保存。物件版本可以有保留期和/或法務保存。

  • 保留期:保留期會指定一段讓物件保持鎖定狀態的固定期間。您可以為個別物件設定唯一的保留期間。此外,您可以在 S3 儲存貯體上設定預設保留期。您也可以使用儲存貯體政策中的s3:object-lock-remaining-retention-days條件鍵來限制允許的最小和最長保留期間。這可協助您建立保留期間範圍,並限制可能短於或長於此範圍的保留期間。

  • 法務保存:法務保存提供與保留期相同的保護,但沒有過期日期。因此,在您明確移除法務保存之前,它都會持續保留。法律訴訟保留獨立於保留期間,且會置於個別物件版本上。

物件鎖定只能在已啟用 S3 版本控制的儲存貯體中使用。當您鎖定物件版本時,Amazon S3 會將鎖定資訊存放在該物件版本的中繼資料中。當您在物件上設定保留期或法務保存時,僅會保護請求中指定的版本。保留期間和法律訴訟保留不會阻止建立物件的新版本,也不會刪除要新增至物件頂端的標記。如需 S3 版本控制的詳細資訊,請參閱「在 S3 儲存貯體中使用版本控制」。

若您將物件放入儲存貯體,而當中已包含具備相同物件索引鍵名稱的現有受保護物件,則 Amazon S3 會建立該物件的新版本。現有的受保護版本物件則會根據其保留組態,而保持鎖定狀態。

S3 物件鎖定的運作方式

保留期

保留期可在一段固定期間保護物件版本。當您為物件版本設定保留期時,Amazon S3 會將時間戳記存放在物件版本的中繼資料內,以指出保留期何時過期。保留期過後,就可以覆寫或刪除物件版本。

您可以對個別物件版本或儲存貯體的屬性明確設定保留期,以便自動套用至儲存貯體中的所有物件。當您明確地將保留期套用至物件版本時,您可以為物件版本指定「保留截止日期」。Amazon S3 會將此日期儲存在物件版本的中繼資料中。

您也可以在儲存貯體的屬性中設定保留期。當您在儲存貯體上設定保留期時,可以指定一段以天或年為單位的時間,代表要保護放置在儲存貯體中的每個物件版本的期間。當您將物件放入儲存貯體時,Amazon S3 會將指定的期間與物件版本的建立時間戳記相加,以計算出物件版本的保留截止日期。物件版本即可受到保護,完全就像您明確使用保留期對物件版本設定個別鎖定一樣。

注意

當您對儲存貯體中具有明確的個別保留模式和保留期的物件版本執行 PUT 時,物件版本的個別物件鎖定設定會覆寫任何儲存貯體屬性保留設定。

如同所有其他的物件鎖定設定一樣,保留期也可套用至個別的物件版本。單一物件的不同版本可以擁有不同的保留模式和保留期。

例如,假設您有一個保留期為 15 天到 30 天的物件,而且您將同名且保留期為 60 天的物件 PUT 到 Amazon S3。在此情況下,PUT 請求會成功,而且 Amazon S3 會建立新版本的物件,且保留期為 60 天。舊版本仍會維持原本的保留期,並在 15 天後變成可供刪除的狀態。

對物件版本套用保留設定之後,可以延長保留期。若要這麼做,請針對物件版本提交新的物件鎖定請求,並將保留截止日期設為晚於目前為物件版本設定的日期。Amazon S3 會以新的更長期間取代現有的保留期。只要使用者具備設定物件保留期的許可,就可以延長物件版本的保留期。若要設定保留期,您必須具備 s3:PutObjectRetention 許可。

在物件或 S3 儲存貯體上設定保留期時,必須選取兩種保留模式之一:合規控管

保留模式

S3 物件鎖定提供了兩種保留模式,可分別對物件套用不同程度的保護:

  • 合規模式

  • 控管模式

合規模式下,任何使用者 (包括 AWS 帳戶中的根使用者) 都無法覆寫或刪除受保護的物件版本。當物件在合規模式中受到鎖定時,您無法變更物件的保留模式,亦無法縮短它的保留期。合規模式可協助確保物件版本在保留期間均不會受到覆寫或刪除。

注意

在符合性模式下刪除物件的保留日期到期之前,唯一的方法是刪除相關物件 AWS 帳戶。

控管模式中,除非使用者具備特殊許可,否則都無法覆寫或刪除物件版本,或更改其鎖定設定。使用控管模式時,您可以保護物件免於遭到大多數使用者刪除,但您仍可以將許可授予部分使用者,讓他們視需要更改保留設定或刪除物件。您也可以使用控管模式來測試保留期設定,之後再建立合規模式的保留期。

若要覆寫或移除控管模式的保留設定,您必須具備 s3:BypassGovernanceRetention 許可,且需在任何請求中明確加入 x-amz-bypass-governance-retention:true 作為請求標頭,才能請求覆寫控管模式。

注意

根據預設,Amazon S3 主控台會加入 x-amz-bypass-governance-retention:true 標頭。如果您嘗試刪除受控管模式保護的物件,且您具備 s3:BypassGovernanceRetention 許可,則操作會成功。

使用物件鎖定,您還可以對物件版本設定法務保存。法務保存就像保留期一樣,可避免物件版本遭到覆寫或刪除。不過,法務保存不具有一段相關聯的固定期間,除非將其移除,否則會持續有效。任何具備 s3:PutObjectLegalHold 許可的使用者均可自由設定並移除法務保存。

法務保存和保留期是彼此獨立的。當您為物件版本設定法務保存時,並不會影響該物件版本的保留模式或保留期。

例如,假設您在物件版本同時受到保留期保護的情況下,為物件版本設定法務保存。如果保留期到期,則物件不會失去其 WORM 保護。反之,法務保存會持續保護物件,直到授權使用者明確移除法務保存為止。同樣地,如果您移除法務保存但物件版本的保留期仍有效,則直到保留期過期為止物件版本仍會受到保護。

使用 S3 物件鎖定的最佳做法

如果您想要保護大多數使用者在預先定義的保留期間刪除物件,但同時希望某些具有特殊權限的使用者能夠彈性地變更保留設定或刪除物件,請考慮使用治理模式

如果您不想讓任何使用者 (包括您的中的 root 使用者) 都能夠在預先定義的保留期間刪除物件 AWS 帳戶,請考慮使用符合性模式。如果您需要儲存合規資料,則可以使用此模式。

當您不確定您希望對象保持不可變的時間時,可以使用 Legal Hold。這可能是因為您即將對數據進行了外部審核,並希望在審核完成之前保持對象不可變。或者,您可能有一個正在進行的項目,利用您希望在項目完成之前保持不可變的數據集。

所需的許可

物件鎖定操作需要特定許可。根據您嘗試執行的確切操作而定,您可能需要以下任何許可:

  • s3:BypassGovernanceRetention

  • s3:GetBucketObjectLockConfiguration

  • s3:GetObjectLegalHold

  • s3:GetObjectRetention

  • s3:PutBucketObjectLockConfiguration

  • s3:PutObjectLegalHold

  • s3:PutObjectRetention

如需 Amazon S3 許可的完整清單及說明,請參閱服務授權參考中適用於 Amazon S3 的動作、資源和條件金鑰

如需有關搭配有許可使用條件的資訊,請參閱 Amazon S3 條件索引鍵範例