プライベート ネットワークで Cloud Build を使用する

このページでは、プライベート プールで使用するための、一般的なプライベート ネットワーク設定の構成方法について説明します。プライベート プールの概要については、プライベート プールの概要をご覧ください。

デフォルトのネットワーク設定を定義する

プライベート プールを作成すると、デフォルトではプライベート プールがある Virtual Private Cloud ネットワークを使用するように設定されます。次の場合は、デフォルトの VPC ネットワークを使用します。

デフォルト ネットワークへの接続手順については、プライベート プールの作成をご覧ください。

静的内部 IP 範囲を定義する

場合によっては、定義された IP 範囲からのリスト呼び出しを許可するサービスを呼び出す際など、プライベート プールに定義された静的 IP 範囲が必要になる場合があります。プライベート プールでは、VPC ネットワークとプライベート プールの VPC ネットワーク間のプライベート接続を設定すると、プライベート プールが実行される IP の定義済み CIDR 範囲を含む、割り振り済みの IP アドレス範囲を作成できます。 プライベート プールが使用する割り当て IP アドレス範囲内の小さな CIDR 範囲を指定することもできます。

VPC ネットワークで実行する

ファイアウォールの背後にある VPC ネットワークなどのリソースに Cloud Build を使用するには、プライベート プールとマネージド VPC ネットワーク間にプライベート接続を作成します。これにより、プライベート プールはプライベート ネットワーク内のリソース(ソース リポジトリ、アーティファクト リポジトリ、データベース、シークレット インスタンス、ランタイムなど)にアクセスできます。

共有 VPC ネットワークでの実行

共有 VPC ネットワークを使用している場合は、プライベート プールを作成するプロジェクトを共有 VPC ネットワークを含むホスト プロジェクトに接続する必要があります。プロジェクトの接続手順については、共有 VPC ネットワークのプロビジョニングをご覧ください。

ピアリングされた別の VPC ネットワークまたは共有 VPC ネットワーク内のリソースへの接続

組織は多くの場合、すべてのプロジェクトでネットワークと Identity and Access Management を一元化するために、共有 VPC(ホスト プロジェクト)を採用しています。これにより、プライベート GKE クラスタプライベート Cloud SQL などの Google マネージド サービスで内部 IP アドレスを使用できます。これらの Google マネージド サービスは、お客様所有の共有 VPC ネットワークにもピアリングされます。この設定の問題点は、推移的ピアリングの欠落により、プライベート プールが Google マネージド サービスと通信できないことです。推移的ピアリングが問題となるのは、VPC ピアリングを介して複数のネットワークが相互に接続されている場合のみです。いずれかの接続を VPC ピアリングの代わりに VPN(または相互接続)を使用するように変更すると、ネットワークが接続を確立できます。 このネットワーク設定の手順については、Cloud Build プライベート プールを使用した限定公開の Google Kubernetes Engine クラスタへのアクセスをご覧ください。

特定のリージョンでの実行

プライベート プールは、サポートされているリージョンのいずれかに作成できます。ビルドされたコンテナ イメージとアーティファクトは、指定したリージョンの Artifact Registry リポジトリCloud Storage バケットに保存できます。

限定公開 GKE クラスタへのデプロイ

限定公開 GKE クラスタは、コントロール プレーン用にパブリック エンドポイントまたはプライベート エンドポイントを含むことができます。

パブリック エンドポイントを使用して限定公開 GKE クラスタにデプロイするには、公共インターネットにアクセスできるデフォルト ネットワークにプライベート プールを作成し、プールの静的内部 IP 範囲を定義して、クラスタへのアクセスのリストを許可します。

プライベート エンドポイントを使用して限定公開 GKE クラスタにデプロイするには、Cloud Build プライベート プールを使用した限定公開の Google Kubernetes Engine クラスタへのアクセスの手順に従います。また、VPC にピアリングしたら、ネットワーク プロキシを使用したプライベート GKE クラスタの作成で説明した手順に沿って、クラスタでネットワーク プロキシを実行できます。

VPC Service Controls で使用する

VPC Service Controls は、Google Cloud の機能で、データ漏洩を防ぐためのセキュアな境界を設定できます。プライベート プールで VPC Service Controls を使用してビルドにセキュリティを追加する手順については、VPC Service Controls の使用をご覧ください。

プライベート プールのパブリック IP の削除

プライベート プール構成ファイルの egressOption フィールドを NO_PUBLIC_EGRESS に設定することで、プライベート プールのパブリック IP を削除できます。ただし、パブリック IP を削除すると、プライベート プールが公共のインターネットのリソースにアクセスできなくなります。

公共のインターネットへの下り(外向き)を制限する

プライベート プールから公共のインターネットへの下り(外向き)を制限するには、いくつかの方法があります。

プライベート プールの使用を強制適用する

Cloud Build には、constraints/cloudbuild.allowedWorkerPools 組織ポリシーの制約があり、デフォルトのビルドを使用せずプライベート プールのみ使用するように組織のビルドを強制できます。この機能の使用方法については、組織のポリシーの制約の設定をご覧ください。

限定公開 Cloud DNS ゾーンでの使用

プライベート プールで使用する限定公開 Cloud DNS ゾーンを共有できます。手順については、限定公開ゾーンの共有をご覧ください。

NAT の背後で実行

VPC のプライベート プールの IP 範囲は制御できますが、外部 IP アドレス(有効になっている場合)は制御できません。予約済み IP からリソースにアクセスする必要がある場合は、Cloud Build を使用して静的ソース IP アドレスから外部リソースにアクセスするの手順でプロキシ VM を作成し、トラフィックをルーティングします。

次のステップ