針對存放在 Amazon S3 for CodePipeline 中的成品設定伺服器端加密 - AWS CodePipeline

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

針對存放在 Amazon S3 for CodePipeline 中的成品設定伺服器端加密

有兩種方式可設定 Amazon S3 成品的伺服器端加密:

  • 當您使用建立管道精靈建立管道 AWS 受管金鑰 時,CodePipeline 會建立 S3 成品儲存貯體並預設建立管道。 AWS 受管金鑰 會與物件資料一起加密,並由 管理 AWS。

  • 您可以建立和管理自己的客戶受管金鑰。

重要

CodePipeline 僅支援對稱 KMS 金鑰。請勿使用非對稱 KMS 金鑰來加密 S3 儲存貯體中的資料。

如果您使用的是預設 S3 金鑰,則無法變更或刪除此 AWS 受管金鑰。如果您在 中使用客戶受管金鑰 AWS KMS 來加密或解密 S3 儲存貯體中的成品,您可以視需要變更或輪換此客戶受管金鑰。

如果儲存貯體中所存放的所有物件都需要伺服器端加密,則 Amazon S3 支援您可使用的儲存貯體政策。例如,如果要求不包含要求含 SSE-KMS 之伺服器端加密的 s3:PutObject 標頭,則下列儲存貯體政策會拒絕向所有人上傳物件 (x-amz-server-side-encryption) 的許可。

{ "Version": "2012-10-17", "Id": "SSEAndSSLPolicy", "Statement": [ { "Sid": "DenyUnEncryptedObjectUploads", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::codepipeline-us-west-2-89050EXAMPLE/*", "Condition": { "StringNotEquals": { "s3:x-amz-server-side-encryption": "aws:kms" } } }, { "Sid": "DenyInsecureConnections", "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::codepipeline-us-west-2-89050EXAMPLE/*", "Condition": { "Bool": { "aws:SecureTransport": "false" } } } ] }

如需伺服器端加密的詳細資訊 AWS KMS,請參閱使用伺服器端加密保護資料,以及使用存放於 (SSE-KMS) 的 AWS Key Management Service KMS 金鑰使用伺服器端加密保護資料

如需詳細資訊 AWS KMS,請參閱 AWS Key Management Service 開發人員指南

檢視您的 AWS 受管金鑰

當您使用 Create Pipeline (建立管道) 精靈建立第一個管道時,在您建立管道的相同區域中,將會為您建立 S3 儲存貯體。儲存貯體用於存放管道成品。當管道執行時,S3 儲存貯體中會放入和擷取成品。根據預設,CodePipeline 會使用適用於 Amazon S3 AWS 受管金鑰 的 (aws/s3金鑰) 搭配 AWS KMS 使用伺服器端加密。 AWS 受管金鑰 這會建立並儲存在您的帳戶中 AWS 。從 S3 儲存貯體擷取成品時,CodePipeline 會使用相同的 SSE-KMS 程序來解密成品。

若要檢視 的相關資訊 AWS 受管金鑰
  1. 登入 AWS Management Console 並開啟 AWS KMS 主控台。

  2. 如果出現歡迎頁面,請選擇立即開始使用

  3. 在服務導覽窗格中,選擇AWS 受管金鑰

  4. 選擇管道的區域。例如,如果管道是在 中建立的us-east-2,請確定篩選條件設定為美國東部 (俄亥俄)。

    如需 CodePipeline 可用區域和端點的詳細資訊,請參閱AWS CodePipeline 端點和配額

  5. 在清單中,選擇具有管道所用別名的金鑰 (預設為 aws/s3)。隨即顯示金鑰的基本資訊。

使用 AWS CloudFormation 或 設定 S3 儲存貯體的伺服器端加密 AWS CLI

當您使用 AWS CloudFormation 或 AWS CLI 建立管道時,您必須手動設定伺服器端加密。使用上述的範例儲存貯體政策,然後建立自己的客戶受管金鑰。您也可以使用自己的金鑰,而不是 AWS 受管金鑰。選擇您自己的金鑰的一些原因包括:

密碼編譯最佳實務不鼓勵大量重複使用加密金鑰。根據最佳實務,請定期輪換您的金鑰。若要為您的 AWS KMS 金鑰建立新的密碼編譯材料,您可以建立客戶受管金鑰,然後變更您的應用程式或別名,以使用新的客戶受管金鑰。或者,您可以為現有的客戶受管金鑰啟用自動金鑰輪換。

若要輪換客戶受管金鑰,請參閱輪換金鑰

重要

CodePipeline 僅支援對稱 KMS 金鑰。請勿使用非對稱 KMS 金鑰來加密 S3 儲存貯體中的資料。