

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

# 建立批次操作任務以更新物件加密
<a name="batch-ops-update"></a>

若要透過單一請求更新多個 Amazon S3 物件的伺服器端加密類型，您可以使用 S3 批次操作。您可以透過 Amazon S3 主控台、 AWS Command Line Interface (AWS CLI) AWS SDKs或 Amazon S3 REST API 使用 S3 批次操作。

## 使用 AWS CLI
<a name="batch-ops-example-cli-update-job"></a>

若要執行下列命令，您必須 AWS CLI 安裝並設定 。如果您沒有 AWS CLI 安裝 ，請參閱*AWS Command Line Interface 《 使用者指南*》中的[安裝或更新至最新版本的 AWS CLI](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-install.html) 。

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

**Example 1 – 建立批次操作任務，將加密的物件從一個更新 AWS KMS key 到另一個 KMS 金鑰**  
下列範例示範如何建立 S3 批次操作任務，以更新一般用途儲存貯體中多個物件的加密設定。此命令會建立任務，將以 one AWS Key Management Service (AWS KMS) 金鑰加密的物件變更為使用不同的 KMS 金鑰。此任務也會產生和儲存受影響物件的資訊清單，並建立結果的報告。若要使用此命令，請以您自己的資訊取代 `{{user input placeholders}}`。  

```
aws s3control create-job --account-id {{account-id}} \
--no-confirmation-required \
--operation '{"S3UpdateObjectEncryption": {  "ObjectEncryption": { "SSEKMS": { "KMSKeyArn": "{{KMS-key-ARN-to-apply}}", "BucketKeyEnabled": false  }  }  } }' \
--report '{ "Enabled": true, "Bucket": "{{report-bucket-ARN}}",  "Format": "Report_CSV_20180820", "Prefix": "report", "ReportScope": "AllTasks" }' \
--manifest-generator '{ "S3JobManifestGenerator": { "ExpectedBucketOwner": "{{account-id}}", "SourceBucket": "{{source-bucket-ARN}}", "EnableManifestOutput": true, "ManifestOutputLocation": { "Bucket": "{{manifest-bucket-ARN}}", "ManifestFormat": "S3InventoryReport_CSV_20211130", "ManifestPrefix": "{{manifest-prefix}}" }, "Filter": {   "MatchAnyObjectEncryption": [{ "SSEKMS": { "KmsKeyArn": "{{kms-key-ARN-to-match}}" } }] } } }' \
--priority 1 \
--role-arn {{batch-operations-role-ARN}}
```
為了獲得最佳效能，我們建議您將`KmsKeyArn`篩選條件與其他物件中繼資料篩選條件搭配使用，例如 `MatchAnyPrefix`、 `CreatedAfter`或 `MatchAnyStorageClass`。

**Example 2 – 建立批次操作任務，將 SSE-S3 加密物件更新為 SSE-KMS**  
下列範例示範如何建立 S3 批次操作任務，以更新一般用途儲存貯體中多個物件的加密設定。此命令會建立任務，以使用伺服器端加密搭配 Amazon S3 受管金鑰 (SSE-S3) 來變更加密的物件，改為使用伺服器端加密搭配 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS)。此任務也會產生和儲存受影響物件的資訊清單，並建立結果的報告。若要使用此命令，請以您自己的資訊取代 `{{user input placeholders}}`。  

```
aws s3control create-job --account-id {{account-id}} \
--no-confirmation-required \
--operation '{"S3UpdateObjectEncryption": {  "ObjectEncryption": { "SSEKMS": { "KMSKeyArn": "{{KMS-key-ARN-to-apply}}", "BucketKeyEnabled": false  }  }  } }' \
--report '{ "Enabled": true, "Bucket": "{{report-bucket-ARN}}",  "Format": "Report_CSV_20180820", "Prefix": "report", "ReportScope": "AllTasks" }' \
--manifest-generator '{ "S3JobManifestGenerator": { "ExpectedBucketOwner": "{{account-id}}", "SourceBucket": "{{source-bucket-ARN}}", "EnableManifestOutput": true, "ManifestOutputLocation": { "Bucket": "{{manifest-bucket-ARN}}", "ManifestFormat": "S3InventoryReport_CSV_20211130", "ManifestPrefix": "{{manifest-prefix}}" }, "Filter": {   "MatchAnyObjectEncryption": [{ "SSES3": {} }] } } }' \
--priority 1 \
--role-arn {{batch-operations-role-ARN}}
```
為了獲得最佳效能，我們建議您將`KmsKeyArn`篩選條件與其他物件中繼資料篩選條件搭配使用，例如 `MatchAnyPrefix`、 `CreatedAfter`或 `MatchAnyStorageClass`。