本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
針對存放在 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 受管金鑰
-
登入 AWS Management Console 並開啟 AWS KMS 主控台。
-
如果出現歡迎頁面,請選擇立即開始使用。
-
在服務導覽窗格中,選擇AWS 受管金鑰。
-
選擇管道的區域。例如,如果管道是在 中建立的
us-east-2
,請確定篩選條件設定為美國東部 (俄亥俄)。如需 CodePipeline 可用區域和端點的詳細資訊,請參閱AWS CodePipeline 端點和配額。
-
在清單中,選擇具有管道所用別名的金鑰 (預設為 aws/s3)。隨即顯示金鑰的基本資訊。
使用 AWS CloudFormation 或 設定 S3 儲存貯體的伺服器端加密 AWS CLI
當您使用 AWS CloudFormation 或 AWS CLI 建立管道時,您必須手動設定伺服器端加密。使用上述的範例儲存貯體政策,然後建立自己的客戶受管金鑰。您也可以使用自己的金鑰,而不是 AWS 受管金鑰。選擇您自己的金鑰的一些原因包括:
-
您希望依照排程輪換金鑰,以符合您組織的商業或安全需求。
-
您希望建立管道,使用與另一個 AWS 帳戶建立關聯的資源。這便需要使用客戶受管金鑰。如需詳細資訊,請參閱在 中建立管道 CodePipeline ,該管道使用來自另一個 AWS 帳戶的資源。
密碼編譯最佳實務不鼓勵大量重複使用加密金鑰。根據最佳實務,請定期輪換您的金鑰。若要為您的 AWS KMS 金鑰建立新的密碼編譯材料,您可以建立客戶受管金鑰,然後變更您的應用程式或別名,以使用新的客戶受管金鑰。或者,您可以為現有的客戶受管金鑰啟用自動金鑰輪換。
若要輪換客戶受管金鑰,請參閱輪換金鑰。
重要
CodePipeline 僅支援對稱 KMS 金鑰。請勿使用非對稱 KMS 金鑰來加密 S3 儲存貯體中的資料。