为存储在 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)的 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" } } } ] }

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

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

查看你的 Amazon 托管式密钥

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

查看有关您的信息 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 桶中的数据进行加密。