AWS CodeCommit とインターフェイス VPC エンドポイントの使用 - 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 ポリシーを使用することができます。

VPC を CodeCommit に接続するには、CodeCommit のインターフェイス VPC エンドポイントを定義します。インターフェイスエンドポイントは、サポートされる AWS サービスを宛先とするトラフィックのエントリポイントとなるプライベート IP アドレスを持つ Elastic Network Interface です。このエンドポイントは、インターネットゲートウェイ、ネットワークアドレス変換 (NAT) インスタンス、および VPN 接続を必要とせず、信頼性が高くスケーラブルな CodeCommit への接続を提供します。詳細については、Amazon VPC ユーザーガイドAmazon VPC とはを参照してください。

注記

VPC サポートを提供する他の AWS のサービスで、CodeCommit と統合する AWS CodePipeline などのサービスは、その統合での Amazon VPC エンドポイントの使用をサポートしていない場合があります。例えば、CodePipeline と CodeCommit の間のトラフィックを VPC サブネット範囲に制限することはできません。

インターフェイス VPC エンドポイントは AWS PrivateLink を利用しています。これは、Elastic Network Interface とプライベート IP アドレスを使用して AWS のサービス間のプライベート通信を可能にする AWS のテクノロジーです。詳細については、「AWS PrivateLink」を参照してください。

以下の手順は、Amazon VPC のユーザー向けです。詳細については、Amazon VPC ユーザーガイド開始方法を参照してください。

Availability

現在、CodeCommit は、次の AWS リージョン VPC エンドポイントをサポートしています。

  • 米国東部 (オハイオ)

  • 米国東部 (バージニア北部)

  • 米国西部 (北カリフォルニア)

  • 米国西部 (オレゴン)

  • 欧州 (アイルランド)

  • 欧州 (ロンドン)

  • 欧州 (パリ)

  • 欧州 (フランクフルト)

  • 欧州 (ストックホルム)

  • ヨーロッパ (ミラノ)

  • アフリカ (ケープタウン)

  • アジアパシフィック (東京)

  • アジアパシフィック (シンガポール)

  • アジアパシフィック (シドニー)

  • アジアパシフィック (ソウル)

  • アジアパシフィック (大阪)

  • アジアパシフィック (ムンバイ)

  • アジアパシフィック (香港)

  • 南米 (サンパウロ)

  • 中東 (バーレーン)

  • カナダ (中部)

  • 中国 (北京)

  • 中国 (寧夏)

  • AWS GovCloud (米国西部)

  • AWS GovCloud (米国東部)

CodeCommit 用の VPC エンドポイントを作成する

VPC で CodeCommit の使用を開始するには、CodeCommit のインターフェイス VPC エンドポイントを作成します。CodeCommit には、Git オペレーションと CodeCommit API オペレーション用に別々のエンドポイントが必要です。ビジネスニーズに応じて、複数の VPC エンドポイントを作成する必要がある場合があります。CodeCommit 用の VPC エンドポイントを作成するときは、[AWS サービス] を選択し、[サービス名] で、次のオプションから選択します。

  • com.amazonaws.region.git-codecommit: CodeCommit リポジトリを使用した Git オペレーション用の VPC エンドポイントを作成する場合は、このオプションを選択してください。例えば、ユーザーが Git クライアントを使用し、CodeCommit リポジトリと対話するときに git pullgit commit、および git push などのコマンドを使用する場合は、このオプションを選択します。

  • com.amazonaws.region.git-codecommit-fips: 連邦情報処理規格 (FIPS) 出版物 140-2 の米国政府規格に準拠した CodeCommit リポジトリの Git オペレーション用の VPC エンドポイントを作成する場合は、このオプションを選択します。

  • com.amazonaws.region.codecommit: CodeCommit API オペレーション用の VPC エンドポイントを作成する場合は、このオプションを選択します。例えば、ユーザーが AWS CLI、CodeCommit API、または AWS SDK を使用して、CreateRepositoryListRepositoriesPutFile などのオペレーションのために CodeCommit と対話する場合は、このオプションを選択します。

  • com.amazonaws.region.codecommit-fips: 連邦情報処理規格 (FIPS) 出版物 140-2 の米国政府規格に準拠した CodeCommit API オペレーション用の VPC エンドポイントを作成する場合は、このオプションを選択してください。

CodeCommit 用の VPC エンドポイントポリシーを作成する

CodeCommit には Amazon VPC エンドポイントのポリシーを作成することができます。このポリシーでは、以下の内容を指定できます。

  • アクションを実行できるプリンシパル。

  • 実行可能なアクション。

  • 自身に対してアクションを実行できたリソース。

たとえば、ある企業がリポジトリへのアクセスを VPC のネットワークアドレス範囲に制限する場合があります。このようなポリシーの例はこちらに表示されています。例 3: 指定した IP アドレス範囲から接続するユーザーにリポジトリへのアクセスを許可する 同社は、米国東部 (オハイオ) リージョンに次の 2 つの 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-west-2:123456789012:MyDemoRepo", "Principal": "*" } ] }

詳細については、Amazon VPC ユーザーガイドインターフェイスエンドポイントの作成を参照してください。