

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

# 中的数据保护 AWS CodeBuild
<a name="data-protection"></a>

分 AWS [担责任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)适用于中的数据保护 AWS CodeBuild。如本模型所述 AWS ，负责保护运行所有内容的全球基础架构 AWS 云。您负责维护对托管在此基础结构上的内容的控制。您还负责您所使用的 AWS 服务 的安全配置和管理任务。有关数据隐私的更多信息，请参阅[数据隐私常见问题](https://aws.amazon.com/compliance/data-privacy-faq/)。有关欧洲数据保护的信息，请参阅 *AWS Security Blog* 上的 [AWS Shared Responsibility Model and GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) 博客文章。

出于数据保护目的，我们建议您保护 AWS 账户 凭证并使用 AWS IAM Identity Center 或 AWS Identity and Access Management (IAM) 设置个人用户。这样，每个用户只获得履行其工作职责所需的权限。还建议您通过以下方式保护数据：
+ 对每个账户使用多重身份验证（MFA）。
+ 用于 SSL/TLS 与 AWS 资源通信。我们要求使用 TLS 1.2，建议使用 TLS 1.3。
+ 使用设置 API 和用户活动日志 AWS CloudTrail。有关使用 CloudTrail 跟踪捕获 AWS 活动的信息，请参阅《*AWS CloudTrail 用户指南》*中的[使用跟 CloudTrail 踪](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html)。
+ 使用 AWS 加密解决方案以及其中的所有默认安全控件 AWS 服务。
+ 使用高级托管安全服务（例如 Amazon Macie），它有助于发现和保护存储在 Amazon S3 中的敏感数据。
+ 如果您在 AWS 通过命令行界面或 API 进行访问时需要经过 FIPS 140-3 验证的加密模块，请使用 FIPS 端点。有关可用的 FIPS 端点的更多信息，请参阅《美国联邦信息处理标准（FIPS）第 140-3 版》[https://aws.amazon.com/compliance/fips/](https://aws.amazon.com/compliance/fips/)。

强烈建议您切勿将机密信息或敏感信息（如您客户的电子邮件地址）放入标签或自由格式文本字段（如**名称**字段）。这包括您使用控制台、API CodeBuild 或以其他 AWS 服务 方式使用控制台 AWS CLI、API 或时 AWS SDKs。在用于名称的标签或自由格式文本字段中输入的任何数据都可能会用于计费或诊断日志。如果您向外部服务器提供 URL，强烈建议您不要在网址中包含凭证信息来验证对该服务器的请求。

 为了保护敏感信息， CodeBuild 日志中隐藏了以下内容：
+  在 CodeBuild 项目环境变量或 buildspec `env/parameter-store` 部分中使用参数存储指定的字符串。有关更多信息，请参阅《Amazon EC2 Systems Manager 用户指南》**中的 [Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) 和 [Systems Manager Parameter Store 控制台演练](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-walk.html#sysman-paramstore-console)。
+  AWS Secrets Manager 在 CodeBuild 项目环境变量或 buildspec `env/secrets-manager` 部分中使用指定的字符串。有关更多信息，请参阅 [密钥管理](security-key-management.md)。

有关数据保护的更多信息，请参阅 *AWS 安全性博客*上的 [AWS 责任共担模式和 GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) 博客文章。

**Topics**
+ [数据加密](security-encryption.md)
+ [密钥管理](security-key-management.md)
+ [流量隐私](security-traffic-privacy.md)

# 数据加密
<a name="security-encryption"></a>

加密是 CodeBuild 安全的重要组成部分。某些加密（例如，针对传输中的数据的加密）是默认提供的，无需您执行任何操作。其他加密（例如，针对静态数据的加密）可在创建项目或构建时进行配置。
+ **静态数据加密**-默认使用 AWS 托管式密钥加密生成工件，例如缓存、日志、导出的原始测试报告数据文件和生成结果。如果您不想使用这些 KMS 密钥，则必须创建并配置一个客户托管密钥。有关更多信息，请参阅《AWS Key Management Service 用户指南》**中的[创建 KMS 密钥](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)和 [AWS Key Management Service 概念](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)。
  + 您可以将 CodeBuild 用于加密生成输出项目的 AWS KMS 密钥的标识符存储在`CODEBUILD_KMS_KEY_ID`环境变量中。有关更多信息，请参阅 [构建环境中的环境变量](build-env-ref-env-vars.md)。
  + 可以在创建构建项目时指定客户托管密钥。有关更多信息，请参阅 [Set the Encryption Key Using the Console](create-project.md#encryptionkey-console) 和[使用 CLI 设置加密密钥](create-project.md#cli.encryptionkey)。

  默认情况下，您的构建队列的 Amazon Elastic Block Store 卷是使用加密的 AWS 托管式密钥。
+ **传输中的数据加密**-使用签名版本 4 签名流程签名的 TLS 连接保护客户之间 CodeBuild CodeBuild 以及客户之间及其下游依赖关系之间的所有通信。所有 CodeBuild 端点都使用由管理的 SHA-256 证书 AWS 私有证书颁发机构。有关更多信息，请参阅[签名版本 4 签名流程](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)和[什么是 ACM PCA](https://docs.aws.amazon.com/privateca/latest/userguide/)。
+ **构建构件加密**-与构建项目关联的 CodeBuild 服务角色需要访问 KMS 密钥才能加密其构建输出工件。默认情况下，在您的 AWS 账户中 CodeBuild 使用 AWS 托管式密钥 适用于 Amazon S3 的。如果您不想使用此 AWS 托管式密钥，则必须创建并配置一个客户托管密钥。有关更多信息，请参阅[加密构建输出](setting-up-kms.md)和《AWS KMS 开发人员指南》**中的[创建密钥](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)。

# 密钥管理
<a name="security-key-management"></a>

可以通过加密保护您的内容免遭未经授权的使用。将您的加密密钥存储在中 AWS Secrets Manager，然后向与构建项目关联的 CodeBuild 服务角色授予从您的 Secrets Manager 账户获取加密密钥的权限。有关更多信息，请参阅[使用客户托管密钥加密构建输出](setting-up-kms.md)、[在 中创建构建项目AWS CodeBuild](create-project.md)、[手动运行 AWS CodeBuild 构建](run-build.md)和[教程：存储和检索密钥](https://docs.aws.amazon.com/secretsmanager/latest/userguide/tutorials_basic.html)。

在生成命令中使用`CODEBUILD_KMS_KEY_ID`环境变量来获取 AWS KMS 密钥标识符。有关更多信息，请参阅 [构建环境中的环境变量](build-env-ref-env-vars.md)。

可以使用 Secrets Manager 保护存储用于运行时环境的 Docker 映像的私有注册表的凭证。有关更多信息，请参阅 [带有 AWS Secrets Manager 示例的私有注册表 CodeBuild](sample-private-registry.md)。

# 流量隐私
<a name="security-traffic-privacy"></a>

您可以通过配置为使用接口 VPC 终端节点 CodeBuild 来提高构建的安全性。为此，您无需互联网网关、NAT 设备或虚拟私有网关。尽管建议这样做 PrivateLink，但也无需进行配置。有关更多信息，请参阅 [使用 VPC 端点](use-vpc-endpoints-with-codebuild.md)。有关 PrivateLink 和 VPC 终端节点的更多信息，请参阅[AWS PrivateLink](https://aws.amazon.com/privatelink/)和[通过访问 AWS 服务 PrivateLink](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Introduction.html#what-is-privatelink)。