VPC エンドポイントの使用 - AWS CodeBuild

VPC エンドポイントの使用

インターフェイス VPC エンドポイントを使用するように AWS CodeBuild を設定することで、ビルドのセキュリティを強化できます。インターフェイスエンドポイントは、プライベート IP アドレスを通じて Amazon EC2 および CodeBuild にプライベートにアクセスできるテクノロジーである PrivateLink を使用しています。PrivateLink は、マネージドインスタンス、CodeBuild および Amazon EC2 間のすべてのネットワークトラフィックを Amazon ネットワークに限定します。(マネージドインスタンスはインターネットにアクセスできません)。また、インターネットゲートウェイ、NAT デバイスあるいは仮想プライベートゲートウェイの必要はありません。PrivateLink の設定は要件ではありませんが、推奨されます。PrivateLink および VPC エンドポイントの詳細については、Amazon VPC ユーザーガイド「AWS PrivateLink を介したサービスへのアクセス」を参照します。

VPC エンドポイントを作成する前に

AWS CodeBuild の VPC エンドポイントを設定する前に、以下の制約と制限に注意してください。

注記

Amazon VPC PrivateLink 接続をサポートしていない AWS サービスで CodeBuild を使用する場合、NAT ゲートウェイを使用します。

  • VPC エンドポイントは、Amazon Route 53 を介してのみ Amazon 提供の DNS をサポートします。独自の DNS を使用する場合には、条件付き DNS 転送を使用できます。詳細については、Amazon VPC ユーザーガイド「DHCP オプションセット」を参照してください。

  • 現在、VPC エンドポイントはクロスリージョンリクエストをサポートしていません。ビルド入力と出力を保存する S3 バケットと同じ AWS リージョンで、エンドポイントを作成することを確認します。バケットの場所は、Amazon S3 コンソールまたは get-bucket-locationコマンドを使用して確認できます。リージョン固有の Amazon S3 エンドポイントを使用してバケットにアクセスします (例: mybucket.s3-us-west-2.amazonaws.com). Amazon S3 のリージョン固有のエンドポイントの詳細については、アマゾン ウェブ サービスの全般的なリファレンス「Amazon Simple Storage Service」を参照してください。AWS CLI を使用して Amazon S3 にリクエストを実行する場合は、デフォルトリージョンをバケットと同じリージョンに設定するか、またはリクエストで --region パラメータを使用します。

CodeBuild 用の VPC エンドポイントの作成

インターフェイスエンドポイントの作成」の手順に従って、エンドポイント com.amazonaws.region.codebuild を作成します。これは、AWS CodeBuild の VPC エンドポイントです。

region は、米国東部 (オハイオ) リージョンの us-east-2 のように、CodeBuild でサポートされている AWS リージョンのリージョン識別子を表します。サポートされている AWS リージョンのリストについては、AWS 全般のリファレンスの「CodeBuild」を参照してください。エンドポイントには、AWS にサインインしたときに指定したリージョンが事前に設定されています。リージョンを変更すると、それに応じて VPC エンドポイントが更新されます。

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

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

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

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

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

次のポリシー例では、すべてのプリンシパルが project-name プロジェクトのビルドの開始と表示のみ行えることを示します。

{ "Statement": [ { "Action": [ "codebuild:ListBuildsForProject", "codebuild:StartBuild", "codebuild:BatchGetBuilds" ], "Effect": "Allow", "Resource": "arn:aws:codebuild:region-ID:account-ID:project/project-name", "Principal": "*" } ] }

詳細については、Amazon VPC ユーザーガイドの「VPC エンドポイントによるサービスのアクセスコントロール」を参照してください。