本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为存储在 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 托管式密钥
-
登录 Amazon Web Services Management Console 并打开 Amazon KMS 控制台。
-
如果出现欢迎页面,请选择立即开始使用。
-
在服务导航窗格中,选择Amazon 托管式密钥。
-
选择您的管道所在的区域。例如,如果管道是在
us-east-2
中创建的,则确保将筛选条件设为美国东部(俄亥俄州)。有关可用区域和终端节点的更多信息 CodePipeline,请参阅终Amazon CodePipeline 端节点和配额。
-
在列表中,选择包含管道所用别名的密钥(默认情况下为 aws/s3)。有关该密钥的基本信息将会显示。
使用 Amazon CloudFormation 或,为 S3 存储桶配置服务器端加密 Amazon CLI
使用 Amazon CloudFormation 或创建管道时,必须手动配置服务器端加密。 Amazon CLI 使用上面的示例桶策略,然后创建您自己的客户管理的密钥。您也可以使用自己的密钥,而不是 Amazon 托管式密钥。选择自己的密钥的一些理由包括:
-
您希望按时间表轮换密钥以满足贵组织的业务或安全要求。
-
您要创建一个使用与另一个 Amazon 账户关联的资源的管道。这需要使用客户管理的密钥。有关更多信息,请参阅 在中 CodePipeline 创建使用其他 Amazon 账户资源的管道。
加密最佳实践建议不要广泛重复使用加密密钥。作为最佳实践,请定期轮换您的密钥。要为您的 Amazon KMS 密钥创建新的加密材料,您可以创建客户托管密钥,然后更改应用程序或别名以使用新的客户托管密钥。或者,您可以为现有客户管理的密钥启用自动密钥轮换。
要轮换客户管理的密钥,请参阅轮换密钥。
重要
CodePipeline 仅支持对称KMS密钥。请勿使用非对称KMS密钥对 S3 存储桶中的数据进行加密。