使用客户托管密钥加密构建输出 - Amazon CodeBuild
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用客户托管密钥加密构建输出

如果您是第一次按照中的步骤通过控制台开始使用 Amazon CodeBuild 进行访问,则很可能不需要本主题中的信息。但是,当你继续使用时 CodeBuild,你可能需要做一些事情,比如加密构建工件。

Amazon CodeBuild 要加密其构建输出项目,它需要访问 KMS 密钥。默认情况下,在您的 Amazon 账户中 CodeBuild 使用 Amazon 托管式密钥 适用于 Amazon S3 的。

如果您不想使用 Amazon 托管式密钥,则必须自己创建和配置客户托管密钥。本部分介绍了如何通过 IAM 控制台执行此操作。

有关客户托管密钥的信息,请参阅《Amazon KMS 开发人员指南》中的 Amazon Key Management Service 概念创建密钥

要配置客户托管密钥以供使用 CodeBuild,请按照《Amazon KMS 开发人员指南》中修改密钥策略的 “如何修改密钥策略” 部分中的说明进行操作。然后在密钥策略中添加以下语句(介于### BEGIN ADDING STATEMENTS HERE ###和之间### END ADDING STATEMENTS HERE ###)。为了简洁起见,也为了帮您查找添加语句的位置,此处使用了省略号 (...)。请勿删除任何语句,也不要将这些省略号键入密钥策略中。

{ "Version": "2012-10-17", "Id": "...", "Statement": [ ### BEGIN ADDING STATEMENTS HERE ### { "Sid": "Allow access through Amazon S3 for all principals in the account that are authorized to use Amazon S3", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "s3.region-ID.amazonaws.com", "kms:CallerAccount": "account-ID" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-ID:role/CodeBuild-service-role" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, ### END ADDING STATEMENTS HERE ### { "Sid": "Enable IAM User Permissions", ... }, { "Sid": "Allow access for Key Administrators", ... }, { "Sid": "Allow use of the key", ... }, { "Sid": "Allow attachment of persistent resources", ... } ] }
  • region-ID表示与之关联的 Amazon S3 存储桶 CodeBuild 所在 Amazon 区域的 ID(例如us-east-1)。

  • account-ID表示拥有客户托管密钥的 Amazon 账户的 ID。

  • CodeBuild-service-role表示您在本主题前面创建或确定的 CodeBuild 服务角色的名称。

注意

要通过 IAM 控制台创建或配置客户托管密钥,您必须先使用以下 Amazon Web Services Management Console 方式之一登录: