インターフェイス VPC エンドポイントを使用するように AWS CodeBuild を設定することで、ビルドのセキュリティを強化できます。インターフェイスエンドポイントは、プライベート IP アドレスを通じて Amazon EC2 および CodeBuild にプライベートにアクセスできるテクノロジーである PrivateLink を使用しています。PrivateLink は、マネージドインスタンス、CodeBuild および Amazon EC2 間のすべてのネットワークトラフィックを Amazon ネットワークに限定します。(マネージドインスタンスはインターネットにアクセスできません)。また、インターネットゲートウェイ、NAT デバイスあるいは仮想プライベートゲートウェイの必要はありません。PrivateLink の設定は要件ではありませんが、推奨されます。PrivateLink と 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 エンドポイントを使用してバケットにアクセスします (例:
)。Amazon S3 のリージョン固有のエンドポイントの詳細については、「Amazon Web Services 全般のリファレンス」の「Amazon Simple Storage Service」を参照してください。AWS CLI を使用して Amazon S3 にリクエストを実行する場合は、デフォルトリージョンをバケットと同じリージョンに設定するか、またはリクエストで<bucket-name>
.s3-us-west-2.amazonaws.com.rproxy.goskope.com--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 エンドポイントによるサービスのアクセスコントロール」を参照してください。