

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

# 使用物件鎖定來鎖定物件
<a name="object-lock"></a>

S3 物件鎖定可協助在一段固定時間內或無限期避免刪除或覆寫 Amazon S3 物件。物件鎖定會使用*單寫多讀* (WORM) 模式來存放物件。您可以使用物件鎖定協助符合要求使用 WORM 儲存的法規需求，或多加一道保護，以免物件遭到變更或刪除。

**注意**  
S3 物件鎖定經 Cohasset Associates 評定，可用於符合 SEC 17a-4、CFTC 和 FINRA 法規的環境。如需物件鎖定與上述法規有何相關性的詳細資訊，請參閱 [Cohasset Associates Compliance Assessment](https://d1.awsstatic.com/r2018/b/S3-Object-Lock/Amazon-S3-Compliance-Assessment.pdf)。

物件鎖定提供兩種管理物件保留的方式： *保留期*和*法務保存*。物件版本可以有保留期和/或法務保存。
+ **保留期**：保留期會指定一段讓物件版本保持鎖定狀態的固定期間。您可以為個別物件設定唯一保留期。此外，您還可以設定 S3 儲存貯體的預設保留期。您也可以使用儲存貯體政策中的 `s3:object-lock-remaining-retention-days` 條件金鑰來限制允許的保留期間下限和上限。此條件索引鍵可協助您建立允許的保留期。如需詳細資訊，請參閱[使用儲存貯體政策設定保留期的限制](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-managing-retention-limits)
+ **法務保存**：法務保存提供與保留期相同的保護，但沒有過期日期。因此，在您明確移除法務保存之前，它都會持續保留。法務保存與保留期互不相關，並且會針對個別物件版本進行設定。

物件鎖定只能在已啟用 S3 版本控制的儲存貯體中使用。當您鎖定物件版本時，Amazon S3 會將鎖定資訊存放在該物件版本的中繼資料中。當您在物件上設定保留期或法務保存時，僅會保護請求中指定的版本。保留期和法務保存不會阻止建立物件的新版本，或阻止在物件上新增刪除標記。如需 S3 版本控制的詳細資訊，請參閱「[使用 S3 版本控制保留多個版本的物件](Versioning.md)」。

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

## S3 物件鎖定的運作方式
<a name="object-lock-overview"></a>

**Topics**
+ [保留期](#object-lock-retention-periods)
+ [保留模式](#object-lock-retention-modes)
+ [法務保存](#object-lock-legal-holds)
+ [S3 物件鎖定如何執行刪除功能](#object-lock-how-deletes-work)
+ [使用 S3 物件鎖定的最佳實務](#object-lock-best-practices)
+ [所需的許可](#object-lock-permissions)

### 保留期
<a name="object-lock-retention-periods"></a>

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

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

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

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

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

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

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

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

### 保留模式
<a name="object-lock-retention-modes"></a>

S3 物件鎖定提供了兩種保留模式，可分別對物件套用不同程度的保護：
+ 合規模式
+ 控管模式

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

**注意**  
在物件的保留日期過期之前，在合規模式下刪除物件的唯一方法是刪除相關聯的 AWS 帳戶。

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

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

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

### 法務保存
<a name="object-lock-legal-holds"></a>

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

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

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

### S3 物件鎖定如何執行刪除功能
<a name="object-lock-how-deletes-work"></a>

如果您的儲存貯體已啟用 S3 物件鎖定，且物件受到保留期間或法務保存的保護，而且您嘗試刪除物件，Amazon S3 會根據您嘗試刪除物件的方式傳回下列其中一個回應：
+ **永久 `DELETE` 請求** – 如果您發出永久 `DELETE` 請求 (指定版本 ID 的請求)，Amazon S3 會在您嘗試刪除物件時傳回存取遭拒 (`403 Forbidden`) 錯誤。如需有關物件鎖定的存取遭拒錯誤故障診斷的詳細資訊，請參閱 [S3 物件鎖定設定](troubleshoot-403-errors.md#troubleshoot-403-object-lock)。
+ **簡單 `DELETE` 請求** – 如果您發出簡單 `DELETE` 請求 (未指定版本 ID 的請求)，Amazon S3 會傳回 `200 OK` 回應，並在儲存貯體中插入[刪除標記](DeleteMarker.md)，而該標記會成為具有新 ID 的物件目前版本。如需有關使用物件鎖定管理刪除標記的詳細資訊，請參閱 [使用物件鎖定管理刪除標記](object-lock-managing.md#object-lock-managing-delete-markers)。

### 使用 S3 物件鎖定的最佳實務
<a name="object-lock-best-practices"></a>

如果您想要在預先定義的保留期間保護物件，以防遭到大多數使用者刪除，但同時希望具有特殊許可的部分使用者擁有能夠變更保留設定或刪除物件的彈性，請考慮使用*控管模式*。

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

當您不確定物件要在多少時間內保持不可變狀態時，可以使用*法務保存*功能。這可能是因為即將對資料進行外部稽核，並希望在稽核完成之前將物件保持在不可變狀態。或者，您可能有一個使用資料集的進行中專案，而且想要在專案完成前將該資料集保持在不可變狀態。

### 所需的許可
<a name="object-lock-permissions"></a>

物件鎖定操作需要特定許可。根據您嘗試執行的確切操作而定，您可能需要以下任何許可：
+ `s3:BypassGovernanceRetention`
+ `s3:GetBucketObjectLockConfiguration`
+ `s3:GetObjectLegalHold`
+ `s3:GetObjectRetention`
+ `s3:PutBucketObjectLockConfiguration`
+ `s3:PutObjectLegalHold`
+ `s3:PutObjectRetention`

如需具有說明的 Amazon S3 許可完整清單，請參閱服務授權參考**中的[適用於 Amazon S3 的動作、資源和條件金鑰](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html)。

如需依 S3 資源類型列出 S3 API 操作許可的詳細資訊，請參閱[Amazon S3 API 操作所需的許可](using-with-s3-policy-actions.md)。

如需有關搭配有許可使用條件的資訊，請參閱 [使用條件索引鍵的儲存貯體政策範例](amazon-s3-policy-keys.md)。

# 物件鎖定的考量事項
<a name="object-lock-managing"></a>

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

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

**重要**  
您在儲存貯體上啟用物件鎖定後，就無法停用該儲存貯體的物件鎖定或暫停版本控制。
具有物件鎖定的 S3 儲存貯體不能用作伺服器存取日誌的目的地儲存貯體。如需詳細資訊，請參閱[使用伺服器存取記錄記錄要求](ServerLogs.md)。

**Topics**
+ [檢視鎖定資訊的許可](#object-lock-managing-view)
+ [繞過控管模式](#object-lock-managing-bypass)
+ [搭配 S3 複寫使用物件鎖定](#object-lock-managing-replication)
+ [使用物件鎖定搭配加密功能](#object-lock-managing-encryption)
+ [將物件鎖定搭配 Amazon S3 庫存清單](#object-lock-inv-report)
+ [使用物件鎖定管理 S3 生命週期政策](#object-lock-managing-lifecycle)
+ [使用物件鎖定管理刪除標記](#object-lock-managing-delete-markers)
+ [使用 S3 Storage Lens 搭配物件鎖定](#object-lock-storage-lens)
+ [將物件上傳至啟用物件鎖定的儲存貯體](#object-lock-put-object)
+ [設定事件和通知](#object-lock-managing-events)
+ [使用儲存貯體政策設定保留期的限制](#object-lock-managing-retention-limits)

## 檢視鎖定資訊的許可
<a name="object-lock-managing-view"></a>

您可以使用 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html) 或 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) 操作，以程式設計的方式檢視 Amazon S3 物件版本的物件鎖定狀態。這兩項操作都會傳回所指定物件版本的保留模式、保留截止日期和法務保存狀態。此外，您可以使用 S3 庫存檢視 S3 儲存貯體中多個物件的物件鎖定狀態。

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

## 繞過控管模式
<a name="object-lock-managing-bypass"></a>

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

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

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

## 搭配 S3 複寫使用物件鎖定
<a name="object-lock-managing-replication"></a>

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

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

**注意**  
若要搭配複寫使用物件鎖定，您必須在用於設定複寫的 AWS Identity and Access Management (IAM) 角色中授予來源 S3 儲存貯體的兩個額外許可。這兩項額外的許可為 `s3:GetObjectRetention` 和 `s3:GetObjectLegalHold`。若該角色有 `s3:Get*` 許可陳述式，該陳述式即符合需求。如需詳細資訊，請參閱[設定即時複寫的許可](setting-repl-config-perm-overview.md)。  
如需有關 S3 複寫的一般資訊，請參閱 [複寫區域內和跨區域的物件](replication.md)。  
如需設定 S3 複寫的範例，請參閱 [設定即時複寫的範例](replication-example-walkthroughs.md)。

## 使用物件鎖定搭配加密功能
<a name="object-lock-managing-encryption"></a>

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

雖然物件鎖定有助於防止 Amazon S3 物件遭到刪除或覆寫，但無法防止遺失加密金鑰的存取權，或防止加密金鑰遭到刪除。例如，如果您使用 AWS KMS 伺服器端加密來加密物件，而且您的 AWS KMS 金鑰遭到刪除，則物件可能會變得無法讀取。

## 將物件鎖定搭配 Amazon S3 庫存清單
<a name="object-lock-inv-report"></a>

您可以設定 Amazon S3 庫存清單，以依照定義的排程在 S3 儲存貯體中建立物件的清單。您可以設定讓 Amazon S3 庫存清單包含物件的下列物件鎖定中繼資料：
+ 保留截止日期
+ 保留模式
+ 法務保存狀態

如需詳細資訊，請參閱[使用 S3 庫存清單編目和分析資料](storage-inventory.md)。

## 使用物件鎖定管理 S3 生命週期政策
<a name="object-lock-managing-lifecycle"></a>

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

如需有關管理物件生命週期的詳細資訊，請參閱[管理物件的生命週期](object-lifecycle-mgmt.md)。

## 使用物件鎖定管理刪除標記
<a name="object-lock-managing-delete-markers"></a>

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

**注意**  
不論底層物件上是否設有任何保留期或法務保存，刪除標記均不受 WORM 保護。

## 使用 S3 Storage Lens 搭配物件鎖定
<a name="object-lock-storage-lens"></a>

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

如需詳細資訊，請參閱[使用 S3 Storage Lens 保護您的資料](storage-lens-data-protection.md)。

如需指標的完整清單，請參閱[Amazon S3 Storage Lens 指標詞彙表](storage_lens_metrics_glossary.md)。

## 將物件上傳至啟用物件鎖定的儲存貯體
<a name="object-lock-put-object"></a>

任何上傳具有使用物件鎖定設定之保留期之物件的請求，都需要 `Content-MD5` 或 `x-amz-sdk-checksum-algorithm` 標頭。這些標頭是一種在上傳期間驗證物件完整性的方式。

使用 Amazon S3 主控台上傳物件時，S3 會自動新增 `Content-MD5` 標頭。您可以選擇透過主控台指定額外的檢查總和函數和檢查總和值來作為 `x-amz-sdk-checksum-algorithm` 標頭。如果您使用 [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) API，則必須指定 `Content-MD5` 標頭、`x-amz-sdk-checksum-algorithm` 標頭或兩者，才能設定物件鎖定保留期間。

如需詳細資訊，請參閱[在 Amazon S3 中檢查物件完整性](checking-object-integrity.md)。

## 設定事件和通知
<a name="object-lock-managing-events"></a>

您可以使用 Amazon S3 事件通知來追蹤物件鎖定組態和資料的存取和變更 AWS CloudTrail。如需有關 CloudTrail 的資訊，請參閱*AWS CloudTrail 《 使用者指南*》中的[什麼是 AWS CloudTrail？](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)。

您也可以使用 Amazon CloudWatch，根據此資料產生警示。如需 CloudWatch 的詳細資訊，請參閱《Amazon CloudWatch 使用者指南》**中的[什麼是 Amazon CloudWatch？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)。

## 使用儲存貯體政策設定保留期的限制
<a name="object-lock-managing-retention-limits"></a>

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

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

------
#### [ JSON ]

****  

```
{
    "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` 動作。如需複寫許可的詳細資訊，請參閱 [設定即時複寫的許可](setting-repl-config-perm-overview.md)。

如需儲存貯體政策的詳細資訊，請參閱下列主題：
+ 服務授權參考**中[適用於 Amazon S3 的動作、資源及條件金鑰](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html)

  如需依 S3 資源類型列出 S3 API 操作許可的詳細資訊，請參閱[Amazon S3 API 操作所需的許可](using-with-s3-policy-actions.md)。
+ [物件操作](security_iam_service-with-iam.md#using-with-s3-actions-related-to-objects)
+ [使用條件索引鍵的儲存貯體政策範例](amazon-s3-policy-keys.md)

# 設定 S3 物件鎖定
<a name="object-lock-configure"></a>

透過 Amazon S3 物件鎖定，您可以使用*單寫多讀* (WORM) 模式將物件儲存在 Amazon S3 一般用途儲存貯體中。您可以使用 S3 物件鎖定，讓物件在固定期間或無限期免於遭到刪除或覆寫。如需物件鎖定功能的一般資訊，請參閱 [使用物件鎖定來鎖定物件](object-lock.md)。

在鎖定任何物件之前，您必須先在一般用途儲存貯體上啟用 S3 版本控制和物件鎖定。之後您就可以設定保留期和/或法務保存。

若要使用物件鎖定，您必須擁有特定許可。如需與各種物件鎖定操作相關的許可清單，請參閱 [所需的許可](object-lock.md#object-lock-permissions)。

**重要**  
您在儲存貯體上啟用物件鎖定後，就無法停用該儲存貯體的物件鎖定或暫停版本控制。
具有物件鎖定的 S3 儲存貯體不能用作伺服器存取日誌的目的地儲存貯體。如需詳細資訊，請參閱[使用伺服器存取記錄記錄要求](ServerLogs.md)。

**Topics**
+ [在建立新的 S3 一般用途儲存貯體時啟用物件鎖定](#object-lock-configure-new-bucket)
+ [在現有 S3 儲存貯體上啟用物件鎖定](#object-lock-configure-existing-bucket)
+ [設定或修改 S3 物件的法務保存](#object-lock-configure-set-legal-hold)
+ [設定或修改 S3 物件的保留期](#object-lock-configure-set-retention-period-object)
+ [設定或修改 S3 儲存貯體的預設保留期](#object-lock-configure-set-retention-period-bucket)

## 在建立新的 S3 一般用途儲存貯體時啟用物件鎖定
<a name="object-lock-configure-new-bucket"></a>

您可以使用 Amazon S3 主控台、 AWS Command Line Interface (AWS CLI)、 AWS SDKs 或 Amazon S3 REST API，在建立新的 Amazon S3 一般用途儲存貯體時啟用物件鎖定。 Amazon S3 

### 使用 S3 主控台
<a name="object-lock-new-bucket-console"></a>

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 開啟 Amazon S3 主控台。

1. 在左側導覽窗格中，選擇**一般用途儲存貯體**。

1. 選擇 **Create bucket** (建立儲存貯體)。

   **Create bucket (建立儲存貯體)** 頁面隨即開啟。

1. 針對 **Bucket name (儲存貯體名稱)**，輸入儲存貯體的名稱。
**注意**  
建立儲存貯體後，便無法變更其名稱。如需儲存貯體命名的詳細資訊，請參閱 [一般用途儲存貯體命名規則](bucketnamingrules.md)。

1. 針對**區域**，選擇您希望儲存貯體所在的 AWS 區域 。

1. 在**物件擁有權**下，選擇停用或啟用上傳到儲存貯體中之物件的存取控制清單 (ACL) 和控制擁有權。

1. 在**封鎖此儲存貯體的公開存取設定**之下，選擇要套用至儲存貯體的封鎖公開存取設定。

1. 在**儲存貯體版本控制**下，選擇**已啟用**。

   物件鎖定只可搭配版本化的儲存貯體運作。

1. (選用) 在 **Tags** (標籤) 下，您可以選擇新增標籤至儲存貯體。標籤是用來分類儲存和分配成本的鍵值對。

1. 在**進階設定**下，尋找**物件鎖定**並選擇**啟用**。

   您必須確實了解，啟用物件鎖定將永久允許鎖定此儲存貯體中的物件。

1. 選擇**建立儲存貯體**。

### 使用 AWS CLI
<a name="object-lock-new-bucket-cli"></a>

下列 `create-bucket` 範例會建立名為 `amzn-s3-demo-bucket1` 且啟用物件鎖定的新 S3 儲存貯體：

```
aws s3api create-bucket --bucket amzn-s3-demo-bucket1 --object-lock-enabled-for-bucket
```

如需詳細資訊和範例，請參閱AWS CLI 命令參考**中的 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/create-bucket.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/create-bucket.html)。

**注意**  
您可以使用 從主控台執行 AWS CLI 命令 AWS CloudShell。 AWS CloudShell 是一種以瀏覽器為基礎的預先驗證 Shell，您可以直接從 啟動 AWS 管理主控台。如需詳細資訊，請參閱《AWS CloudShell 使用者指南》**中的[什麼是 CloudShell？](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)。

### 使用 REST API
<a name="object-lock-new-bucket-rest"></a>

您可以使用 REST API 建立已啟用物件鎖定的新 S3 儲存貯體。如需詳細資訊，請參閱《Amazon Simple Storage Service API 參考》**中的 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)。

### 使用 AWS SDKs
<a name="object-lock-new-bucket-sdk"></a>

如需如何在使用 AWS SDKs 建立新的 S3 儲存貯體時啟用物件鎖定的範例，請參閱《*Amazon S3 API 參考*》中的[程式碼範例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_LCreateBucket_section.html)。

如需如何使用 AWS SDKs 取得目前物件鎖定組態的範例，請參閱《*Amazon S3 API 參考*》中的[程式碼範例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_GetObjectLockConfiguration_section.html)。

如需使用 AWS SDKs 示範不同物件鎖定功能的互動式案例，請參閱《*Amazon S3 API 參考*》中的[程式碼範例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_Scenario_ObjectLock_section.html)。

如需使用 AWS SDKs的一般資訊，請參閱《[Amazon S3 API 參考》中的使用 AWS SDKs 與 Amazon S3 一起開發](https://docs.aws.amazon.com/AmazonS3/latest/API/sdk-general-information-section.html)。 *Amazon S3 *

## 在現有 S3 儲存貯體上啟用物件鎖定
<a name="object-lock-configure-existing-bucket"></a>

您可以使用 Amazon S3 主控台、、 AWS SDKs 或 Amazon S3 REST API AWS CLI來啟用現有 Amazon S3 儲存貯體的物件鎖定。 Amazon S3 

### 使用 S3 主控台
<a name="object-lock-existing-bucket-console"></a>

**注意**  
物件鎖定只可搭配版本化的儲存貯體運作。

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)：// 開啟 Amazon S3 主控台。

1. 在左側導覽窗格中，選擇 **Buckets** (儲存貯體)。

1. 在**儲存貯體**清單中，選擇要啟用物件鎖定的儲存貯體名稱。

1. 選擇**屬性**索引標籤。

1. 在**屬性**下，向下捲動至**物件鎖定**區段，然後選擇**編輯**。

1. 在**物件鎖定**下，選擇**啟用**。

   您必須確實了解，啟用物件鎖定將永久允許鎖定此儲存貯體中的物件。

1. 選擇**儲存變更**。



### 使用 AWS CLI
<a name="object-lock-existing-bucket-cli"></a>

下列 `put-object-lock-configuration` 範例命令會在名為 `amzn-s3-demo-bucket1` 的儲存貯體上設定 50 天的物件鎖定保留期：

```
aws s3api put-object-lock-configuration --bucket amzn-s3-demo-bucket1 --object-lock-configuration='{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 50 }}}'
```

如需詳細資訊和範例，請參閱AWS CLI 命令參考**中的 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object-lock-configuration.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object-lock-configuration.html)。

**注意**  
您可以使用 從主控台執行 AWS CLI 命令 AWS CloudShell。 AWS CloudShell 是一種以瀏覽器為基礎的預先驗證 Shell，您可以直接從 啟動 AWS 管理主控台。如需詳細資訊，請參閱《AWS CloudShell 使用者指南》**中的[什麼是 CloudShell？](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)。

### 使用 REST API
<a name="object-lock-existing-bucket-rest"></a>

您可以使用 Amazon S3 REST API 在現有 S3 儲存貯體上啟用物件鎖定。如需詳細資訊，請參閱《Amazon Simple Storage Service API 參考》**中的 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectLockConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectLockConfiguration.html)。

### 使用 AWS SDKs
<a name="object-lock-existing-bucket-sdk"></a>

如需如何使用 AWS SDKs 為現有 S3 儲存貯體啟用物件鎖定的範例，請參閱《*Amazon S3 API 參考*》中的[程式碼範例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_PutObjectLockConfiguration_section.html)。

如需如何使用 AWS SDKs 取得目前物件鎖定組態的範例，請參閱《*Amazon S3 API 參考*》中的[程式碼範例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_GetObjectLockConfiguration_section.html)。

如需使用 AWS SDKs 示範不同物件鎖定功能的互動式案例，請參閱《*Amazon S3 API 參考*》中的[程式碼範例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_Scenario_ObjectLock_section.html)。

如需使用 AWS SDKs的一般資訊，請參閱《[Amazon S3 API 參考》中的使用 AWS SDKs 與 Amazon S3 一起開發](https://docs.aws.amazon.com/AmazonS3/latest/API/sdk-general-information-section.html)。 *Amazon S3 *

## 設定或修改 S3 物件的法務保存
<a name="object-lock-configure-set-legal-hold"></a>

您可以使用 Amazon S3 主控台 AWS CLI、 AWS SDKs 或 Amazon S3 REST API，在 Amazon S3 物件上設定或移除法務保存。 Amazon S3 

**重要**  
如果您要設定物件的法務保存，則物件的儲存貯體必須已啟用物件鎖定。
當您對儲存貯體中具有明確的個別保留模式和保留期的物件版本執行 `PUT` 時，物件版本的個別物件鎖定設定會覆寫任何儲存貯體屬性保留設定。

如需詳細資訊，請參閱[法務保存](object-lock.md#object-lock-legal-holds)。

### 使用 S3 主控台
<a name="object-lock-set-legal-hold-console"></a>

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)：// 開啟 Amazon S3 主控台。

1. 在左側導覽窗格中，選擇 **Buckets** (儲存貯體)。

1. 在**儲存貯體**清單中，選擇包含您要設定或移除法務保存之物件的儲存貯體名稱。

1. 在**物件**清單中，選取您要設定或修改法務保存的物件。

1. 在**物件屬性**頁面上，尋找**物件鎖定法務保存**區段，然後選擇**編輯**。

1. 選擇**啟用**以設定法務保存，或選擇**停用**以移除法務保存。

1. 選擇**儲存變更**。

### 使用 AWS CLI
<a name="object-lock-set-legal-hold-cli"></a>

下列 `put-object-legal-hold` 範例會在名為 `amzn-s3-demo-bucket1` 的儲存貯體中設定物件 *`my-image.fs`* 的法務保存：

```
aws s3api put-object-legal-hold --bucket amzn-s3-demo-bucket1 --key my-image.fs --legal-hold="Status=ON"
```

下列 `put-object-legal-hold` 範例會在名為 `amzn-s3-demo-bucket1` 的儲存貯體中移除物件 *`my-image.fs`* 的法務保存：

```
aws s3api put-object-legal-hold --bucket amzn-s3-demo-bucket1 --key my-image.fs --legal-hold="Status=OFF"
```

如需詳細資訊和範例，請參閱AWS CLI 命令參考**中的 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object-legal-hold.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object-legal-hold.html)。

**注意**  
您可以使用 從主控台執行 AWS CLI 命令 AWS CloudShell。 AWS CloudShell 是一種以瀏覽器為基礎的預先驗證 Shell，您可以直接從 啟動 AWS 管理主控台。如需詳細資訊，請參閱《AWS CloudShell 使用者指南》**中的[什麼是 CloudShell？](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)。

### 使用 REST API
<a name="object-lock-set-legal-hold-rest"></a>

您可以使用 REST API 設定或修改物件的法務保存。如需詳細資訊，請參閱《Amazon Simple Storage Service API 參考》**中的 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectLegalHold.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectLegalHold.html)。

### 使用 AWS SDKs
<a name="object-lock-set-legal-hold-sdk"></a>

如需如何使用 AWS SDKs 在物件上設定法務保存的範例，請參閱《*Amazon S3 API 參考*》中的[程式碼範例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_PutObjectLegalHold_section.html)。

如需如何使用 AWS SDKs 取得目前法務保存狀態的範例，請參閱《*Amazon S3 API 參考*》中的[程式碼範例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_GetObjectLegalHoldConfiguration_section.html)。

如需使用 AWS SDKs 示範不同物件鎖定功能的互動式案例，請參閱《*Amazon S3 API 參考*》中的[程式碼範例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_Scenario_ObjectLock_section.html)。

如需使用 AWS SDKs的一般資訊，請參閱《[Amazon S3 API 參考》中的使用 AWS SDKs 與 Amazon S3 一起開發](https://docs.aws.amazon.com/AmazonS3/latest/API/sdk-general-information-section.html)。 *Amazon S3 *

## 設定或修改 S3 物件的保留期
<a name="object-lock-configure-set-retention-period-object"></a>

您可以使用 Amazon S3 主控台、 AWS SDKs 或 Amazon S3 REST API AWS CLI，在 S3 物件上設定或修改保留期間。 Amazon S3 

**重要**  
如果您要設定物件的保留期，則物件的儲存貯體必須已啟用物件鎖定。
當您對儲存貯體中具有明確的個別保留模式和保留期的物件版本執行 `PUT` 時，物件版本的個別物件鎖定設定會覆寫任何儲存貯體屬性保留設定。
在保留日期過期之前，在合規模式下刪除物件的唯一方法是刪除相關聯的 AWS 帳戶。

如需詳細資訊，請參閱[保留期](object-lock.md#object-lock-retention-periods)。

### 使用 S3 主控台
<a name="object-lock-set-retention-period-console"></a>

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 開啟 Amazon S3 主控台。

1. 在左側導覽窗格中，選擇 **Buckets** (儲存貯體)。

1. 在**儲存貯體**清單中，選擇包含您要設定或修改保留期之物件的儲存貯體名稱。

1. 在**物件**清單中，選取您要設定或修改保留期的物件。

1. 在**物件屬性**頁面上，尋找**物件鎖定保留**區段，然後選擇**編輯**。

1. 在**保留**下，選擇**啟用**以設定保留期，或選擇**停用**以移除保留期。

1. 如果您選擇**啟用**，在**保留模式**下選擇**控管模式**或**合規模式**。如需詳細資訊，請參閱[保留模式](object-lock.md#object-lock-retention-modes)。

1. 在**保留截止日期**下，選擇您希望保留期結束的日期。在這段期間，您的物件會受到 WORM 保護，而無法將其覆寫或刪除。如需詳細資訊，請參閱[保留期](object-lock.md#object-lock-retention-periods)。

1. 選擇 **Save changes** (儲存變更)。

### 使用 AWS CLI
<a name="object-lock-set-retention-period-cli"></a>

下列 `put-object-retention` 範例會在名為 `amzn-s3-demo-bucket1` 的儲存貯體中設定物件 *`my-image.fs`* 的保留期且結束日期為 2025 年 1 月 1 日：

```
aws s3api put-object-retention --bucket amzn-s3-demo-bucket1 --key my-image.fs --retention='{ "Mode": "GOVERNANCE", "RetainUntilDate": "2025-01-01T00:00:00" }'
```

如需詳細資訊和範例，請參閱AWS CLI 命令參考**中的 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object-retention.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object-retention.html)。

**注意**  
您可以使用 從主控台執行 AWS CLI 命令 AWS CloudShell。 AWS CloudShell 是一種以瀏覽器為基礎的預先驗證 Shell，您可以直接從 啟動 AWS 管理主控台。如需詳細資訊，請參閱《AWS CloudShell 使用者指南》**中的[什麼是 CloudShell？](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)。

### 使用 REST API
<a name="object-lock-set-retention-period-rest"></a>

您可以使用 REST API 設定物件的保留期。如需詳細資訊，請參閱《Amazon Simple Storage Service API 參考》**中的 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectRetention.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectRetention.html)。

### 使用 AWS SDKs
<a name="object-lock-set-retention-period-sdk"></a>

如需如何使用 AWS SDKs 在物件上設定保留期的範例，請參閱《*Amazon S3 API 參考*》中的[程式碼範例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_PutObjectRetention_section.html)。

如需如何使用 AWS SDKs 取得物件保留期的範例，請參閱《*Amazon S3 API 參考*》中的[程式碼範例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_GetObjectLockConfiguration_section.html)。

如需使用 AWS SDKs 示範不同物件鎖定功能的互動式案例，請參閱《*Amazon S3 API 參考*》中的[程式碼範例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_GetObjectLockConfiguration_section.html)。

如需使用 AWS SDKs一般資訊，請參閱《[Amazon S3 API 參考》中的使用 AWS SDKs 與 Amazon S3 一起開發](https://docs.aws.amazon.com/AmazonS3/latest/API/sdk-general-information-section.html)。 *Amazon S3 *

## 設定或修改 S3 儲存貯體的預設保留期
<a name="object-lock-configure-set-retention-period-bucket"></a>

您可以使用 Amazon S3 主控台、 AWS CLI、 AWS SDKs 或 Amazon S3 REST API，在 Amazon S3 儲存貯體上設定或修改預設保留期。 Amazon S3 您可以指定一段以天或年為單位的時間，代表要保護放置在儲存貯體中的每個物件版本的期間。

**重要**  
如果您要設定儲存貯體的預設保留期，則儲存貯體必須已啟用物件鎖定。
當您對儲存貯體中具有明確的個別保留模式和保留期的物件版本執行 `PUT` 時，物件版本的個別物件鎖定設定會覆寫任何儲存貯體屬性保留設定。
在保留日期過期之前，在合規模式下刪除物件的唯一方法是刪除相關聯的 AWS 帳戶。

如需詳細資訊，請參閱[保留期](object-lock.md#object-lock-retention-periods)。

### 使用 S3 主控台
<a name="object-lock-set-retention-period-bucket-console"></a>

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 開啟 Amazon S3 主控台。

1. 在左側導覽窗格中，選擇 **Buckets** (儲存貯體)。

1. 在**儲存貯體**清單中，選擇您要設定或修改預設保留期的儲存貯體名稱。

1. 選擇**屬性**索引標籤。

1. 在**屬性**下，向下捲動至**物件鎖定**區段，然後選擇**編輯**。

1. 在**預設保留**下，選擇**啟用**以設定預設保留，或選擇**停用**以移除預設保留。

1. 如果您選擇**啟用**，在**保留模式**下選擇**控管模式**或**合規模式**。如需詳細資訊，請參閱[保留模式](object-lock.md#object-lock-retention-modes)。

1. 在**預設保留期**下，選擇您希望保留期持續的天數或年數。放置在此儲存貯體中的物件將會鎖定長達此天數或年數。如需詳細資訊，請參閱[保留期](object-lock.md#object-lock-retention-periods)。

1. 選擇 **Save changes** (儲存變更)。

### 使用 AWS CLI
<a name="object-lock-configure-set-retention-period-bucket-cli"></a>

下列 `put-object-lock-configuration` 範例命令會使用合規模式在名為 `amzn-s3-demo-bucket1` 的儲存貯體上設定 50 天的物件鎖定保留期：

```
aws s3api put-object-lock-configuration --bucket amzn-s3-demo-bucket1 --object-lock-configuration='{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 50 }}}'
```

下列 `put-object-lock-configuration` 範例會移除儲存貯體的預設保留組態：

```
aws s3api put-object-lock-configuration --bucket amzn-s3-demo-bucket1 --object-lock-configuration='{ "ObjectLockEnabled": "Enabled"}'
```

如需詳細資訊和範例，請參閱AWS CLI 命令參考**中的 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object-lock-configuration.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object-lock-configuration.html)。

**注意**  
您可以使用 從主控台執行 AWS CLI 命令 AWS CloudShell。 AWS CloudShell 是一種以瀏覽器為基礎的預先驗證 Shell，您可以直接從 啟動 AWS 管理主控台。如需詳細資訊，請參閱《AWS CloudShell 使用者指南》**中的[什麼是 CloudShell？](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)。

### 使用 REST API
<a name="object-lock-configure-set-retention-period-bucket-rest"></a>

您可以使用 REST API 設定現有 S3 儲存貯體的預設保留期。如需詳細資訊，請參閱《Amazon Simple Storage Service API 參考》**中的 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectLockConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectLockConfiguration.html)。

### 使用 AWS SDKs
<a name="object-lock-configure-set-retention-period-bucket-sdk"></a>

如需如何在具有 AWS SDKs現有 S3 儲存貯體上設定預設保留期的範例，請參閱《*Amazon S3 API 參考*》中的[程式碼範例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_PutObjectLockConfiguration_section.html)。

如需使用 AWS SDKs 示範不同物件鎖定功能的互動式案例，請參閱《*Amazon S3 API 參考*》中的[程式碼範例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_Scenario_ObjectLock_section.html)。

如需使用 AWS SDKs一般資訊，請參閱《[Amazon S3 API 參考》中的使用 AWS SDKs 與 Amazon S3 一起開發](https://docs.aws.amazon.com/AmazonS3/latest/API/sdk-general-information-section.html)。 *Amazon S3 *