設定您的儲存貯體以使用具有 SSE-KMS 的 S3 儲存貯體來獲取新物件 - Amazon Simple Storage Service

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

設定您的儲存貯體以使用具有 SSE-KMS 的 S3 儲存貯體來獲取新物件

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

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

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

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

先決條件

在您將儲存貯體設定為使用 S3 儲存貯體金鑰之前,請先檢閱 啟用 S3 儲存貯體金鑰之前,要注意的變更

主題

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

    在啟用 S3 儲存貯體金鑰的儲存貯體中上傳、複製或修改物件

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

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

    在建立新儲存貯體時啟用 S3 儲存貯體金鑰
    1. 登入 AWS Management Console 並開啟位於 https://https://console.aws.amazon.com/s3/ 的 Amazon S3 主控台。

    2. 在左側導覽窗格中,選擇 Buckets (儲存貯體)。

    3. 選擇建立儲存貯體

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

    5. 預設加密之下,針對加密金鑰類型選擇 AWS Key Management Service 金鑰 (SSE-KMS)

    6. AWS KMS 金鑰之下,執行下列其中一個動作,以選擇 KMS 金鑰:

      • 若要從可用的 KMS 金鑰清單中選擇,請選擇從中選擇 AWS KMS keys,然後從可用的金鑰清單中選擇您的 KMS 金鑰。

        AWS 受管金鑰 (aws/s3) 和您的客戶受管金鑰都會顯示在此清單中。如需客戶受管金鑰的詳細資訊,請參閱《 AWS Key Management Service 開發人員指南》中的客戶金鑰和 AWS 金鑰

      • 若要輸入 KMS 金鑰 ARN,請選擇輸入 AWS KMS key ARN,然後在出現的欄位中輸入您的 KMS 金鑰 ARN。

      • 若要在 AWS KMS 主控台中建立新的客戶受管金鑰,請選擇建立 KMS 金鑰

        如需建立 的詳細資訊 AWS KMS key,請參閱《 AWS Key Management Service 開發人員指南》中的建立金鑰

    7. Bucket Key (儲存貯體金鑰) 底下,選擇 Enable (啟用)。

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

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

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

    為現有儲存貯體啟用 S3 儲存貯體金鑰
    1. 開啟位於 https://console.aws.amazon.com/s3/ 的 Amazon S3 主控台。

    2. 在左側導覽窗格中,選擇 Buckets (儲存貯體)。

    3. Buckets (儲存貯體) 清單中,選擇您要啟用 S3 儲存貯體金鑰的儲存貯體。

    4. 選擇屬性索引標籤。

    5. Default encryption (預設加密) 底下,選擇 Edit (編輯)

    6. 預設加密之下,針對加密金鑰類型選擇 AWS Key Management Service 金鑰 (SSE-KMS)

    7. AWS KMS 金鑰之下,執行下列其中一個動作,以選擇 KMS 金鑰:

      • 若要從可用的 KMS 金鑰清單中選擇,請選擇從中選擇 AWS KMS keys,然後從可用的金鑰清單中選擇您的 KMS 金鑰。

        AWS 受管金鑰 (aws/s3) 和您的客戶受管金鑰都會顯示在此清單中。如需客戶受管金鑰的詳細資訊,請參閱《 AWS Key Management Service 開發人員指南》中的客戶金鑰和 AWS 金鑰

      • 若要輸入 KMS 金鑰 ARN,請選擇輸入 AWS KMS key ARN,然後在出現的欄位中輸入您的 KMS 金鑰 ARN。

      • 若要在 AWS KMS 主控台中建立新的客戶受管金鑰,請選擇建立 KMS 金鑰

        如需建立 的詳細資訊 AWS KMS key,請參閱《 AWS Key Management Service 開發人員指南》中的建立金鑰

    8. Bucket Key (儲存貯體金鑰) 底下,選擇 Enable (啟用)。

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

      Amazon S3 為新增至儲存貯體的新物件啟用 S3 儲存貯體金鑰。現有物件不使用 S3 儲存貯體金鑰。若要為現有物件設定 S3 儲存貯體金鑰,您可以使用 CopyObject 操作。如需詳細資訊,請參閱在物件層級設定 S3 儲存貯體金鑰

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

    您可以使用 PutBucketEncryption 來為您的儲存貯體啟用或停用 S3 儲存貯體金鑰。若要使用 PutBucketEncryption 設定 S3 儲存貯體金鑰,請使用 ServerSideEncryptionRule 資料類型,其中包含具有 SSE-KMS 的預設加密。您也可以指定客戶受管金鑰的 KMS 金鑰 ID,選擇性地使用客戶受管金鑰。 

    如需詳細資訊和語法範例,請參閱 PutBucketEncryption

    下列範例使用 適用於 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,以 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             }         ]     }'

    如需使用 設定 S3 儲存貯體金鑰的詳細資訊 AWS CloudFormation,請參閱AWS CloudFormation 《 使用者指南》中的 AWS::S3::Bucket ServerSideEncryptionRule