

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

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

如果您使用亚马逊虚拟私有云（Amazon VPC）托管 AWS 资源，则可以在您的 VPC 和之间建立私有连接 CodeDeploy。您可以使用此连接 CodeDeploy 来实现与您的 VPC 上的资源进行通信，而无需通过公共互联网。

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

要将您的 VPC 连接到 CodeDeploy，您需要为定义*接口 VPC 终端节点* CodeDeploy。接口终端节点是一个带有私有 IP 地址的 elastic network 接口，该地址用作发往受支持 AWS 服务的流量的入口点。该端点 CodeDeploy 无需互联网网关、网络地址转换 (NAT) 实例或 VPN 连接即可提供可靠、可扩展的连接。有关更多信息，请参阅**《Amazon VPC 用户指南》中的[什么是 Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/)。

 Interface VPC 终端节点由 AWS PrivateLink一种 AWS 技术提供支持，该技术使用带有私有 IP 地址的弹性网络接口实现 AWS 服务之间的私密通信。有关更多信息，请参阅 [AWS PrivateLink](https://aws.amazon.com/privatelink/)。

以下步骤适用于 Amazon VPC 的用户。有关更多信息，请参阅 *Amazon VPC 用户指南*中的[入门](https://docs.aws.amazon.com/vpc/latest/userguide/GetStarted.html)。

## 可用性
<a name="codecommit-interface-VPC-availability"></a>

CodeDeploy 有两个 VPC 终端节点：一个用于 CodeDeploy 代理操作，一个用于 CodeDeploy API 操作。下表显示了每个终端节点支持的 AWS 区域。

有关 FIPS 端点的更多信息，请参阅 [AWS CodeDeploy 端点和配额](https://docs.aws.amazon.com/general/latest/gr/codedeploy.html)。


|  区域名称 | 区域代码 | 代理端点 | 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  |  是  |  否  |  | 
|  南美洲（圣保罗）  |  sa-east-1  |  支持  |  是  |  | 
|  AWS GovCloud （美国东部）  |  us-gov-east-1  |  否  |  否  | 是 | 
|  AWS GovCloud （美国西部）  |  us-gov-west-1  |  否  |  否  | 是 | 

## 为创建 VPC 终端节点 CodeDeploy
<a name="create-vpc-endpoint-for-codedeploy"></a>

要开始在您的 VPC 中使用 CodeDeploy ，请为创建一个接口 VPC 终端节点 CodeDeploy。 CodeDeployGit 代理操作和 CodeDeploy API 操作需要单独的端点。根据您的业务需求，您可能需要创建多个 VPC 终端节点。为创建 VPC 终端节点时 CodeDeploy，选择**AWS 服务**，然后在**服务名称**中，从以下选项中进行选择：
+  **com.amazonaws。 *region*.codedeploy**：如果您想为 CodeDeploy API 操作创建 VPC 终端节点，请选择此选项。例如，如果您的用户使用、 CodeDeploy API 或与之 AWS CLI交互 AWS SDKs 来执行诸如、和之类 CodeDeploy 的操作 `CreateApplication``GetDeployment`，请选择此选项`ListDeploymentGroups`。
+  **com.amazonaws。 *region*.codedeploy-fips**：如果您想为 FIPS 终端节点的 CodeDeploy API 操作创建 VPC 终端节点，请选择此选项。
+  **com.amazonaws。 *region*。 codedeploy-commands-secure**：如果您要为 CodeDeploy 代理操作创建 VPC 终端节点，请选择此选项。您还需要在代理配置文件中将 `:enable_auth_policy:` 设置为 `true`，并附加所需的权限。有关更多信息，请参阅 [配置 CodeDeploy 代理和 IAM 权限](#vpc-codedeploy-agent-configuration)。

**如果您使用的是 Lambda 或 ECS 部署，则只需为 com.amazonaws 创建 VPC 终端节点。 *region*.codeploy。**使用亚马逊 EC2 部署的客户需要两个 **com.amazonaws 的 VPC 终端节点。 ***region***.codeploy 和 com.amazonaws。 *region*。 codedeploy-commands-secure**。

## 配置 CodeDeploy 代理和 IAM 权限
<a name="vpc-codedeploy-agent-configuration"></a>

要将 Amazon VPC 终端节点与配合使用 CodeDeploy，您必须在位于 EC2 或本地实例上的代理配置文件`true`中将的值设置为。`:enable_auth_policy:`有关代理配置文件的更多信息，请参阅[CodeDeploy 代理配置参考](reference-agent-configuration.md)。

您还必须将以下 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 用户指南*中的[创建接口终端节点](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint.html)。