将 Amazon CodeBuild 与 Amazon Virtual Private Cloud 结合使用 - Amazon CodeBuild
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

将 Amazon CodeBuild 与 Amazon Virtual Private Cloud 结合使用

通常,Amazon CodeBuild 无法访问 VPC 中的资源。要支持访问,您必须在 CodeBuild 项目配置中提供额外的 VPC 特定配置信息。这包括 VPC ID、VPC 子网 ID 和 VPC 安全组 ID。支持 VPC 的构建随后就可以访问 VPC 中的资源。有关在 Amazon VPC 中设置 VPC 的更多信息,请参阅《Amazon VPC 用户指南》。

使用案例

来自 Amazon CodeBuild 构建的 VPC 连接使以下操作成为可能:

  • 针对在私有子网上隔离的 Amazon RDS 数据库中的数据,从您的构建中运行集成测试。

  • 直接通过测试查询 Amazon ElastiCache 集群中的数据。

  • 与托管于 Amazon EC2、Amazon ECS 或使用内部 Elastic Load Balancing 的服务上的内部 Web 服务交互。

  • 从自托管的内部构件存储库(如适用于 Python 的 PyPI、适用于 Java 的 Maven 和适用于 Node.js 的 npm)检索依赖项。

  • 访问配置为仅允许通过 Amazon VPC 端点访问的 S3 存储桶中的对象。

  • 利用与您的子网关联的 NAT 网关或 NAT 实例的弹性 IP 地址,来查询需要固定 IP 地址的外部 Web 服务。

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

VPC 的最佳实操

在设置 VPC 以使用 CodeBuild 时,请使用此核对清单。

  • 设置具有公有和私有子网以及一个 NAT 网关的 VPC。NAT 网关必须位于公有子网中。有关更多信息,请参阅《Amazon VPC 用户指南》中的具有公有和私有子网 (NAT) 的 VPC

    重要

    您需要一个 NAT 网关或 NAT 实例以便将 CodeBuild 与您的 VPC 结合使用,从而使 CodeBuild 能够访问公有端点(例如,在运行构建时运行 CLI 命令)。您不能使用互联网网关代替 NAT 网关或 NAT 实例,因为 CodeBuild 不支持将弹性 IP 地址分配给其创建的网络接口,并且 Amazon EC2 不支持为在 Amazon EC2 实例启动之外创建的任何网络接口自动分配公有 IP 地址。

  • 将多个可用区包含在您的 VPC 中。

  • 确保您的安全组不允许入站 (入口) 流量流至您的构建。CodeBuild 对出站流量没有具体要求,但您必须允许访问构建所需的任何互联网资源,例如 GitHub 或 Amazon S3。

    有关更多信息,请参阅《Amazon VPC 用户指南》中的安全组规则

  • 为您的构建设置单独的子网。

  • 当您设置 CodeBuild 项目以访问 VPC 时,请仅选择私有子网。

有关在 Amazon VPC 中设置 VPC 的更多信息,请参阅《Amazon VPC 用户指南》。

有关使用 Amazon CloudFormation 将 VPC 配置为使用 CodeBuild VPC 功能的更多信息,请参阅Amazon CloudFormation VPC 模板

VPC 的限制

  • 共享 VPC 不支持来自 CodeBuild 的 VPC 连接。