为存储在 Amazon S3 中的项目配置服务器端加密 CodePipeline - Amazon CodePipeline
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

为存储在 Amazon S3 中的项目配置服务器端加密 CodePipeline

可以使用两种方法为 Amazon S3 构件配置服务器端加密:

  • CodePipeline 创建 S3 工件存储桶, Amazon 托管式密钥 当您使用创建管道向导创建管道时会创建默认存储桶。与对象数据一起加密,并由管理 Amazon。 Amazon 托管式密钥

  • 您可以创建和管理自己的客户管理的密钥。

重要

CodePipeline 仅支持对称KMS密钥。请勿使用非对称KMS密钥对 S3 存储桶中的数据进行加密。

如果使用默认的 S3 密钥,则无法更改或删除此 Amazon 托管式密钥。如果您使用客户托管密钥 Amazon KMS 来加密或解密 S3 存储桶中的项目,则可以根据需要更改或轮换此客户托管密钥。

Amazon S3 支持存储桶策略,如果您要对所有存储在存储桶中的对象执行服务器端加密,则可以使用这些策略。例如,如果请求不包含请求使用 SSE-KMS 进行服务器端加密的x-amz-server-side-encryption标头,则以下存储桶策略会拒绝所有人的上传对象 (s3:PutObject) 权限。

{ "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" } } } ] }

有关服务器端加密的更多信息以及 Amazon KMS,请参阅使用服务器端加密保护数据和使用服务器端加密保护数据,KMS密钥存储在 Amazon Key Management Service (SSE-) 中。KMS

有关的更多信息 Amazon KMS,请参阅《Amazon Key Management Service 开发人员指南》

查看你的 Amazon 托管式密钥

当您使用创建管道向导创建第一个管道时,系统将在您创建管道的同一区域为您创建一个 S3 存储桶。存储桶用于存储管道项目。当管道运行时,构件会放入 S3 存储桶并从中检索。默认情况下, CodePipeline 使用服务器端加密,并 Amazon KMS 使用 Amazon 托管式密钥 适用于 Amazon S3 的(aws/s3密钥)。 Amazon 托管式密钥 这是创建并存储在您的 Amazon 账户中。从 S3 存储桶检索项目时, CodePipeline 使用相同的SSEKMS过程来解密工件。

查看有关您的信息 Amazon 托管式密钥
  1. 登录 Amazon Web Services Management Console 并打开 Amazon KMS 控制台。

  2. 如果出现欢迎页面,请选择立即开始使用

  3. 在服务导航窗格中,选择Amazon 托管式密钥

  4. 选择您的管道所在的区域。例如,如果管道是在 us-east-2 中创建的,则确保将筛选条件设为美国东部(俄亥俄州)。

    有关可用区域和终端节点的更多信息 CodePipeline,请参阅终Amazon CodePipeline 端节点和配额

  5. 在列表中,选择包含管道所用别名的密钥(默认情况下为 aws/s3)。有关该密钥的基本信息将会显示。

使用 Amazon CloudFormation 或,为 S3 存储桶配置服务器端加密 Amazon CLI

使用 Amazon CloudFormation 或创建管道时,必须手动配置服务器端加密。 Amazon CLI 使用上面的示例桶策略,然后创建您自己的客户管理的密钥。您也可以使用自己的密钥,而不是 Amazon 托管式密钥。选择自己的密钥的一些理由包括:

加密最佳实践建议不要广泛重复使用加密密钥。作为最佳实践,请定期轮换您的密钥。要为您的 Amazon KMS 密钥创建新的加密材料,您可以创建客户托管密钥,然后更改应用程序或别名以使用新的客户托管密钥。或者,您可以为现有客户管理的密钥启用自动密钥轮换。

要轮换客户管理的密钥,请参阅轮换密钥

重要

CodePipeline 仅支持对称KMS密钥。请勿使用非对称KMS密钥对 S3 存储桶中的数据进行加密。