将 AWS CodeCommit 和接口 VPC 终端节点一起使用 - AWS CodeCommit

AWS CodeCommit 现已不再向新客户提供。AWS CodeCommit 的现有客户可以继续正常使用该服务。了解更多

将 AWS CodeCommit 和接口 VPC 终端节点一起使用

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

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

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

注意

其他提供 VPC 支持并与 CodeCommit 集成的 AWS 服务(如 AWS CodePipeline)可能不支持使用 Amazon VPC 端点进行该集成。例如,CodePipeline 和 CodeCommit 之间的流量无法限定于 VPC 子网范围。支持集成的服务(如 AWS Cloud9)可能需要其他服务(如 AWS Systems Manager)。

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

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

可用性

CodeCommit 当前在以下 AWS 区域中支持 VPC 端点:

  • 美国东部(俄亥俄州)

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

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

  • 美国西部(俄勒冈)

  • 欧洲地区(爱尔兰)

  • 欧洲地区(伦敦)

  • 欧洲地区(巴黎)

  • 欧洲地区(法兰克福)

  • 欧洲地区(斯德哥尔摩)

  • 欧洲地区(米兰)

  • 非洲(开普敦)

  • 以色列(特拉维夫)

  • 亚太地区(东京)

  • 亚太地区(新加坡)

  • 亚太地区(悉尼)

  • 亚太地区(雅加达)

  • 中东(阿联酋)

  • 亚太地区(首尔)

  • 亚太地区(大阪)

  • 亚太地区(孟买)

  • 亚太地区(海得拉巴)

  • 亚太地区(香港)

  • 南美洲(圣保罗)

  • 中东(巴林)

  • 加拿大(中部)

  • 中国(北京)

  • China (Ningxia)

  • AWS GovCloud(美国西部)

  • AWS GovCloud(美国东部)

为 CodeCommit 创建 VPC 端点

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

  • com.amazonaws.region.git-codecommit:如果要使用 CodeCommit 存储库为 Git 操作创建 VPC 端点,请选择此选项。例如,如果您的用户在与 CodeCommit 存储库交互时使用 Git 客户端以及 git pullgit commitgit push 等命令,请选择此选项。

  • com.amazonaws.region.git-codecommit-fips:如果要使用符合美国联邦信息处理标准 (FIPS) 出版物 140-2 美国政府标准的 CodeCommit 存储库来为 Git 操作创建 VPC 端点,请选择此选项。

    注意

    适用于 Git 的 FIPS 端点并非在所有 AWS 区域都可用。有关更多信息,请参阅 Git 连接端点

  • com.amazonaws.region.codecommit:如果要为 CodeCommit API 操作创建 VPC 端点,请选择此选项。例如,如果您的用户使用 AWS CLI、CodeCommit API 或 AWS SDK 来与 CodeCommit 交互以进行 CreateRepositoryListRepositoriesPutFile 等操作,请选择此选项。

  • com.amazonaws.region.codecommit-fips:如果要为美国符合联邦信息处理标准 (FIPS) 出版物 140-2 美国政府标准的 CodeCommit API 操作创建 VPC 端点,请选择此选项。

    注意

    FIPS 端点并非在所有 AWS 区域都可用。有关更多信息,请参阅美国联邦信息处理标准 (FIPS) 140-2 概述中有关 AWS CodeCommit 的条目。

为 CodeCommit 创建 VPC 端点策略

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

  • 可执行操作的主体。

  • 可执行的操作。

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

例如,公司可能希望将对存储库的访问限制为 VPC 的网络地址范围。您可以在此处查看此类策略的示例:示例 3:允许从指定 IP 地址范围连接的用户访问存储库 。公司为美国东部(俄亥俄州)区域配置了两个 Git VPC 端点:com.amazonaws.us-east-2.codecommitcom-amazonaws.us-east-2.git-codecommit-fips。他们希望只允许在符合 FIPS 的端点上向名为 MyDemoRepo 的 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 策略中,全局条件键 aws:VpcSourceIp 不是 git push 命令的受支持的 CodeCommit 存储库。

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