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

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

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

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

  • CodePipeline 创建 S3 工件存储桶, AWS 托管式密钥 当您使用创建管道向导创建管道时会创建默认存储桶。与对象数据一起加密,并由管理 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,请参阅使用服务器端加密保护数据和使用存储在 AWS Key Management Service (SSE- KMS) 中的 KMS 密钥使用服务器端加密保护数据

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

查看你的 AWS 托管式密钥

当您使用创建管道向导创建第一个管道时,系统将在您创建管道的同一区域为您创建一个 S3 存储桶。存储桶用于存储管道项目。当管道运行时,构件会放入 S3 存储桶并从中检索。默认情况下, CodePipeline 使用服务器端加密,并 AWS KMS 使用 AWS 托管式密钥 适用于 Amazon S3 的(aws/s3密钥)。 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 桶中的数据进行加密。