プライベート ネットワーク アクセスの構成

プライベート ネットワーク アクセスを設定して、Google Cloud ネットワーク内でトラフィックが実行されるようにするには、VPC ネットワーク、Service Directory プロジェクト、自分が所有している Google Cloud サービス プロジェクトを所有するプロジェクトを構成する必要があります。 。これら 3 つのプロジェクトは、同一であることも別々のプロジェクトとすることもできます。

  • [Network project] は VPC ネットワークのプロジェクトです。
  • Service Directory プロジェクトは Service Directory サービスのプロジェクトです。このプロジェクトは、ネットワーク プロジェクトの共有 VPC ネットワーク内のサービス プロジェクトである可能性があります。
  • Google Cloud サービス プロジェクトは、プライベート ネットワーク アクセスを呼び出す構成を持つプロジェクトです。たとえば、Google Cloud サービス構成などです。

始める前に

この手順は、以下の手順が完了していることを前提としています。

  • Google Cloud Console の [API とサービス] ページから、アクセス可能な API を有効にする。Service Directory API を含みます。
  • VPC ネットワーク内の VM インスタンスにはプライベート IP アドレスが必要です。
  • オンプレミス ホストの場合、既存の Cloud VPN トンネルまたは Cloud Interconnect 接続が VPC ネットワークに接続されている必要があります。

ネットワーク プロジェクトの構成

ネットワーク プロジェクトを構成するには、次の手順に従います。

  1. 作成または既存の VPC ネットワークを使用します。自動およびカスタムモードの VPC ネットワークがサポートされています。レガシー ネットワークはサポートされていません。
  2. 宛先のターゲットが Compute Engine VM または内部ロードバランサのバックエンドの場合は、プライベート ネットワーク アクセスのために VPC ファイアウォールを経由する必要があります。ターゲットは、適切なポート(ポート 443 または 80)で 35.199.192.0/19 からの TCP Ingress を許可する必要があります。

  3. Identity and Access Management(IAM)Service Directory ネットワークに Google Cloud サービス プロジェクトへのアクセス権を付与します。Google Cloud プロジェクトは servicedirectory.googleapis.com の Google Cloud サービスおよび Service Directory プロジェクトの VPC Service Controls の境界内にある必要があります。

    VPC Service Controls の詳細については、VPC Service Controls の概要をご覧ください。

Service Directory プロジェクトの構成

次の手順に従って、Service Directory プロジェクトを構成します。

  1. VPC ネットワーク内に仮想マシン(VM)または内部ロードバランサを作成します。
  2. VPC ネットワーク内に作成した VM または内部ロードバランサを指す Service Directory サービスを作成します
  3. IAM サービス ディレクトリのネットワークに、Google Cloud サービス アカウントへのアクセスを許可します。役割と権限の詳細については、Service Directory の権限と役割をご覧ください。

プライベート ネットワーク アクセスを持つエンドポイントの作成

プライベート ネットワーク アクセスが構成されているエンドポイントを作成するには、次の手順に従います。

Console

  1. Google Cloud Console の [サービス ディレクトリ] 名前空間ページに移動します。
    [Service Directory 名前空間] ページに移動
  2. 名前空間をクリックします。
  3. サービスをクリックします。
  4. [] をクリックし、[エンドポイントを追加] をクリックします。
  5. [エンドポイント名] を入力します。
  6. IPv4 IP アドレス(例: 192.0.2.0/24)を入力します。
  7. [ポート] に番号(44380 など)を入力します。
  8. プライベート ネットワーク アクセスを有効にするには、[リストから選択] をクリックして、[関連付けられている VPC ネットワーク] で使用可能なネットワークのリストから選択します。
  9. [プロジェクトとネットワーク名を指定する] を選択して、特定のプロジェクト ID とネットワーク名を指定することもできます。
  10. [作成] をクリックします。

gcloud

プロジェクト ID とネットワーク パスを指定して、gcloud beta service-directory endpoints create コマンドを実行します。

gcloud beta service-directory endpoints create ENDPOINT_NAME
    --project=PROJECT_ID \
    --location=REGION \
    --namespace=NAMESPACE_NAME \
    --service=SERVICE_ID \
    --address=IP_ADDRESS \
    --port=PORT_NUMBER \
    --network=NETWORK_PATH

以下を置き換えます。

  • ENDPOINT_NAME: サービスで作成するエンドポイントの名前(my-endpoint など)
  • PROJECT_ID: プロジェクトの ID
  • REGION: 名前空間を含む Google Cloud リージョン
  • NAMESPACE_NAME: 名前空間に指定した名前(my-namespace など)
  • SERVICE_ID: サービスの ID
  • IP_ADDRESS: エンドポイントの IP アドレス(192.0.2.0/24 など)
  • PORT_NUMBER: エンドポイントが実行されているポート(通常は 443 または 80
  • NETWORK_PATH: ネットワークへの URL(projects/PROJECT_NUMBER/locations/global/networks/NETWORK_NAME など)。

Google Cloud サービス プロジェクトの構成

  1. Google Cloud Service API を有効にします。
  2. ネットワーク プロジェクトで作成した Service Directory サービスを使用して Google Cloud サービスを構成します。
  3. VPC Service Controls を使用している場合は、VPC Service Controls の境界でサービス ディレクトリがネットワーク プロジェクトとサービス ディレクトリ プロジェクトにアクセスできるようにしてください。

ユースケース

このセクションでは、プライベート ネットワーク アクセスを構成するユースケースの例を示します。

VPC ネットワーク、VM、Service Directory が同じプロジェクトにある場合に HTTP エンドポイントを呼び出す

Google Cloud プロダクトを設定して、VM 上で HTTP エンドポイントを呼び出すことができます。このトラフィックは、公共のインターネットを介して転送されるべきではありません。

この設定では、同じプロジェクトに VPC ネットワーク、VM、Service Directory サービス、Google Cloud サービスを含むプロジェクトがあります。

プロジェクトの Google サービス構成で、Google Cloud サービス プロジェクトの VPC ネットワークにあるネットワーク プロジェクト VM への下りトラフィックを許可する
プロジェクトの Google サービスの設定で、Google Cloud サービス プロジェクトの VPC ネットワーク(ネットワーク プロジェクト)(クリックして拡大)

プライベート ネットワーク アクセスを使用して Google Cloud プロダクトを設定する手順は次のとおりです。

ネットワークとターゲット ネットワークを設定する

  1. my-project などのプロジェクトを作成します。
  2. VPC-1(projects/project-number/locations/global/networks/my-network)などの VPC ネットワークを作成します
  3. VPC-1 へのサブネットまたは Ingress または VM へのプロキシ アクセスを許可します。
  4. 35.199.192.0/19 からの上りを許可する。
  5. VPC-1us-central1 リージョンに VM-1 を作成します。
  6. ポート P のサービスを実行するようにサービスを設定します。
  7. HTTPS を使用する場合は、公開鍵インフラストラクチャ(PKI)トランスポート レイヤ セキュリティ(TLS)証明書がインストールされていることを確認してください。
  8. REGION-1 に Service Directory サービス SD-1 を作成します。
  9. SD-1 に、内部 IP アドレス VM-1=10.10.10.10P=443network=projects/project-number/global/networks/my-network を指定してエンドポイントを作成します。詳しい手順については、プライベート ネットワーク アクセスが設定されたエンドポイントの作成をご覧ください。
  10. Google Cloud サービス アカウントに次の IAM 役割を付与します。

    • servicedirectory.viewer
    • servicedirectory.pscAuthorizedService
  11. 必要に応じて、VM-2 を設定して Endpoint-2 を追加します。

Google Cloud プロダクトを設定する

  1. 「Cloud Scheduler、毎分呼び出し」など、Google Cloud プロダクト構成CONFIG-1を構成します。
  2. HTTP リクエストを設定します。
  3. SD-1 経由など、プライベート ネットワーク経由でリクエストを指定します。
  4. (省略可)認証局の設定を構成する

これで、Google Cloud プロダクトは SD-1 を使用して HTTP リクエストを呼び出すことができます。

VPC ネットワーク、VM、サービス ディレクトリが別のプロジェクトにある場合の HTTP エンドポイントの呼び出し

この構成例では、イベント、タスク、Pub/Sub などの Google Cloud サービスを設定して、VM 上で HTTP エンドポイントを呼び出します。この例では、サービス ディレクトリ プロジェクト、ネットワーク プロジェクト、Google Cloud サービス プロジェクトが異なります。このトラフィックは、公共のインターネットを介して転送されるべきではありません。必要に応じて、この API 呼び出しが VPC Service Controls の境界を尊重する必要があります。

この場合、Google Cloud サービス プロジェクトの構成により、ネットワーク プロジェクトの VPC ネットワークにある Google Cloud サービス プロジェクト VM への下りが有効になります。

Google Cloud サービス プロジェクトはプロデューサー プロジェクトと異なる場合があります。両方のプロジェクトの VPC Service Controls の境界が使用されます。

VPC Service Controls の境界でプライベート ネットワーク アクセスを使用してトラフィックを送信する
VPC Service Controls の境界でプライベート ネットワーク アクセスを使用してトラフィックを送信する(クリックして拡大)

ネットワーク プロジェクトを作成する

次の IAM 権限があることを確認します。

  • メッセージ サービスの servicedirectory.services.resolve
  • ネットワークの servicedirectory.networks.access

次の点にご注意ください。

  • Service Directory プロジェクトとネットワーク プロジェクトは接続する必要はありませんが、同じ VPC Service Controls に含まれている必要があります。
  • ファイアウォールと IAM はネットワークとサービスでデフォルトで無効になっています。

ネットワーク プロジェクトを作成する手順は次のとおりです。

  1. VPC-1(projects/project-number/locations/global/networks/my-network)などの VPC ネットワークを作成します
  2. VPC ネットワーク ファイアウォールを有効にします。

  3. VPC Service Controls を使用している場合、VPC Service Controls の境界を使用して、サービス ディレクトリを Google Cloud サービス プロジェクトとサービス ディレクトリ プロジェクトに接続できます。

Service Directory プロジェクトを構成する

  1. VPC ネットワーク内に VM または内部ロードバランサを作成する。
  2. VPC ネットワーク内の VM または内部ロードバランサを指す Service Directory サービスを作成します。
  3. IAM サービス ディレクトリの service read に Google Cloud サービス プロジェクト メッセージング サービスへのアクセス権を付与します。
  4. VPC Service Controls を使用している場合、VPC Service Controls の境界を使用して、サービス ディレクトリを Google Cloud サービス プロジェクトとサービス ディレクトリ プロジェクトに接続できます。

Google Cloud サービス プロジェクトを構成する

  1. 使用しているメッセージング サービスの API を有効にします。
  2. Service Directory プロジェクトの Service Directory サービスを使用して、メッセージング サービス PUSH を構成します。
  3. VPC Service Controls を使用している場合、VPC Service Controls の境界を使用して、サービス ディレクトリをネットワーク プロジェクトとサービス ディレクトリ プロジェクトに接続できます。

次のステップ