

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

# 設定您的儲存貯體以使用具有 SSE-KMS 的 S3 儲存貯體來獲取新物件
<a name="configuring-bucket-key"></a>

當您使用 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS) 設定伺服器端加密時，您可以將儲存貯體設定為在新物件上使用 SSE-KMS 的 S3 儲存貯體金鑰。S3 儲存貯體金鑰可減少從 Amazon S3 到 的請求流量， AWS KMS 並降低 SSE-KMS 的成本。如需詳細資訊，請參閱[使用 Amazon S3 儲存貯體金鑰降低 SSE-KMS 的成本](bucket-key.md)。

您可以使用 Amazon S3 主控台、REST API、 AWS SDKs、 AWS Command Line Interface (AWS CLI) 或 ，將儲存貯體設定為在新物件上使用 SSE-KMS 的 S3 儲存貯體金鑰 CloudFormation。 Amazon S3 如果您想要啟用或停用現有物件的 S3 儲存貯體金鑰，可以使用 `CopyObject` 操作。如需詳細資訊，請參閱 [在物件層級設定 S3 儲存貯體金鑰](configuring-bucket-key-object.md) 與 [使用 Batch Operations 為 SSE-KMS 啟用 S3 儲存貯體金鑰](batch-ops-copy-example-bucket-key.md)。

針對來源或目的地儲存貯體啟用 S3 儲存貯體金鑰時，加密內容將是儲存貯體 Amazon Resource Name (ARN)，而不是物件 ARN，例如 `arn:aws:s3:::bucket_ARN`。您需要更新 IAM 政策，才能將儲存貯體 ARN 用於加密內容。如需詳細資訊，請參閱[S3 儲存貯體金鑰和複寫](replication-config-for-kms-objects.md#bk-replication)。

下列範例說明 S3 儲存貯體金鑰如何與複寫搭配使用。如需詳細資訊，請參閱[複寫加密的物件 (SSE-S3、SSE-KMS、DSSE-KMS、SSE-C)](replication-config-for-kms-objects.md)。 

**先決條件**  
在您將儲存貯體設定為使用 S3 儲存貯體金鑰之前，請先檢閱 [啟用 S3 儲存貯體金鑰之前，要注意的變更](bucket-key.md#bucket-key-changes)。

**Topics**

## 使用 S3 主控台
<a name="enable-bucket-key"></a>

在 S3 主控台中，您可以啟用或停用新的或現有儲存貯體的 S3 儲存貯體金鑰。S3 主控台中的物件會從儲存貯體組態繼承其 S3 儲存貯體金鑰設定。當您為儲存貯體啟用 S3 儲存貯體金鑰時，上傳至儲存貯體的新物件使用 S3 儲存貯體金鑰以進行 SSE-KMS。

**在啟用 S3 儲存貯體金鑰的儲存貯體中上傳、複製或修改物件**  
如果您在已啟用 S3 儲存貯體金鑰的儲存貯體中上傳、修改或複製物件，則該物件的 S3 儲存貯體金鑰設定可能會更新以符合儲存貯體組態。

如果物件已啟用 S3 儲存貯體金鑰，則在您複製或修改物件時，該物件的 S3 儲存貯體金鑰設定不會變更。但是，如果您修改或複製未啟用 S3 儲存貯體金鑰的物件，且目的地儲存貯體具有 S3 儲存貯體金鑰組態，則物件會繼承目的地儲存貯體的 S3 儲存貯體金鑰設定。例如，如果您的來源物件沒有啟用 S3 儲存貯體金鑰，但目的地儲存貯體已啟用 S3 儲存貯體金鑰，則將為該物件啟用 S3 儲存貯體金鑰。

**在建立新儲存貯體時啟用 S3 儲存貯體金鑰**

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

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

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

1. 輸入您的儲存貯體名稱，然後選擇您的 AWS 區域。

1. 在**預設加密**之下，針對**加密金鑰類型**選擇 **AWS Key Management Service 金鑰 (SSE-KMS)**。

1. 在 **AWS KMS 金鑰**之下，執行下列其中一個動作，以選擇 KMS 金鑰：
   + 若要從可用的 KMS 金鑰清單中選擇，請選擇**從中選擇 AWS KMS keys**，然後從可用的金鑰清單中選擇您的 **KMS** 金鑰。

      AWS 受管金鑰 (`aws/s3`) 和您的客戶受管金鑰都會顯示在此清單中。如需客戶受管金鑰的詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的[客戶金鑰和 AWS 金鑰](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt)。
   + 若要輸入 KMS 金鑰 ARN，請選擇**輸入 AWS KMS key ARN**，然後在出現的欄位中輸入您的 KMS 金鑰 ARN。
   + 若要在 AWS KMS 主控台中建立新的客戶受管金鑰，請選擇**建立 KMS 金鑰**。

     如需建立 的詳細資訊 AWS KMS key，請參閱《 *AWS Key Management Service 開發人員指南*》中的[建立金鑰](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html)。

1. 在 **Bucket Key** (儲存貯體金鑰) 底下，選擇 **Enable** (啟用)。

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

   Amazon S3 會在啟用 S3 儲存貯體金鑰的情況下建立您的儲存貯體。您上傳到儲存貯體的新物件將使用 S3 儲存貯體金鑰。 

   若要停用 S3 儲存貯體金鑰，請依照上述步驟執行，然後選擇 **Disable (停用)**。

**為現有儲存貯體啟用 S3 儲存貯體金鑰**

1. 開啟位於 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。

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

1. 在 **Buckets** (儲存貯體) 清單中，選擇您要啟用 S3 儲存貯體金鑰的儲存貯體。

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

1. 在 **Default encryption (預設加密)** 底下，選擇 **Edit (編輯)**。

1. 在**預設加密**之下，針對**加密金鑰類型**選擇 **AWS Key Management Service 金鑰 (SSE-KMS)**。

1. 在 **AWS KMS 金鑰**之下，執行下列其中一個動作，以選擇 KMS 金鑰：
   + 若要從可用的 KMS 金鑰清單中選擇，請選擇**從中選擇 AWS KMS keys**，然後從可用的金鑰清單中選擇您的 **KMS** 金鑰。

      AWS 受管金鑰 (`aws/s3`) 和您的客戶受管金鑰都會顯示在此清單中。如需客戶受管金鑰的詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的[客戶金鑰和 AWS 金鑰](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt)。
   + 若要輸入 KMS 金鑰 ARN，請選擇**輸入 AWS KMS key ARN**，然後在出現的欄位中輸入您的 KMS 金鑰 ARN。
   + 若要在 AWS KMS 主控台中建立新的客戶受管金鑰，請選擇**建立 KMS 金鑰**。

     如需建立 的詳細資訊 AWS KMS key，請參閱《 *AWS Key Management Service 開發人員指南*》中的[建立金鑰](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html)。

1. 在 **Bucket Key** (儲存貯體金鑰) 底下，選擇 **Enable** (啟用)。

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

   Amazon S3 為新增至儲存貯體的新物件啟用 S3 儲存貯體金鑰。現有物件不使用 S3 儲存貯體金鑰。若要為現有物件設定 S3 儲存貯體金鑰，您可以使用 `CopyObject` 操作。如需詳細資訊，請參閱[在物件層級設定 S3 儲存貯體金鑰](configuring-bucket-key-object.md)。

   若要停用 S3 儲存貯體金鑰，請依照上述步驟執行，然後選擇 **Disable (停用)**。

## 使用 REST API
<a name="enable-bucket-key-rest"></a>

您可以使用 [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html) 來為您的儲存貯體啟用或停用 S3 儲存貯體金鑰。若要使用 `PutBucketEncryption` 設定 S3 儲存貯體金鑰，請使用 [ServerSideEncryptionRule](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ServerSideEncryptionRule.html) 資料類型，其中包含具有 SSE-KMS 的預設加密。您也可以指定客戶受管金鑰的 KMS 金鑰 ID，選擇性地使用客戶受管金鑰。  

如需詳細資訊和語法範例，請參閱 [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)。

## 使用適用於 Java 的 AWS 開發套件
<a name="enable-bucket-key-sdk"></a>

下列範例使用 適用於 Java 的 AWS SDK，以 SSE-KMS 和 S3 儲存貯體金鑰啟用預設儲存貯體加密。

------
#### [ Java ]

```
AmazonS3 s3client = AmazonS3ClientBuilder.standard()
    .withRegion(Regions.DEFAULT_REGION)
    .build();
    
ServerSideEncryptionByDefault serverSideEncryptionByDefault = new ServerSideEncryptionByDefault()
    .withSSEAlgorithm(SSEAlgorithm.KMS);
ServerSideEncryptionRule rule = new ServerSideEncryptionRule()
    .withApplyServerSideEncryptionByDefault(serverSideEncryptionByDefault)
    .withBucketKeyEnabled(true);
ServerSideEncryptionConfiguration serverSideEncryptionConfiguration =
    new ServerSideEncryptionConfiguration().withRules(Collections.singleton(rule));

SetBucketEncryptionRequest setBucketEncryptionRequest = new SetBucketEncryptionRequest()
    .withServerSideEncryptionConfiguration(serverSideEncryptionConfiguration)
    .withBucketName(bucketName);
            
s3client.setBucketEncryption(setBucketEncryptionRequest);
```

------

## 使用 AWS CLI
<a name="enable-bucket-key-cli"></a>

下列範例使用 AWS CLI，以 SSE-KMS 和 S3 儲存貯體金鑰啟用預設儲存貯體加密。以您自己的資訊取代 `user input placeholders`。

```
aws s3api put-bucket-encryption --bucket amzn-s3-demo-bucket --server-side-encryption-configuration '{
        "Rules": [
            {
                "ApplyServerSideEncryptionByDefault": {
                    "SSEAlgorithm": "aws:kms",
                    "KMSMasterKeyID": "KMS-Key-ARN"
                },
                "BucketKeyEnabled": true
            }
        ]
    }'
```

## 使用 CloudFormation
<a name="enable-bucket-key-cloudformation"></a>

如需使用 設定 S3 儲存貯體金鑰的詳細資訊 CloudFormation，請參閱*AWS CloudFormation 《 使用者指南*》中的 [AWS::S3::Bucket ServerSideEncryptionRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html)。