

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

# 物件鎖定的考量事項
<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)