本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用客户托管密钥加密构建输出
如果您是第一次按照中的步骤通过控制台开始使用 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 方式之一登录:
-
您的 Amazon 主账号。我们不建议这么做。有关更多信息,请参阅《用户指南》中的账户根用户。
-
您 Amazon 账户中的管理员用户。有关更多信息,请参阅用户指南中的创建您的第一个 Amazon Web Services 账户 root 用户和群组。
-
您 Amazon 账户中有权创建或修改客户托管密钥的用户。有关更多信息,请参阅《Amazon KMS 开发者指南》中的使用 Amazon KMS 控制台所需的权限。