

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

# 更新物件加密
<a name="batch-ops-update-encryption"></a>

您可以使用 Amazon S3 Batch Operations 對 Amazon S3 物件執行大規模的批次操作。Batch Operations [https://docs.aws.amazon.com//AmazonS3/latest/API/API_control_UpdateObjectEncryptionOperation.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_control_UpdateObjectEncryptionOperation.html)操作會使用單一請求更新多個 Amazon S3 物件的伺服器端加密類型。單一`UpdateObjectEncryption`操作任務最多可支援 200 億個物件的資訊清單。

一般用途儲存貯體支援的所有 Amazon S3 儲存類別都支援`UpdateObjectEncryption`此操作。您可以使用 `UpdateObjectEncryption`操作，將加密的物件從[使用 Amazon S3 受管金鑰 (SSE- S3) 的伺服器端加密](https://docs.aws.amazon.com//AmazonS3/latest/userguide/UsingServerSideEncryption.html)變更為[AWS 金鑰管理服務 (AWS KMS) 金鑰 (SSE-KMS)](https://docs.aws.amazon.com//AmazonS3/latest/userguide/UsingKMSEncryption.html)，或套用 S3 儲存貯體金鑰。您也可以使用 `UpdateObjectEncryption`操作來變更用於加密資料的客戶受管 KMS 金鑰，以便符合自訂金鑰輪換標準。

 當您建立批次操作任務時，您可以根據您指定的來源位置和篩選條件產生物件清單。您可以使用 `MatchAnyObjectEncryption`篩選條件，從要更新並包含在資訊清單中的儲存貯體中產生物件清單。產生的物件清單僅包含具有指定伺服器端加密類型的來源儲存貯體物件。如果您選取 SSE-KMS，您可以選擇指定特定 KMS 金鑰 ARN 和儲存貯體金鑰啟用狀態，以進一步篩選結果。如需詳細資訊，請參閱《[`SSEKMSFilter`*Amazon S3API 參考*》中的](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_SSEKMSFilter.html) [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_JobManifestGeneratorFilter.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_JobManifestGeneratorFilter.html)和 。

## 限制與考量事項
<a name="batch-ops-encrypt-object-restrictions"></a>

當您使用批次操作`UpdateObjectEncryption`操作時，適用下列限制和考量事項：
+ `UpdateObjectEncryption` 此操作不支援未加密的物件，或使用 (DSSE-KMS) 或客戶提供的加密金鑰 (SSE-C) 進行 AWS KMS keys 雙層伺服器端加密的物件。此外，您無法指定 SSE-S3 加密類型`UpdateObjectEncryption`請求。
+ 您可以使用 `UpdateObjectEncryption`操作來更新已啟用 S3 版本控制的儲存貯體中的物件。若要更新特定版本的加密類型，您必須在`UpdateObjectEncryption`請求中指定版本 ID。如果您未指定版本 ID，`UpdateObjectEncryption`請求會作用於物件的目前版本。如需 S3 版本控制的詳細資訊，請參閱「[使用 S3 版本控制保留多個版本的物件](Versioning.md)」。
+ `UpdateObjectEncryption` 操作會在套用 S3 物件鎖定保留模式或法務保存的任何物件上失敗。如果物件具有控管模式保留期間或法務保存，您必須先移除物件上的物件鎖定狀態，才能發出`UpdateObjectEncryption`請求。您無法對套用物件鎖定合規模式保留期的物件使用 `UpdateObjectEncryption`操作。如需 S3 物件鎖定的詳細資訊，請參閱[使用物件鎖定來鎖定物件](object-lock.md)。
+ `UpdateObjectEncryption` 已啟用即時複寫的來源儲存貯體請求不會在目的地儲存貯體中啟動複本事件。如果您想要變更來源和目的地儲存貯體中物件的加密類型，則必須對來源和目的地儲存貯體中的物件啟動個別`UpdateObjectEncryption`的請求。
+ 根據預設，指定客戶受管 KMS 金鑰的所有`UpdateObjectEncryption`請求僅限於儲存貯體擁有者 擁有的 KMS 金鑰 AWS 帳戶。如果您使用的是 AWS Organizations，您可以透過聯絡 來請求使用組織內其他成員帳戶 AWS KMS keys 擁有的功能 AWS 支援。
+ 如果您使用 S3 批次複寫來跨區域複寫資料集，且物件先前已將其伺服器端加密類型從 SSE-S3 更新為 SSE-KMS，則您可能需要額外的許可。在來源區域儲存貯體上，您必須擁有 `kms:decrypt` 許可。然後，您將需要目的地區域中儲存貯體的 `kms:decrypt`和 `kms:encrypt`許可。
+ 在`UpdateObjectEncryption`請求中提供完整的 KMS 金鑰 ARN。您無法使用別名名稱或別名 ARN。您可以在 AWS KMS 主控台或使用 AWS KMS `DescribeKey` API 來判斷完整的 KMS 金鑰 ARN。
+ 若要在使用`KmsKeyArn`篩選條件時改善資訊清單產生效能，請將此篩選條件與其他物件中繼資料篩選條件搭配使用。例如，當您在 S3 批次操作中自動產生資訊清單`MatchAnyStorageClass`時`MatchAnyPrefix`，您可以`KmsKeyArn`結合 `CreatedAfter`、 或 。

如需 `UpdateObjectEncryption` 的相關資訊，請參閱 [更新現有資料的伺服器端加密](update-sse-encryption.md)。

## 所需的許可
<a name="batch-ops-required-permissions"></a>

若要執行`UpdateObjectEncryption`操作，請將下列 AWS Identity and Access Management (IAM) 政策新增至您的 IAM 主體 （使用者、角色或群組）。若要使用此政策，請將 取代*`amzn-s3-demo-bucket`*為包含您要更新加密之物件的儲存貯體名稱。`amzn-s3-demo-manifest-bucket` 將 取代為包含資訊清單的儲存貯體名稱，並將 取代`amzn-s3-demo-completion-report-bucket`為您要存放完成報告的儲存貯體名稱。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3BatchOperationsUpdateEncryption",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion",
                "s3:PutObject",
                "s3:UpdateObjectEncryption"
            ],
            "Resource": [
                 "arn:aws:s3:::amzn-s3-demo-bucket-target"
                "arn:aws:s3:::amzn-s3-demo-bucket-target-target/*"
            ]
        },
        {
            "Sid": "S3BatchOperationsPolicyForManifestFile",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket-manifest/*"
            ]
        },
        {
            "Sid": "S3BatchOperationsPolicyForCompletionReport",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket-completion-report/*"
            ]
        },
        {
            "Sid": "S3BatchOperationsPolicyManifestGeneration",
            "Effect": "Allow",
            "Action": [
                "s3:PutInventoryConfiguration"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket-target"
            ]
        },
        {
            "Sid": "AllowKMSOperationsForS3BatchOperations",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:Encrypt",
                "kms:ReEncrypt*"
            ],
            "Resource": [                "arn:aws:kms:us-east-1:111122223333:key/01234567-89ab-cdef-0123-456789abcdef"
            ]
        }
    ]
}
```

如需信任政策和許可政策，您必須連接到 S3 Batch Operations 服務主體擔任的 IAM 角色，以代表您執行 Batch Operations 任務，請參閱 [授予批次操作的許可](batch-ops-iam-role-policies.md)和 [更新物件加密](batch-ops-iam-role-policies.md#batch-ops-update-encryption-policies)。