如果您首次按照通过控制台开始使用中的步骤操作来访问 AWS CodeBuild,则很可能不需要本主题中的信息。但随着您继续使用 CodeBuild,您可能想要执行一些操作,例如加密构建构件。
要使 AWS CodeBuild 加密其构建输出构件,需要具备对 KMS 密钥的访问权限。默认情况下,CodeBuild 在您的 AWS 账户中使用适用于 Amazon S3 的 AWS 托管式密钥。
如果您不想使用 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
表示与 CodeBuild 关联的 Amazon S3 存储桶所在的 AWS 区域的 ID(例如,us-east-1
)。 -
account-ID
表示拥有客户托管密钥的 AWS 账户的 ID。 -
CodeBuild-service-role
表示您之前在此主题中创建或标识的 CodeBuild 服务角色的名称。
注意
要通过 IAM 控制台创建或配置客户托管密钥,您必须先使用以下任一身份登录该 AWS Management Console:
-
您的 AWS 根账户。我们不建议这么做。有关更多信息,请参阅《用户指南》中的账户根用户。
-
AWS 账户中的管理员用户。有关更多信息,请参阅《用户指南》中的创建您的第一个 AWS 账户 根用户和组。
-
AWS 账户中具有创建或修改客户托管密钥权限的用户。有关更多信息,请参阅《AWS KMS 开发人员指南》中的使用 AWS KMS 控制台所需的权限。