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.
を作成します。これは、AWS CodeBuild の VPC エンドポイントです。region
.codebuild

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 エンドポイントによるサービスのアクセスコントロール」を参照してください。