

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

# AWS CodeBuild 与亚马逊 Virtual Private Cloud 配合使用
<a name="vpc-support"></a>

通常， AWS CodeBuild 无法访问 VPC 中的资源。要启用访问权限，您必须在 CodeBuild 项目 VPC-specific 配置中提供其他配置信息。这包括 VPC ID、VPC 子网 ID 和 VPC 安全组 ID。 VPC-enabled 然后，构建可以访问您的 VPC 内的资源。有关在 Amazon VPC 中设置 VPC 的更多信息，请参阅《[Amazon VPC 用户指南](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Introduction.html)》。

**Topics**
+ [使用案例](#use-cases)
+ [VPC 的最佳实操](#best-practices-for-vpcs)
+ [VPC 的限制](#vpc-limitations)
+ [在您的 CodeBuild 项目中允许 Amazon VPC 访问权限](enabling-vpc-access-in-projects.md)
+ [排查 VPC 设置的问题](troubleshooting-vpc.md)
+ [使用 VPC 端点](use-vpc-endpoints-with-codebuild.md)
+ [AWS CodeBuild 与托管代理服务器一起使用](run-codebuild-in-managed-proxy-server.md)
+ [AWS CodeBuild 与代理服务器一起使用](use-proxy-server.md)
+ [CloudFormation VPC 模板](cloudformation-vpc-template.md)

## 使用案例
<a name="use-cases"></a>

通过 AWS CodeBuild 构建实现的 VPC 连接可以：
+ 针对在私有子网上隔离的 Amazon RDS 数据库中的数据，从您的构建中运行集成测试。
+ 直接从测试中查询 Amazon ElastiCache 集群中的数据。
+ 与托管于 Amazon EC2、Amazon ECS 或使用内部 Elastic Load Balancing 的服务上的内部 Web 服务交互。
+ 从自托管的内部工件存储库中检索依赖项，例如适用于 Python 的 PyPi、适用于 Java 的 Maven 和适用于 npm 的 npm。 Node.js
+ 访问配置为仅允许通过 Amazon VPC 端点访问的 S3 存储桶中的对象。
+ 利用与您的子网关联的 NAT 网关或 NAT 实例的弹性 IP 地址，来查询需要固定 IP 地址的外部 Web 服务。

您的构建可以访问您的 VPC 中托管的任何资源。

## VPC 的最佳实操
<a name="best-practices-for-vpcs"></a>

设置要使用的 VPC 时，请使用此清单 CodeBuild。
+ 设置具有公有和私有子网以及一个 NAT 网关的 VPC。NAT 网关必须位于公有子网中。有关更多信息，请参阅《Amazon VPC 用户指南》中的[具有公有和私有子网 (NAT) 的 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Scenario2.html)。
**重要**  
您需要一个 NAT 网关或 NAT 实例才能 CodeBuild 与您的 VPC 配合使用，这样它 CodeBuild 才能访问公有终端节点（例如，在运行构建时运行 CLI 命令）。您不能使用互联网网关代替 NAT 网关或 NAT 实例，因为 CodeBuild 不支持为其创建的网络接口分配弹性 IP 地址，而且 Amazon EC2 不支持为在 Amazon EC2 实例启动之外创建的任何网络接口自动分配公有 IP 地址。
+ 将多个可用区包含在您的 VPC 中。
+ 确保您的安全组不允许您的内部版本入站（入口）流量。 CodeBuild 对出站流量没有具体要求，但您必须允许访问构建所需的任何互联网资源，例如 GitHub 或 Amazon S3。

  有关更多信息，请参阅《Amazon VPC 用户指南》**中的[安全组规则](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#SecurityGroupRules)。
+ 为您的构建设置单独的子网。
+ 当您将 CodeBuild 项目设置为访问您的 VPC 时，请仅选择私有子网。

有关在 Amazon VPC 中设置 VPC 的更多信息，请参阅《[Amazon VPC 用户指南](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Introduction.html)》。

有关使用配置 VPC CloudFormation 以使用 VP CodeBuild C 功能的更多信息，请参阅[CloudFormation VPC 模板](cloudformation-vpc-template.md)。

## VPC 的限制
<a name="vpc-limitations"></a>
+ 共享 VPC CodeBuild 不支持来自的 VPC 连接。