VPC Service Controls の境界内のプライベート エンドポイントからの保護されたリソースへのアクセスを許可する

共有 VPC アーキテクチャでは、ホスト プロジェクトのネットワークがサービス プロジェクトと共有されます。最近まで、これらのプロジェクトを異なる境界に分離することはできませんでした。プライベート IP アドレスベースの上り(内向き)ルールと下り(外向き)ルールの導入により、ホスト プロジェクトとサービス プロジェクトを別々の境界に配置しながら、これらのルールによるアクセス制御を維持できるようになりました。

リファレンス アーキテクチャ

サービス ポリシーでは、次の属性を使用します。

  • VPC Service Controls 境界
  • Access Context Manager のプライベート IP アドレス
  • 上り(内向き)ルールと下り(外向き)ルール

このアーキテクチャのネットワーキング コンポーネントでは、Private Service Connect エンドポイントを使用して Google API にアクセスします。

VPC Service Controls を使用してサービス境界を作成するアーキテクチャ図。

このリファレンス アーキテクチャでは、上り(内向き)ルールと下り(外向き)ルールとプライベート IP アドレスを使用して、次のサービス境界とプロジェクトの Compute Engine インスタンスと Vertex AI API 間のアクセスを制御します。

境界 境界内のプロジェクト
aiml-host-perimeter aiml-host-project
high-trust-svc-perimeter ph-fm-svc-project-1
low-trust-svc-perimeter ph-fm-svc-project-2ph-fm-svc-project-3

各サービス プロジェクト独自の Compute Engine インスタンスからの Vertex AI API へのアクセスは、VPC Service Controls の上り(内向き)ルールと下り(外向き)ルールによって制御されます。これらのルールは、プライベート IP アドレスで構成された Access Context Manager のアクセスレベルを使用して、各サービス プロジェクトと共有されるサブネットがそれぞれの境界にアクセスできるようにします。

省略可: 組織の公開トラフィックのアクセスレベルを作成する

エンドユーザーがGoogle Cloud コンソールから Vertex AI にアクセスする必要がある場合は、このセクションの手順に沿って、VPC Service Controls で使用するアクセスレベルを作成します。ただし、API へのアクセスが限定公開ソース(オンプレミス向け限定公開の Google アクセスまたは Cloud ワークステーションがあるオンプレミスなど)から厳密にプログラムで行われる場合、アクセスレベルは必要ありません。

このリファレンス アーキテクチャでは、CIDR 範囲 corp-public-block を使用して、組織の従業員のトラフィックがGoogle Cloud コンソールにアクセスできるようにしています。

Access Context Manager を使用すると、 Google Cloud 組織管理者は、 Google Cloudのリソースにきめ細かい属性ベースのアクセス制御を定義できます。

アクセスレベルは、リクエストに対応するための要件を示します。次に例を示します。

  • デバイスの種類とオペレーティング システム(Chrome Enterprise Premium ライセンスが必要です)
  • IP アドレス
  • 位置情報
  • ユーザー ID

組織で Access Context Manager を初めて使用する場合は、アクセス ポリシーを定義する必要があります。これは、アクセスレベルとサービス境界用のコンテナです。手順は次のとおりです。

  1. Google Cloud コンソールの上部にあるプロジェクト セレクタで、[すべて] タブをクリックし、組織を選択します。
  2. ベーシック アクセスレベルを作成するページの手順に沿って、ベーシック アクセスレベルを作成します。次のオプションを指定します。
    1. [条件の作成] で、[基本モード] を選択します。
    2. [アクセスレベルのタイトル] フィールドに、「corp-public-block」と入力します。
    3. [条件] セクションの [条件を満たした場合に返す値] オプションで、[TRUE] を選択します。
    4. [IP サブネットワーク] で [パブリック IP] を選択します。
    5. IP アドレス範囲には、VPC Service Controls の境界へのアクセスが必要な外部 CIDR 範囲を指定します。

VPC Service Controls のサービス境界を作成する

サービス境界を作成するときに、境界外から保護されたサービスへのアクセスを許可する方法の 1 つは、アクセスレベルを作成することです(この例では IP アドレスを使用します)。このリファレンス アーキテクチャでは、上り(内向き)ルールと下り(外向き)ルールを使用して Vertex AI API と Compute Engine API 通信へのアクセスを制御する複数のサービス境界が作成されます。

  • サービス プロジェクト ph-fm-svc-project-1 に属するコンピューティング リソースのサブネットは、aiml-host-project から ph-fm-svc-project-1 の Vertex AI API と Compute Engine API にアクセスできます。
  • サービス プロジェクト ph-fm-svc-project-2ph-fm-svc-project-3 に属するコンピューティング リソースのサブネットは、aiml-host-project からプロジェクト ph-fm-svc-project-2 とプロジェクト ph-fm-svc-project-3 の Vertex AI API と Compute Engine API にアクセスできます。

各サービス プロジェクトは、ホスト プロジェクトの Compute Engine API にアクセスできます(特定のサービス プロジェクトでコンピューティング リソースが作成されると、ホスト プロジェクトとサービス プロジェクト間で双方向のフローが発生するため)。

このリファレンス アーキテクチャでは、上り(内向き)ルールと下り(外向き)ルールを使用して、ホスト プロジェクト境界と各サービス プロジェクト境界間で必要なフローを許可するように、各サブネットのアクセスレベルが作成されます。

アクセスレベル gce-subnet-1 を作成する

  1. Google Cloud コンソールの上部にあるプロジェクト セレクタで、[すべて] タブをクリックし、組織を選択します。
  2. ベーシック アクセスレベルを作成するページの手順に沿って、ベーシック アクセスレベルを作成します。次のオプションを指定します。
    1. [条件の作成] で、[基本モード] を選択します。
    2. [アクセスレベルのタイトル] フィールドに、「gce-subnet-1」と入力します。
    3. [条件] セクションの [条件を満たした場合に返す値] オプションで、[TRUE] を選択します。
    4. [IP サブネットワーク] で [プライベート IP] を選択します。
    5. [VPC ネットワーク] を選択し、プロジェクトを特定して、VPC 名を選択します。
    6. [IP サブネットワーク] で、ホスト プロジェクトが ph-fm-svc-project-1 と共有するサブネットを表す CIDR 範囲を選択します。

アクセスレベル gce-subnet-2 を作成する

  1. Google Cloud コンソールの上部にあるプロジェクト セレクタで、[すべて] タブをクリックし、組織を選択します。
  2. ベーシック アクセスレベルを作成するページの手順に沿って、ベーシック アクセスレベルを作成します。次のオプションを指定します。
    1. [条件の作成] で、[基本モード] を選択します。
    2. [アクセスレベルのタイトル] フィールドに、「gce-subnet-2」と入力します。
    3. [条件] セクションの [条件を満たした場合に返す値] で、[TRUE] を選択します。
    4. [IP サブネットワーク] で [プライベート IP] を選択します。
    5. [VPC ネットワーク] を選択し、プロジェクトを特定して、VPC 名を選択します。
    6. [IP サブネットワーク] で、ホスト プロジェクトが ph-fm-svc-project-2 と共有するサブネットを表す CIDR 範囲を選択します。

アクセスレベル gce-subnet-3 を作成する

  1. Google Cloud コンソールの上部にあるプロジェクト セレクタで、[すべて] タブをクリックし、組織を選択します。
  2. ベーシック アクセスレベルを作成するページの手順に沿って、ベーシック アクセスレベルを作成します。次のオプションを指定します。
    1. [条件の作成] で、[基本モード] を選択します。
    2. [アクセスレベルのタイトル] フィールドに、「gce-subnet-3」と入力します。
    3. [条件] セクションの [条件を満たした場合に返す値] オプションで、[TRUE] を選択します。
    4. [IP サブネットワーク] で [プライベート IP] を選択します。
    5. [VPC ネットワーク] を選択し、プロジェクトを特定して、VPC 名を選択します。
    6. [IP サブネットワーク] で、ホスト プロジェクトが ph-fm-svc-project-3 と共有するサブネットを表す CIDR 範囲を選択します。

aiml-host-perimeter の構成手順

新しい境界の構成タイプを選択する

このセクションでは、ドライラン モードで VPC Service Controls(aiml-host-perimeter)サービス境界を作成します。ドライラン モードでは、境界が適用されているかのように違反をロギングしますが、制限されたサービスへのアクセスは阻止されません。ベスト プラクティスとして、自動適用モードに切り替える前にドライラン モードを使用することをおすすめします。

  1. Google Cloud コンソールのナビゲーション メニューで、[セキュリティ]、[VPC Service Controls] の順にクリックします。

    [セキュリティ] に移動

  2. プロンプトが表示されたら、組織、フォルダ、またはプロジェクトを選択します。

  3. [VPC Service Controls] ページで、[ドライラン モード] をクリックします。

  4. [新しい境界] をクリックします。

  5. [新しい VPC サービス境界] タブの [境界名] ボックスに、境界の名前(例: aiml-host-perimeter)を入力します。

    境界名の最大長は 50 文字で、先頭は英字にする必要があります。ASCII ラテン文字(a-zA-Z)、数字(0-9)、アンダースコア(_)のみを使用できます。境界名では大文字と小文字が区別され、アクセス ポリシー内で一意である必要があります。

  6. 境界のデフォルト設定を受け入れます。

保護するリソースを選択する

  1. [保護するリソース] をクリックします。
  2. 境界内で保護するプロジェクトまたは VPC ネットワークを追加する手順は次のとおりです。
    1. [リソースの追加] をクリックします。
    2. 境界にプロジェクトを追加するには、[リソースの追加] ペインで [プロジェクトを追加] をクリックします。
      1. 追加するプロジェクト(この場合は aiml-host-project)を選択します。
      2. [Add selected resources] をクリックします。追加されたプロジェクトが [プロジェクト] セクションに表示されます。

制限付きサービスを選択する

このリファレンス アーキテクチャでは、制限付き API の範囲が制限され、Vertex AI に必要な API のみが有効になります。ただし、ベスト プラクティスとして、 Google Cloud サービスからデータが引き出されるリスクを軽減するため、境界を作成するときはすべてのサービスを制限することをおすすめします。

境界内で保護するサービスを選択するには、次の操作を行います。

  1. [制限付きサービス] をクリックします。
  2. [制限付きサービス] ペインで [サービスを追加] をクリックします。
  3. [制限するサービスを指定] ダイアログで、Compute Engine API を選択します。
  4. [Compute Engine API を追加] をクリックします。

省略可: VPC のアクセス可能なサービスを選択する

VPC のアクセス可能なサービス設定により、サービス境界内のネットワーク エンドポイントからアクセス可能なサービスのセットが制限されます。このリファレンス アーキテクチャでは、デフォルトの [すべてのサービス] 設定を維持します。

省略可: アクセスレベルを選択する

前のセクションで企業の CIDR アクセスレベルを作成した場合は、次の手順で境界の外部から保護されたリソースへのアクセスを許可します。

  1. [アクセスレベル] をクリックします。
  2. [アクセスレベルを選択します] ボックスをクリックします。

    境界が作成された後にアクセスレベルを追加することもできます。

  3. アクセスレベルのチェックボックスをオンにします。(このリファレンス アーキテクチャでは corp-public-block です)。

上り(内向き)ポリシーを構成する

ホスト プロジェクトは、サービス プロジェクトと共有されるサブネットを含む VPC ネットワークを所有しているため、特定のサービス プロジェクトでコンピューティング リソースが作成されると、ホスト プロジェクトとサービス プロジェクト間で双方向通信が行われます。このセクションでは、3 つのサービス プロジェクトすべてがこれらのフローのホスト プロジェクトのコンピューティング リソースにアクセスできるように、上り(内向き)ルールを構成します。

  1. 左側のメニューで [上り(内向き)ポリシー] をクリックします。
  2. [ルールを追加] をクリックします。
  3. [上り(内向き)ルール] ペインで、次の操作を行います。
    1. [FROM 属性] で、API クライアントの次の FROM 属性を選択します。
      1. ID: 任意の ID
      2. ソース: プロジェクト(ph-fm-svc-project-1ph-fm-svc-project-2ph-fm-svc-project-3
    2. [TO 属性] で、 Google Cloudのサービスとリソースの次の TO 属性を選択します。
      1. プロジェクト: すべてのプロジェクト
      2. サービス: 選択したサービス
      3. 選択したサービス: Compute Engine API
      4. メソッド: すべてのメソッド

下り(外向き)ポリシーを構成する

このセクションでは、2 つの下り(外向き)ルールを構成します。

最初の下り(外向き)ルール

ホスト プロジェクトは ph-fm-svc-project-1 と共有されるサブネットを所有しているため、そのサブネットがホスト プロジェクトの境界から ph-fm-svc-project-1 の境界にアクセスできるようにするには、下り(外向き)ルールが必要です。企業のアクセスレベルを使用すると、エンドユーザーが構成されたアクセスレベルを使用してサービス プロジェクトにコンピューティング リソースを作成するときに、コンピューティング インスタンスの作成に必要な双方向通信が可能になります。

  1. 左側のメニューで、[下り(外向き)ポリシー] をクリックします。
  2. [ルールを追加] をクリックします。
  3. [下り(外向き)ルール] ペインで、次の操作を行います。
    1. [FROM 属性] で、API クライアントの次の FROM 属性を選択します。
      1. ID: 任意の ID
      2. [アクセスレベルの下り(外向き)ソースを有効にする] を選択します。
      3. アクセスレベル corp-public-blockgce-subnet-1
    2. [TO 属性] で、 Google Cloudのサービスとリソースの次の TO 属性を選択します。
      1. プロジェクト: 選択したプロジェクト
      2. プロジェクトを追加: ph-fm-svc-project-1
      3. サービス: すべてのサービス

2 つ目の下り(外向き)ルール

ホスト プロジェクトは ph-fm-svc-project-2ph-fm-svc-project-3 と共有されるサブネットを所有するため、これらのサブネットがホスト プロジェクトの境界からサービス プロジェクトの境界にアクセスできるようにするには、下り(外向き)ルールが必要です。企業のアクセスレベルを使用すると、エンドユーザーが構成されたアクセスレベルを使用してサービス プロジェクトにコンピューティング リソースを作成するときに、コンピューティング インスタンスの作成に必要な双方向通信が可能になります。

  1. 左側のメニューで、[下り(外向き)ポリシー] をクリックします。
  2. [ルールを追加] をクリックします。
  3. [下り(外向き)ルール] ペインで、次の操作を行います。
    1. [FROM 属性] で、API クライアントの次の FROM 属性を選択します。
      1. ID: 任意の ID
      2. [アクセスレベルの下り(外向き)ソースを有効にする] を選択します。
      3. アクセスレベル corp-public-blockgce-subnet-2gce-subnet-3
    2. [TO 属性] で、 Google Cloudのサービスとリソースの次の TO 属性を選択します。
      1. プロジェクト: 選択したプロジェクト
      2. プロジェクトを追加: ph-fm-svc-project-2ph-fm-svc-project-3
      3. サービス: すべてのサービス

境界を作成する

上記の構成手順が完了したら、[境界を作成] をクリックして境界を作成します。

high-trust-svc-perimeter の構成手順

新しい境界の構成タイプを選択する

  1. Google Cloud コンソールのナビゲーション メニューで、[セキュリティ]、[VPC Service Controls] の順にクリックします。

    [セキュリティ] に移動

  2. プロンプトが表示されたら、組織、フォルダ、またはプロジェクトを選択します。

  3. [VPC Service Controls] ページで、[ドライラン モード] をクリックします。

  4. [新しい境界] をクリックします。

  5. [新しい VPC サービス境界] タブの [境界名] ボックスに、境界の名前(例: high-trust-svc-perimeter)を入力します。

    境界名の最大長は 50 文字で、先頭は英字にする必要があります。ASCII ラテン文字(a-zA-Z)、数字(0-9)、アンダースコア(_)のみを使用できます。境界名では大文字と小文字が区別され、アクセス ポリシー内で一意である必要があります。

  6. 境界のデフォルト設定を受け入れます。

保護するリソースを選択する

  1. [保護するリソース] をクリックします。
  2. 境界内で保護するプロジェクトまたは VPC ネットワークを追加する手順は次のとおりです。
    1. [リソースの追加] をクリックします。
    2. 境界にプロジェクトを追加するには、[リソースの追加] ペインで [プロジェクトを追加] をクリックします。
      1. 追加するプロジェクト(この場合は ph-fm-svc-project-1)を選択します。
      2. [Add selected resources] をクリックします。追加されたプロジェクトが [プロジェクト] セクションに表示されます。

制限付きサービスを選択する

このリファレンス アーキテクチャでは、制限付き API の範囲が制限され、Gemini に必要な API のみが有効になります。ただし、ベスト プラクティスとして、 Google Cloud サービスからデータが引き出されるリスクを軽減するため、境界を作成するときはすべてのサービスを制限することをおすすめします。

境界内で保護するサービスを選択するには、次の操作を行います。

  1. [制限付きサービス] をクリックします。
  2. [制限付きサービス] ペインで [サービスを追加] をクリックします。
  3. [制限するサービスを指定] ダイアログで、Compute Engine API を選択します。
  4. [Compute Engine API を追加] をクリックします。
  5. [制限付きサービス] ペインで [サービスを追加] をクリックします。
  6. [制限するサービスを指定] ダイアログで、Vertex AI API を選択します。
  7. [Vertex AI API を追加] をクリックします。

省略可: VPC のアクセス可能なサービスを選択する

VPC のアクセス可能なサービス設定により、サービス境界内のネットワーク エンドポイントからアクセス可能なサービスのセットが制限されます。このリファレンス アーキテクチャでは、デフォルトの [すべてのサービス] 設定を維持します。

省略可: アクセスレベルを選択する

前のセクションで企業の CIDR アクセスレベルを作成した場合は、次の手順で境界の外部から保護されたリソースへのアクセスを許可します。

  1. [アクセスレベル] をクリックします。
  2. [アクセスレベルを選択します] ボックスをクリックします。

    境界が作成された後にアクセスレベルを追加することもできます。

  3. アクセスレベルのチェックボックスをオンにします。(このリファレンス アーキテクチャでは corp-public-block です)。

上り(内向き)ポリシーを構成する

ホスト プロジェクトは ph-fm-svc-project-1 と共有されるサブネットを所有するため、ホスト プロジェクトから ph-fm-svc-project-1 の境界へのサブネット アクセスを許可するには、上り(内向き)ルールが必要です。これにより、ph-fm-svc-project-1 のコンピューティング インスタンスは ph-fm-svc-project-1 内のマネージド サービスにアクセスできるようになります。

  1. 左側のメニューで [上り(内向き)ポリシー] をクリックします。
  2. [ルールを追加] をクリックします。
  3. [上り(内向き)ルール] ペインで、次の操作を行います。
    1. [FROM 属性] で、API クライアントの次の FROM 属性を選択します。
      1. ID: 任意の ID
      2. ソース: アクセスレベル
      3. アクセスレベル: gce-subnet-1
    2. [TO 属性] で、 Google Cloudのサービスとリソースの次の TO 属性を選択します。
      1. プロジェクト: すべてのプロジェクト
      2. サービス: すべてのサービス

下り(外向き)ポリシーを構成する

ホスト プロジェクトは ph-fm-svc-project-1 と共有されるサブネットを所有するため、サービス プロジェクトでコンピューティング リソースが作成されたときに、サービス プロジェクトとそのホスト プロジェクト間で行われる双方向通信を許可するには、下り(外向き)ルールが必要です。

  1. 左側のメニューで、[下り(外向き)ポリシー] をクリックします。
  2. [ルールを追加] をクリックします。
  3. [下り(外向き)ルール] ペインで、次の操作を行います。
    1. [FROM 属性] で、API クライアントの次の FROM 属性を選択します。
      1. ID: 任意の ID
    2. [TO 属性] で、 Google Cloudのサービスとリソースの次の TO 属性を選択します。
      1. プロジェクト: 選択したプロジェクト
      2. プロジェクトを追加: aiml-host-project
      3. サービス: 選択したサービス
      4. 選択したサービス: Compute Engine API
      5. メソッド: すべてのメソッド

境界を作成する

上記の構成手順が完了したら、[境界を作成] をクリックして境界を作成します。

low-trust-svc-perimeter の構成手順

新しい境界の構成タイプを選択する

  1. Google Cloud コンソールのナビゲーション メニューで、[セキュリティ]、[VPC Service Controls] の順にクリックします。

    [セキュリティ] に移動

  2. プロンプトが表示されたら、組織、フォルダ、またはプロジェクトを選択します。

  3. [VPC Service Controls] ページで、[ドライラン モード] をクリックします。

  4. [新しい境界] をクリックします。

  5. [新しい VPC サービス境界] タブの [境界名] ボックスに、境界の名前(例: low-trust-svc-perimeter)を入力します。

    境界名の最大長は 50 文字で、先頭は英字にする必要があります。ASCII ラテン文字(a-zA-Z)、数字(0-9)、アンダースコア(_)のみを使用できます。境界名では大文字と小文字が区別され、アクセス ポリシー内で一意である必要があります。

  6. 境界のデフォルト設定を受け入れます。

保護するリソースを選択する

  1. [保護するリソース] をクリックします。
  2. 境界内で保護するプロジェクトまたは VPC ネットワークを追加する手順は次のとおりです。
    1. [リソースの追加] をクリックします。
    2. 境界にプロジェクトを追加するには、[リソースの追加] ペインで [プロジェクトを追加] をクリックします。
      1. 追加するプロジェクトを選択します。このリファレンス アーキテクチャでは、次のように選択します。
        • ph-fm-svc-project-2
        • ph-fm-svc-project-3
      2. [Add selected resources] をクリックします。追加されたプロジェクトが [プロジェクト] セクションに表示されます。

制限付きサービスを選択する

このリファレンス アーキテクチャでは、制限付き API の範囲が制限され、Gemini に必要な API のみが有効になります。ただし、ベスト プラクティスとして、 Google Cloud サービスからデータが引き出されるリスクを軽減するため、境界を作成するときはすべてのサービスを制限することをおすすめします。

境界内で保護するサービスを選択するには、次の操作を行います。

  1. [制限付きサービス] をクリックします。
  2. [制限付きサービス] ペインで [サービスを追加] をクリックします。
  3. [制限するサービスを指定] ダイアログで、Compute Engine API を選択します。
  4. [Compute Engine API を追加] をクリックします。
  5. [制限付きサービス] ペインで [サービスを追加] をクリックします。
  6. [制限するサービスを指定] ダイアログで、Vertex AI API を選択します。
  7. [Vertex AI API を追加] をクリックします。

省略可: VPC のアクセス可能なサービスを選択する

VPC のアクセス可能なサービス設定により、サービス境界内のネットワーク エンドポイントからアクセス可能なサービスのセットが制限されます。このリファレンス アーキテクチャでは、デフォルトの [すべてのサービス] 設定を維持します。

省略可: アクセスレベルを選択する

前のセクションで企業の CIDR アクセスレベルを作成した場合は、次の手順で境界の外部から保護されたリソースへのアクセスを許可します。

  1. [アクセスレベル] をクリックします。
  2. [アクセスレベルを選択します] ボックスをクリックします。

    境界が作成された後にアクセスレベルを追加することもできます。

  3. アクセスレベルのチェックボックスをオンにします。(このリファレンス アーキテクチャでは corp-public-block です)。

上り(内向き)ポリシーを構成する

ホスト プロジェクトは ph-fm-svc-project-2ph-fm-svc-project-3 と共有されるサブネットを所有するため、これらのサブネットにホスト プロジェクトからサービス プロジェクトの境界へのアクセス権を付与するには、上り(内向き)ルールが必要です。これにより、これらのサービス プロジェクトのコンピューティング インスタンスは、ph-fm-svc-project-2ph-fm-svc-project-3 内のマネージド サービスにアクセスできるようになります。

  1. 左側のメニューで [上り(内向き)ポリシー] をクリックします。
  2. [ルールを追加] をクリックします。
  3. [上り(内向き)ルール] ペインで、次の操作を行います。
    1. [FROM 属性] で、API クライアントの次の FROM 属性を選択します。
      1. ID: 任意の ID
      2. ソース: アクセスレベル
      3. アクセスレベル: gce-subnet-2gce-subnet-3
    2. [TO 属性] で、 Google Cloudのサービスとリソースの次の TO 属性を選択します。
      1. プロジェクト: すべてのプロジェクト
      2. サービス: すべてのサービス

下り(外向き)ポリシーを構成する

ホスト プロジェクトは ph-fm-svc-project-2ph-fm-svc-project-3 と共有されるサブネットを所有するため、サービス プロジェクトでコンピューティング リソースが作成されたときに、サービス プロジェクトとそのホスト プロジェクト間で行われる双方向通信を許可するには、下り(外向き)ルールが必要です。

  1. 左側のメニューで、[下り(外向き)ポリシー] をクリックします。
  2. [ルールを追加] をクリックします。
  3. [下り(外向き)ルール] ペインで、次の操作を行います。
    1. [FROM 属性] で、API クライアントの次の FROM 属性を選択します。
      1. ID: 任意の ID
    2. [TO 属性] で、 Google Cloudのサービスとリソースの次の TO 属性を選択します。
      1. プロジェクト: 選択したプロジェクト
      2. プロジェクトを追加: aiml-host-project
      3. サービス: 選択したサービス
      4. 選択したサービス: Compute Engine API
      5. メソッド: すべてのメソッド

境界を作成する

上記の構成手順が完了したら、[境界を作成] をクリックして境界を作成します。

ネットワークを構成する

Private Service Connect エンドポイントを使用して Google API にアクセスする

Private Service Connect を使用して Google API にアクセスすると、限定公開の Google アクセスまたは Google API のパブリック ドメイン名を使用する代わりになります。この場合、Google がプロデューサーになります。

Private Service Connect を使用すると、次のことができます。

  • 1 つ以上の内部 IP アドレスを作成して、さまざまなユースケースの Google API にアクセスします。
  • Google API にアクセスするときに、オンプレミス トラフィックを特定の IP アドレスとリージョンに転送できます。
  • Google API の解決に使用するカスタム エンドポイント DNS 名を作成します。

リファレンス アーキテクチャでは、IP アドレス 192.168.10.2restricted という名前の Private Service Connect Google API エンドポイントがターゲット VPC Service Controls とともにデプロイされ、VPC Service Controls 境界で構成された制限付きサービスにアクセスするための仮想 IP(VIP)として使用されます。Private Service Connect エンドポイントは、ホスト プロジェクト aiml-host-project にデプロイされます。

Compute Engine インスタンスから Gemini Pro にアクセスする

Private Service Connect エンドポイントを作成すると、Service Directory は p.googleapis.com プライベート ゾーンに DNS レコードを作成します。レコードはエンドポイント IP アドレスを指し、Vertex AI API へのアクセスに使用される完全修飾ドメイン名(LOCATION-aiplatform-restricted.p.googleapis.com)と同じ形式の SERVICE-ENDPOINT.p.googleapis.com を使用します。

ネットワーク構成を検証する

サービス プロジェクトにデプロイされた Compute Engine インスタンスから、次の手順で Vertex AI API を更新してカスタム完全修飾ドメイン名を使用し、検証を実行します。

  1. Python 環境変数を次のように初期化します。

    PROJECT_ID="ph-fm-svc-project-1"
    LOCATION_ID="us-central1"
    API_ENDPOINT="us-central1-aiplatform-restricted.p.googleapis.com"
    MODEL_ID="gemini-2.0-flash-exp"
    GENERATE_CONTENT_API="streamGenerateContent"
    
  2. テキスト エディタを使用して、次の JSON を含む request.json ファイルを作成します。

    {
      "contents": [
        {
          "role": "user",
          "parts": [
            {
              "text": "what weight more 1kg feathers vs 1kg stones"
            }
          ]
        }
      ],
      "generationConfig": {
        "temperature": 1,
        "maxOutputTokens": 8192,
        "topP": 0.95,
        "seed": 0
      },
      "safetySettings": [
        {
          "category": "HARM_CATEGORY_HATE_SPEECH",
          "threshold": "OFF"
        },
        {
          "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
          "threshold": "OFF"
        },
        {
          "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
          "threshold": "OFF"
        },
        {
          "category": "HARM_CATEGORY_HARASSMENT",
          "threshold": "OFF"
        }
      ]
    }
    
  3. Vertex AI Gemini API に対して次の cURL リクエストを行います。

    curl \
    -X POST \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://${API_ENDPOINT}/v1/projects/${PROJECT_ID}/locations/${LOCATION_ID}/publishers/google/models/${MODEL_ID}:${GENERATE_CONTENT_API}" -d '@request.json'
    

ドライラン モードで境界を検証する

このリファレンス アーキテクチャでは、サービス境界はドライラン モードで構成されているため、適用せずにアクセス ポリシーの効果をテストできます。つまり、ポリシーが有効になっている場合に環境に与える影響を、正当なトラフィックが中断されるリスクなしで確認できます。

ドライラン モードで境界を検証する方法については、VPC Service Controls のドライラン ロギングの YouTube 動画をご覧ください。

ドライラン モードで境界を検証したら、境界を自動適用モードに切り替えます。