

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

# AWS CodeCommit 与接口 VPC 终端节点一起使用
<a name="codecommit-and-interface-VPC"></a>

如果您使用亚马逊虚拟私有云（亚马逊 VPC）托管 AWS 资源，则可以在您的 VPC 和之间建立私有连接 CodeCommit。您可以使用此连接实现 CodeCommit 与您的 VPC 上的资源的通信而不用访问公共 Internet。

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

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

**注意**  
其他提供 VPC 支持并与 CodeCommit之集成的 AWS 服务（例如 AWS CodePipeline）可能不支持使用 Amazon VPC 终端节点进行集成。例如， CodePipeline 和之间的流量 CodeCommit 不能限制在 VPC 子网范围内。支持集成的服务（如 [AWS Cloud9](setting-up-ide-c9.md)）可能需要其他服务（如 AWS Systems Manager）。

 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>

CodeCommit 目前支持以下 VPC 终端节点 AWS 区域：
+ 美国东部（俄亥俄州） 
+ 美国东部（弗吉尼亚州北部）
+ 美国西部（北加利福尼亚）
+ 美国西部（俄勒冈）
+ 欧洲地区（爱尔兰）
+ 欧洲地区（伦敦）
+ Europe (Paris)
+ 欧洲地区（法兰克福）
+ 欧洲地区（斯德哥尔摩）
+ 欧洲地区（米兰）
+ 非洲（开普敦）
+ 以色列（特拉维夫）
+ 亚太地区（东京）
+ 亚太地区（新加坡）
+ 亚太地区（悉尼）
+ 亚太地区（雅加达）
+ 中东（阿联酋）：
+ 亚太地区（首尔）
+ 亚太地区（大阪）
+ 亚太地区（孟买）
+ 亚太地区（海得拉巴）
+ 亚太地区（香港）
+ 南美洲（圣保罗）
+ 中东（巴林）
+ 加拿大（中部）
+ 中国（北京）
+ 中国（宁夏）
+ AWS GovCloud （美国西部）
+ AWS GovCloud （美国东部）

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

要开始在您的 VPC 中使用 CodeCommit ，请为创建一个接口 VPC 终端节点 CodeCommit。 CodeCommitGit 操作和 CodeCommit API 操作需要单独的端点。根据您的业务需求，您可能需要创建多个 VPC 终端节点。为创建 VPC 终端节点时 CodeCommit，选择**AWS 服务**，然后在**服务名称**中，从以下选项中进行选择：
+ **com.amazonaws。 *region*.git-codecomm** it：如果您想使用存储库为 Git 操作创建 VPC 终端节点，请选择此选项。 CodeCommit 例如，如果您的用户使用 Git 客户端以及诸如、和之类的命令`git pull`，则`git push`当他们与 CodeCommit 仓库交互时`git commit`，请选择此选项。
+ **com.amazonaws。 *region*。 git-codecommit-fips**：如果您想使用符合联邦信息处理标准 (FIPS) 出版物 140-2 美国政府标准的 CodeCommit 存储库为 Git 操作创建 VPC 终端节点，请选择此选项。
**注意**  
Git 的 FIPS 终端节点并非在所有 AWS 地区都可用。有关更多信息，请参阅 [Git 连接端点](regions.md#regions-git)。
+ **com.amazonaws。 *region*.codecommit**：如果您想为 CodeCommit API 操作创建 VPC 终端节点，请选择此选项。例如，如果您的用户使用、 CodeCommit API 或与之 AWS CLI交互 AWS SDKs 来执行诸如、和之类 CodeCommit 的操作 `CreateRepository``ListRepositories`，请选择此选项`PutFile`。
+ **com.amazonaws。 *region*.codemmit-fips**：如果您要为 CodeCommit API 操作创建符合联邦信息处理标准 (FIPS) 出版物 140-2 美国政府标准的 VPC 终端节点，请选择此选项。
**注意**  
FIPS 终端节点并非在所有 AWS 地区都可用。有关更多信息，请参阅[联邦信息处理标准 (FIPS) 140-2](https://aws.amazon.com/compliance/fips/) 概述 AWS CodeCommit 中的条目。

## 为创建 VPC 终端节点策略 CodeCommit
<a name="create-vpc-endpoint-policy-for-codecommit"></a>

您可以为 Amazon VPC 终端节点创建策略，您可以在其中指定： CodeCommit 
+ 可执行操作的主体。
+ 可执行的操作。
+ 可用于执行操作的资源。

例如，公司可能希望将对存储库的访问限制为 VPC 的网络地址范围。您可以在此处查看此类策略的示例：[示例 3：允许从指定 IP 地址范围连接的用户访问存储库](customer-managed-policies.md#identity-based-policies-example-3)。公司为美国东部（俄亥俄州）区域配置了两个 Git VPC 端点：`com.amazonaws.us-east-2.codecommit` 和 `com-amazonaws.us-east-2.git-codecommit-fips`。他们只想允许将代码推送到*MyDemoRepo*仅在符合 FIPS 的端点上命名的 CodeCommit 存储库。为了强制执行此操作，他们将在 `com.amazonaws.us-east-2.codecommit` 终端节点上配置一个与以下策略类似的策略，该策略专用于拒绝 Git 推送操作：

```
{
    "Statement": [
        {
            "Action": "*",
            "Effect": "Allow",
            "Resource": "*",
            "Principal": "*"
        },
        {
            "Action": "codecommit:GitPush",
            "Effect": "Deny",
            "Resource": "arn:aws:codecommit:us-east-2:123456789012:MyDemoRepo",
            "Principal": "*"
        }
    ]
}
```

**重要**  
IAM `git push` 命令策略 CodeCommit存储库中`aws:VpcSourceIp`不支持全局条件密钥。

有关更多信息，请参阅 *Amazon VPC 用户指南*中的[创建接口终端节点](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint.html)。