AWS CodeBuild
用户指南 (API 版本 2016-10-06)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本指南中的过程支持新的控制台设计。如果您选择使用较旧版本的控制台,可以在本指南中找到许多仍然适用的概念和基本过程。要访问新控制台中的帮助,请选择信息图标。

使用 VPC 终端节点

您可以通过将 CodeBuild 配置为使用接口 VPC 终端节点来提高构建的安全性。接口终端节点由 PrivateLink 提供技术支持,该技术使您能够通过使用私有 IP 地址私下访问 Amazon EC2 和 CodeBuild。PrivateLink 将托管实例、CodeBuild 和 Amazon EC2 之间的所有网络流量限制在 Amazon 网络以内。(托管实例无法访问 Internet。) 而且,您无需 Internet 网关、NAT 设备或虚拟专用网关。不要求您配置 PrivateLink,但推荐进行配置。有关 PrivateLink 和 VPC 终端节点的更多信息,请参阅通过 PrivateLink 访问 AWS 服务

在您创建 VPC 终端节点前

在配置 CodeBuild 的 VPC 端点之前,请注意以下限制。

注意

以下服务必须与 Internet 进行通信。利用 Amazon VPC NAT 网关,您可以将 VPC 终端节点与 CodeBuild 以及这些服务结合使用。

  • CodeCommit,它可能是一个源存储库。

  • Amazon ECR,它可用于自定义 Docker 映像。

  • Active Directory.

  • Amazon CloudWatch Events 和 Amazon CloudWatch Logs。

  • VPC 终端节点仅通过 Amazon Route 53 支持 Amazon 提供的 DNS。如果您希望使用自己的 DNS,可以使用条件 DNS 转发。有关更多信息,请参阅 Amazon VPC 用户指南 中的 DHCP 选项集

  • VPC 终端节点当前不支持跨区域请求。确保您在存储构建输入和输出的任何 Amazon S3 存储桶所在的相同区域内创建终端节点。您可以使用 Amazon S3 控制台或 get-bucket-location 命令来查找存储桶的位置。使用区域特定的 Amazon S3 终端节点访问存储桶(例如,mybucket.s3-us-west-2.amazonaws.com)。有关 Amazon S3 的区域特定终端节点的更多信息,请参阅 Amazon Web Services General ReferenceAmazon Web Services General Reference 中的 Amazon Simple Storage Service。如果您使用 AWS CLI 向 Amazon S3 发起请求,请将默认区域设置为您的存储桶所在的区域,或在请求中使用 --region 参数。

创建 CodeBuild 的 VPC 终端节点

按照创建接口终端节点中的说明来创建终端节点 com.amazonaws.region.codebuild。这是用于 CodeBuild 的 VPC 终端节点。

region 代表 CodeBuild 支持的 AWS 区域的区域标识符,例如 us-west-2 表示US East (Ohio)区域。有关支持的区域列表,请参阅 AWS 一般参考 中的 CodeBuild。使用您在登录到 AWS 时指定的区域来预填充终端节点。如果更改您的区域,VPC 终端节点会相应地更新。

为 CodeBuild 创建 VPC 终端节点策略

您可以为 CodeBuild 的 Amazon VPC 终端节点创建一个策略,在其中可以指定:

  • 可执行操作的委托人。

  • 可执行的操作。

  • 可用于执行操作的资源。

以下示例策略指定所有委托人只能启动和查看 project-name 项目的构建。

{ "Statement": [ { "Action": [ "codebuild:ListBuildsForProject", "codebuild:StartBuild", "codebuild:BatchGetBuilds" ], "Effect": "Allow", "Resource": "arn:aws:codebuild:region-ID:account-ID:project/project-name", "Principal": "*" } ] }

有关更多信息,请参阅使用 VPC 终端节点控制对服务的访问