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

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

将 CodeDeploy 与 Amazon Virtual Private Cloud 结合使用

如果您使用 Amazon Virtual Private Cloud(Amazon VPC)托管 Amazon 资源,则可以在您的 VPC 和 CodeDeploy 之间建立私有连接。您可以使用此连接实现 CodeDeploy 与您的 VPC 上的资源的通信,而不用访问公共互联网。

Amazon VPC 是一项 Amazon 服务,可用来启动在虚拟网络中定义的 Amazon 资源。借助 VPC,您可以控制您的网络设置,如 IP 地址范围、子网、路由表和网络网关。在使用 VPC 终端节点时,VPC 和 Amazon 服务之间的路由是由 Amazon 网络处理的,并且可以使用 IAM policy 控制对服务资源的访问。

要将 VPC 连接到 CodeDeploy,请为 CodeDeploy 定义一个接口 VPC 端点。接口端点是具有私有 IP 地址的弹性网络接口,用作发送到受支持的 Amazon 服务的通信的入口点。该端点提供了到 CodeDeploy 的可靠、可扩展的连接,无需互联网网关、网络地址转换(NAT)实例或 VPN 连接。有关更多信息,请参阅《Amazon VPC 用户指南》中的什么是 Amazon VPC

接口 VPC 端点由 Amazon PrivateLink 提供支持,后者是一种 Amazon 技术,可将弹性网络接口与私有 IP 地址结合使用来支持 Amazon 服务之间的专有通信。有关更多信息,请参阅 Amazon PrivateLink

以下步骤适用于 Amazon VPC 的用户。有关更多信息,请参阅 Amazon VPC 用户指南中的入门

可用性

CodeDeploy 有两个 VPC 端点:一个用于 CodeDeploy 代理操作,另一个用于 CodeDeploy API 操作。下表显示了每个端点支持的 Amazon 区域。

有关 FIPS 端点的更多信息,请参阅 Amazon CodeDeploy 端点和配额

区域名称 区域代码 代理端点 API 终端节点 符合 FIPS 标准的区域?

美国东部(弗吉尼亚州北部)

us-east-1

支持

美国东部(俄亥俄州)

us-east-2

支持

美国西部(加利福尼亚北部)

us-west-1

支持

美国西部(俄勒冈州)

us-west-2

支持

非洲(开普敦)

af-south-1

亚太地区(香港)

ap-east-1

支持

亚太地区(海得拉巴)

ap-south-2

亚太地区(雅加达)

ap-southeast-3

亚太地区(墨尔本)

ap-southeast-4

亚太地区(孟买)

ap-south-1

支持

亚太地区(大阪)

ap-northeast-3

亚太地区(首尔)

ap-northeast-2

支持

亚太地区(新加坡)

ap-southeast-1

支持

亚太地区(悉尼)

ap-southeast-2

支持

亚太地区(东京)

ap-northeast-1

支持

加拿大(中部)

ca-central-1

支持

中国(北京)

cn-north-1

中国(宁夏)

cn-northwest-1

欧洲地区(法兰克福)

eu-central-1

支持

欧洲地区(爱尔兰)

eu-west-1

支持

欧洲地区(伦敦)

eu-west-2

支持

欧洲(米兰)

eu-south-1

欧洲地区(巴黎)

eu-west-3

支持

欧洲(西班牙)

eu-south-2

欧洲地区(斯德哥尔摩)

eu-north-1

支持

欧洲(苏黎世)

eu-central-2

以色列(特拉维夫)

il-central-1

支持

中东(巴林)

me-south-1

支持

中东(阿联酋)

me-central-1

South America(São Paulo)

sa-east-1

支持

Amazon GovCloud(美国东部)

us-gov-east-1

Amazon GovCloud(美国西部)

us-gov-west-1

为 CodeDeploy 创建 VPC 端点

要开始将您的 CodeDeploy 与 VPC 一起使用,请为 CodeDeploy 创建接口 VPC 端点。CodeDeploy 需要单独的端点来执行代理 Git 操作和 CodeDeploy API 操作。根据您的业务需求,您可能需要创建多个 VPC 终端节点。在为 CodeDeploy 创建 VPC 端点时,选择 Amazon 服务,然后在服务名称中,从以下选项中进行选择:

  • com.amazonaws.region.codedeploy:如果要为 CodeDeploy API 操作创建 VPC 端点,请选择此选项。例如,如果您的用户使用 Amazon CLI、CodeDeploy API 或 Amazon 开发工具包来与 CodeDeploy 交互以进行 CreateApplicationGetDeploymentListDeploymentGroups 等操作,请选择此选项。

  • com.amazonaws.region.codedeploy-fips:如果要为 FIPS 端点的 CodeDeploy API 操作创建 VPC 端点,请选择此选项。

  • com.amazonaws.region.codedeploy-commands-secure:如果要为 CodeDeploy 代理操作创建 VPC 端点,请选择此选项。您还需要在代理配置文件中将 :enable_auth_policy: 设置为 true,并附加所需的权限。有关更多信息,请参阅 配置 CodeDeploy 代理和 IAM 权限

如果您使用的是 Lambda 或 ECS 部署,则只需为 com.amazonaws.region.codedeploy 创建 VPC 端点。使用 Amazon EC2 部署的客户需要 com.amazonaws.region.codedeploycom.amazonaws.region.codedeploy-commands-secure 的 VPC 端点。

配置 CodeDeploy 代理和 IAM 权限

要将 Amazon VPC 终端节点与 CodeDeploy 配合使用,您必须在位于 EC2 或本地实例上的代理配置文件中将 :enable_auth_policy: 的值设置为 true。有关代理配置文件的更多信息,请参阅CodeDeploy 代理配置参考

您还必须将以下 IAM 权限添加到您的 Amazon EC2 实例配置文件(如果您使用的是 Amazon EC2 实例)或 IAM 用户或角色(如果您使用的是本地实例)。

{ "Statement": [ { "Action": [ "codedeploy-commands-secure:GetDeploymentSpecification", "codedeploy-commands-secure:PollHostCommand", "codedeploy-commands-secure:PutHostCommandAcknowledgement", "codedeploy-commands-secure:PutHostCommandComplete" ], "Effect": "Allow", "Resource": "*" } ] }

有关更多信息,请参阅 Amazon VPC 用户指南中的创建接口终端节点