VPC ネットワークでプライベート プールを使用するように環境を設定する

このページでは、VPC ネットワークでプライベート プールを使用するようにネットワーク環境を設定する方法について説明します。プライベート プールの情報については、プライベート プールの概要をご覧ください。

ネットワーク構成オプションについて

プライベート プールは、サービス プロデューサー ネットワークと呼ばれる Google 所有の Virtual Private Cloud ネットワークでホストされます。プライベート プールを設定するときは、サービス プロデューサー ネットワークを使用するか、サービス プロデューサー ネットワークとリソースを含む VPC ネットワークの間にプライベート接続を設定するかを選択できます。

組織の要望に応じて、次のいずれかのネットワーク構成スキームを選択します。

  • サービス プロデューサー ネットワークを単独で使用する: このオプションは、次の場合に使用します。

    これは、プライベート プールを作成するためのデフォルトのネットワーク オプションで、ネットワークの設定は不要です。このオプションを検討する場合は、プライベート プールの作成に進みます。

  • サービス プロデューサー ネットワークと VPC ネットワーク間のプライベート接続を設定する: プライベート接続を使用すると、VPC ネットワーク内の VM インスタンスとプライベート プールで内部 IP アドレスのみを使用して通信できます。このオプションは、次の場合に使用します。

    • ビルドに VPC ネットワーク内のリソースにアクセスさせたい場合
    • 構成可能なマシンタイプとサイズが必要な場合

VPC ネットワークとサービス プロデューサー ネットワーク間のプライベート接続を設定する

  1. サービス プロデューサーのネットワークへの接続に使用する既存の VPC ネットワークが必要です。

  2. このガイドのコマンドラインの例を使用するには、Google Cloud CLI をインストールして構成します。

  3. API を有効にします。

    コンソール


    Enable the Cloud Build and the Service Networking APIs.

    Enable the APIs

    gcloud

    Cloud Build と Service Networking API を有効にします。

    gcloud services enable cloudbuild.googleapis.com servicenetworking.googleapis.com
    
  4. プライベート接続を設定するために必要な権限を取得するには、VPC ネットワークが存在する Google Cloud プロジェクトに対する Compute Engine ネットワーク管理者roles/compute.networkAdmin)の IAM ロールの付与を管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

    必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

  5. VPC ネットワークで、名前付き内部 IP 範囲を割り当てます。

    ここで指定する IP 範囲は、VPC ネットワークで定義されるファイアウォール ルールの対象です。

    Cloud Build は、Docker ブリッジ ネットワーク用に IP 範囲 192.168.10.0/24172.17.0.0/16 を予約します。プロジェクト内のリソースに IP 範囲を割り当てる際に、Cloud Build ビルダーがこれらのリソースにアクセスする場合は、192.168.10.0/24172.17.0.0/16 以外の範囲を選択することをおすすめします。

    たとえば、Google Kubernetes Engine コントロール プレーンのアドレス範囲 192.168.10.96/28 は、重複のために Cloud Build gke-deploy ビルダーからアクセスできません。

    コンソール

    1. Google Cloud Console で [VPC ネットワーク] ページに移動します。

      [VPC ネットワーク] ページに移動

    2. プライベート プールの VPC ネットワークに接続する VPC ネットワークを選択します。

    3. [限定公開サービス アクセス] タブを選択します。

    4. [プライベート サービス アクセス] タブで、[サービスに割り当てられた IP 範囲] タブを選択します。

    5. [IP 範囲の割り当て] をクリックします。

    6. 割り当て範囲の [名前] と [説明] を入力します。

    7. 割り当ての [IP 範囲] を指定します。

      • IP アドレス範囲を指定するには、[カスタム] を選択してから、CIDR ブロックを入力します。
      • 接頭辞長を指定して利用可能な範囲を Google に選択させるには、[自動] を選択して接頭辞長を入力します。接頭辞長は /24 以下でなければなりません(/22/21 など)。
    8. [割り当て] をクリックして、割り振る範囲を作成します。

    gcloud

    アドレス範囲と接頭辞長(サブネット マスク)を指定するには、addresses フラグと prefix-length フラグを使用します。接頭辞長は /24 以下でなければなりません(/22、/21 など)。たとえば、CIDR ブロック 192.168.0.0/16 を割り振るには、アドレスに 192.168.0.0 を指定し、接頭辞長には 16 を指定する必要があります。

      gcloud compute addresses create RESERVED_RANGE_NAME \
          --global \
          --purpose=VPC_PEERING \
          --addresses=192.168.0.0 \
          --prefix-length=16 \
          --description=DESCRIPTION \
          --network=VPC_NETWORK
    

    接頭辞長(サブネット マスク)だけを指定するには、prefix-length フラグを使用します。アドレス範囲を省略すると、VPC ネットワークで使用されていないアドレス範囲が自動的に選択されます。次の例では、16 ビットの接頭辞長を使用して、未使用の IP アドレス範囲を選択しています。

      gcloud compute addresses create RESERVED_RANGE_NAME \
          --global \
          --purpose=VPC_PEERING \
          --prefix-length=16 \
          --description=DESCRIPTION \
          --network=VPC_NETWORK
    

    コマンドのプレースホルダ値を、次のように置き換えます。

    • RESERVED_RANGE_NAME: 割り当て範囲の名前(my-allocated-range など)。
    • DESCRIPTION: 範囲の説明(allocated for my-service など)。
    • VPC_NETWORK: VPC ネットワークの名前(my-vpc-network など)。

  6. サービス プロデューサー VPC ネットワークと お使いの VPC ネットワークの間にプライベート接続を作成します。

    コンソール

    1. Google Cloud Console で [VPC ネットワーク] ページに移動します。

      [VPC ネットワーク] ページに移動

    2. プライベート プールの VPC ネットワークに接続する VPC ネットワークを選択します。

    3. [限定公開サービス アクセス] タブを選択します。

    4. [プライベート サービス アクセス] タブで、[サービスへのプライベート接続] タブを選択します。

    5. ネットワークとサービス プロデューサー ネットワークの間にプライベート接続を作成するには、[接続の作成] をクリックします。

    6. [割り当て] で、前の手順で作成した割り振り範囲を選択します。

    7. [接続] をクリックして接続を作成します。

    gcloud

    1. 以下のとおり、プライベート接続を作成します。

      gcloud services vpc-peerings connect \
          --service=servicenetworking.googleapis.com \
          --ranges=ALLOCATED_RANGE_NAME \
          --network=VPC_NETWORK \
          --project=PROJECT_ID
      

      コマンドのプレースホルダ値を、次のように置き換えます。

      • ALLOCATED_RANGE_NAME: 前の手順で作成した割り当て範囲の名前。
      • VPC_NETWORK: VPC ネットワークの名前。
      • PROJECT_ID: VPC ネットワークを含むプロジェクトの ID。

      このコマンドは、長時間実行オペレーションを開始し、オペレーション名を戻します。

    2. オペレーションが成功したかどうかを確認し、OPERATION_NAME を前のステップで返されたオペレーション名に置き換えます。

      gcloud services vpc-peerings operations describe \
          --name=OPERATION_NAME
      
  7. [省略可: 共有 VPC のシナリオ]共有 VPC を使用している場合は、割り振られた IP 範囲とプライベート接続をホスト プロジェクトに作成します。通常、ホスト プロジェクトのネットワーク管理者がこれらの作業を行う必要があります。ホスト プロジェクトがプライベート接続で設定されると、サービス プロジェクト内の VM インスタンスはサービス プロデューサー ネットワークとのプライベート接続を使用できます。VPC 接続をホストするプロジェクトと、プライベート プールを含むプロジェクトは、同じ組織に属している必要があります。

  8. [省略可: ファイアウォール ルールの使用]。VPC ネットワークで上り(内向き)ファイアウォール ルールを作成する場合は、上り(内向き)ルールのソースフィルタで割り振ったのと同じ IP 範囲を指定します。

次のステップ