

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 AWS CodeCommit 搭配界面 VPC 端點
<a name="codecommit-and-interface-VPC"></a>

如果您使用 Amazon Virtual Private Cloud (Amazon VPC) 託管 AWS 資源，您可以在 VPC 和 CodeCommit 之間建立私有連線。您可以使用此連線讓 CodeCommit 與 VPC 上的資源通訊，而無需透過公有網際網路。

Amazon VPC 是一種 AWS 服務，可用來在您定義的虛擬網路中啟動 AWS 資源。您可利用 VPC 來控制您的網路設定，例如 IP 地址範圍、子網路、路由表和網路閘道。透過 VPC 端點，VPC 和 AWS 服務之間的路由由 AWS 網路處理，您可以使用 IAM 政策來控制對服務資源的存取。

若要將 VPC 連線至 CodeCommit，請定義 CodeCommit 的*介面 VPC 端點*。界面端點是具有私有 IP 地址的彈性網路界面，可做為目的地為支援 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。

 介面 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)
+ 歐洲 (法蘭克福)
+ 歐洲 (斯德哥爾摩)
+ 歐洲 (米蘭)
+ 非洲 (開普敦)
+ 以色列 (特拉維夫)
+ 亞太地區 (東京)
+ 亞太區域 (新加坡)
+ 亞太地區 (悉尼)
+ 亞太地區 (雅加達)
+ 中東 (阿拉伯聯合大公國)
+ 亞太地區 (首爾)
+ 亞太地區 (大阪)
+ 亞太地區 (孟買)
+ 亞太地區 (海德拉巴)
+ 亞太地區 (香港)
+ 南美洲 (聖保羅)
+ Middle East (Bahrain)
+ 加拿大 (中部)
+ 中國 (北京)
+ 中國 (寧夏)
+ AWS GovCloud （美國西部）
+ AWS GovCloud （美國東部）

## 為 CodeCommit 建立 VPC 端點
<a name="create-vpc-endpoint-for-codecommit"></a>

若要開始將 CodeCommit 與 VPC 搭配使用，請為 CodeCommit 建立介面 VPC 端點。CodeCommit 需要 Git 操作和 CodeCommit API 操作的個別端點。根據您的商業需求，您可能需要建立多個 VPC 端點。當您為 CodeCommit 建立 VPC 端點時，請選擇**AWS 服務**，然後在**服務名稱**中選擇下列選項：
+ **com.amazonaws.*region*.git-codecommit**：如果您想要使用 CodeCommit 儲存庫為 Git 操作建立 VPC 端點，請選擇此選項。例如，如果您的使用者在與 CodeCommit 儲存庫互動`git push`時使用 Git 用戶端和命令`git pull`，例如 `git commit`、 和 ，請選擇此選項。
+ **com.amazonaws.*region*.git-codecommit-fips**：如果您想要使用符合聯邦資訊處理標準 (FIPS) 公報 140-2 美國政府標準的 CodeCommit 儲存庫建立 Git 操作的 VPC 端點，請選擇此選項。
**注意**  
並非所有 AWS 區域都提供 Git 的 FIPS 端點。如需詳細資訊，請參閱[Git 連線端點](regions.md#regions-git)。
+ **com.amazonaws.*region*.codecommit**：如果您想要為 CodeCommit API 操作建立 VPC 端點，請選擇此選項。例如，如果您的使用者使用 AWS CLI、CodeCommit API 或 AWS SDKs 與 CodeCommit 互動，例如 `CreateRepository`、 和 等操作`ListRepositories`，請選擇此選項`PutFile`。
+ **com.amazonaws.*region*.codecommit-fips**：如果您想要為 CodeCommit API 操作建立符合聯邦資訊處理標準 (FIPS) 公報 140-2 美國政府標準的 VPC 端點，請選擇此選項。
**注意**  
並非所有 AWS 區域都提供 FIPS 端點。如需詳細資訊，請參閱[聯邦資訊處理標準 (FIPS) 140-2 概觀](https://aws.amazon.com/compliance/fips/) AWS CodeCommit 中的 項目。

## 為 CodeCommit 建立 VPC 端點政策
<a name="create-vpc-endpoint-policy-for-codecommit"></a>

您可以為 CodeCommit 的 Amazon VPC 端點建立政策，您可以在其中指定：
+ 可執行動作的主體。
+ 可執行的動作。
+ 可對其執行動作的資源。

例如，一家公司可能需要限制只能從 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`。他們想要僅允許在符合 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": "*"
        }
    ]
}
```

**重要**  
`git push` 命令的 IAM 政策中`aws:VpcSourceIp`不支援全域條件金鑰 CodeCommit 儲存庫。

如需詳細資訊，請參閱 *Amazon VPC 使用者指南*中的[建立界面端點](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint.html)。