使用客户管理的密钥加密构建输出 - AWS CodeBuild

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

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

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

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

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

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

要配置客户托管密钥以供使用 CodeBuild,请按照《AWS 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 所在 AWS 区域的 ID(例如us-east-1)。

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

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

注意

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