搭配 Gemini Enterprise Agent Platform 使用 VPC Service Controls

VPC Service Controls 可協助您降低 Gemini Enterprise Agent Platform 資料竊取的風險。使用 VPC Service Controls 建立服務範圍,保護您指定的資源和資料。舉例來說,使用 VPC Service Controls 保護 Agent Platform 時,下列構件無法離開 service perimeter:

  • AutoML 模型或自訂模型的訓練資料
  • 您建立的模型
  • 在 Agent Platform 使用 Neural Architecture Search 搜尋的模型
  • 線上推論要求
  • 批次推論要求的結果
  • Gemini 模型

控管 Google API 存取權

如「從地端部署和多雲端環境存取 Gemini Enterprise Agent Platform」所述,Agent Platform API 包含多種存取選項,包括公開網際網路、Private Service Connect for Google API 和 Private Google Access。

公開存取

根據預設,這些公開 API 可透過網際網路存取,但必須具備 IAM 權限才能使用。雖然 Private Service Connect for Google API 和 Private Google Access 等功能,可促進混合式網路架構的私人通訊,但 Agent Platform API 仍可透過公開網際網路存取。

如要精細控管 API 存取權,並明確限制公開網際網路曝光,就必須導入 VPC Service Controls。建立 VPC Service Controls (VPC-SC) perimeter,並將 Gemini Enterprise 納入受保護的服務後,所有透過公開網際網路存取 Agent Platform 執行個體的行為都會自動遭到封鎖。因此,除非使用者在許可清單中,否則嘗試透過程式輔助方式或 Google Cloud 控制台存取 Agent Platform 服務時,會遭到拒絕。

如要為 perimeter 外部的授權來源 (例如公司辦公室的使用者) 恢復存取權,請參閱「允許從 VPC Service Controls perimeter 外部存取受保護資源的公開端點」一文,瞭解部署操作說明。

私人存取權

如果組織需要限制公開 Google API,僅允許私人存取,可以將 VPC Service Controls 與 Google API 適用的 Private Service Connect (VPC Service Controls 套件) 或 Private Google Access 搭配使用。如果部署在混合式網路和 Google Cloud中,這兩種選項都能從地端部署環境私下存取 Google API。不過,Google API 適用的 Private Service Connect 也提供彈性,可定義自訂 IP 位址和 DNS 端點名稱。

最佳做法是搭配使用受限制虛擬 IP (VIP) 和 Private Service Connect for Google API 或 Private Google Access,為 Google Cloud 服務的要求提供私人網路路由,而不將要求公開至網際網路。受限制 VIP 支援 VPC Service Controls 可保護的所有 API,但必須考量地端部署和虛擬私有雲網路。下面是部分範例:

透過私人服務存取權控管 API 存取權

下列 Agent Platform API 是透過私人服務存取權部署,在受 VPC Service Controls 保護的環境中實作時,需要額外的網路設定:

  • 向量搜尋 (索引查詢)
  • 自訂訓練 (資料層)
  • Agent Platform Pipelines
  • 私人線上預測端點

舉例來說,Agent Platform Pipelines 是 Google 代管 (供應商) 服務,部署在單一租戶專案和虛擬私有雲網路中,可根據消費者需求擴充支援的服務。供應商和用戶網路之間的通訊是透過虛擬私有雲網路對接建立,但網際網路輸出流量會透過供應商網路轉送。

供應商網路中有一條預設路由,可允許網際網路輸出,以及不受限制地存取 Google API。如要更新供應商網路以支援受限制的虛擬 IP,您必須為對接啟用 VPC Service Controls,這會對部署在服務網路供應商網路中的所有支援服務執行下列動作:

  • 移除 IPv4 預設路由 (目的地 0.0.0.0/0,下一個躍點為預設網際網路閘道)。
  • 建立 Cloud DNS 代管私人區域,並授權服務生產者虛擬私有雲網路使用這些區域。這些區域包括 googleapis.com、pkg.dev、gcr.io,以及與 VPC Service Controls 相容的 Google API 和服務所需的其他網域或主機名稱。
  • 區域中的記錄資料會將所有主機名稱解析為 199.36.153.4、199.36.153.5、199.36.153.6 和 199.36.153.7。

如要從供應商網路移除預設路徑,而不影響現有的 Google 代管服務,另一種方法是使用採用 Cloud Interconnect 的高可用性 VPN,步驟如下:

  1. 部署服務虛擬私有雲網路,並將高可用性 VPN 部署至用戶虛擬私有雲網路。
  2. 在服務虛擬私有雲網路中,部署 Google 代管服務。
  3. 啟用對接的 VPC Service Controls。
  4. 如果代管服務需要地端部署連線能力,請從 Cloud Router 將私人服務存取子網路 advertise 為自訂路由 advertisement。
  5. 使用匯出自訂路由選項,更新服務網路虛擬私有雲網路對接。

VPC Service Controls 支援生成式 AI 調整管道

下列模型的調整管道支援 VPC Service Controls:

  • Gemini 2.5 系列模型。
  • text-bison for PaLM 2
  • BERT
  • T5
  • textembedding-gecko 系列模型。

搭配使用 VPC Service Controls 和 Gemini Enterprise Agent Platform Pipelines

service perimeter 會封鎖 Agent Platform 存取網際網路上的第三方 API 和服務。如果您使用 Google Cloud Pipeline 元件或建立自己的自訂 Pipeline 元件,並搭配 Agent Platform Pipelines 使用,則無法從公開的 Python Package Index (PyPI) 登錄檔安裝 PyPI 依附元件。請改用下列其中一種做法:

使用自訂容器

根據正式版軟體最佳做法,元件作者應使用容器化 Python 元件,並將依附元件建構至容器映像檔,這樣就不必在管道執行期間即時安裝。其中一種做法如下:

  1. 使用 Kubeflow Pipelines SDK 和其他預先安裝的套件,建構自己的容器映像檔。舉例來說,您可以使用 us-docker.pkg.dev/vertex-ai/training/tf-cpu.2-17:latest 做為映像檔的基本層,並新增額外層,在容器建構時安裝套件。
  2. 更新元件定義程式碼,將 base_image 路徑和 install_kfp_package 旗標設為 False。這個旗標會指示 KFP 編譯器不要將 pip install kfp 指令插入容器指令列,因為映像檔中已安裝 Kubeflow Pipelines SDK 套件。例如:

    @component(
        base_image='gcr.io/deeplearning-platform-release/tf-cpu.2-17',
        install_kfp_package=False,
    )
    def my_component(...):
        ...
    

從 Artifact Registry 存放區安裝套件

或者,您也可以在專案中建立 Artifact Registry 存放區,在其中儲存 Python 套件,並按照本節所述,設定 Agent Platform 環境,以便從中安裝。詳情請參閱「管理 Python 套件」。

設定角色和權限

  1. Agent Platform 環境的服務帳戶必須具備 iam.serviceAccountUser 角色。
  2. 如果您從專案網路中的存放區安裝自訂 PyPI 套件,且該存放區沒有公開 IP 位址:
    1. 將存取這個存放區的權限指派給環境的服務帳戶。
    2. 請確認專案已設定與這個存放區的連線。

建立存放區

  1. 在專案中建立虛擬私有雲模式的 Artifact Registry 存放區。
  2. 將必要的 Python 套件儲存在存放區中。

設定 Agent Platform 環境,以便從存放區安裝

如要從一或多個 Artifact Registry 存放區安裝自訂 PyPI 套件,請對 @dsl.component 發出類似下列的呼叫:

@dsl.component(packages_to_install=["tensorflow"],
pip_index_urls=['https://us-central1-python.pkg.dev/mygcpproject1/pypi-repo1/simple', 'https://us-central1-python.pkg.dev/mygcpproject2/pypi-repo2/simple'],)
def hello_world(text: str) -> str:
    import my_package
    import tensorflow

    return my_package.hello_world(text)

搭配使用 VPC Service Controls 和 PSC 介面

下列 Agent Platform API 是透過 Private Service Connect 介面部署,在受 VPC Service Controls 保護的環境中實作時,需要額外的網路設定:

  • 自訂訓練 (資料層)
  • Agent Platform Pipelines
  • 私人線上推論端點
  • Agent Runtime

Agent Platform 供應商服務能否存取公開網際網路,取決於專案的安全設定,特別是是否使用 VPC Service Controls:

  • 不使用 VPC Service Controls:託管 Agent Platform 的 Google 代管租戶會保留預設的網路連線能力。這項傳出流量會直接從 Google 代管的安全環境 (即供應商服務執行環境) 輸出。Agent Runtime 是例外狀況,不提供網際網路輸出。您必須部署具有 RFC 1918 位址的 Proxy VM,才能進行網際網路輸出。

  • 使用 VPC Service Controls:如果專案位於 VPC Service Controls (VPC-SC) perimeter 內,託管 Agent Platform 的 Google 代管環境預設會封鎖網路連線能力。這項限制是為了防止資料竊取而採取的安全措施。在這種情況下,如要讓 Agent Platform 存取公開網際網路,您必須明確設定安全輸出路徑,透過虛擬私有雲網路轉送流量。

建議做法包括:

  1. 在虛擬私有雲 perimeter 內的 RFC 1918 子網路中部署 Proxy 伺服器。
  2. 建立 Cloud NAT 閘道,讓 Proxy VM 存取網際網路。
  3. 在執行階段環境中定義 Proxy 伺服器 (IP 位址或 FQDN)。

這項工作沒有指定或偏好的網路 Proxy。您可以使用任何合適的解決方案。例如:Squid Proxy、HAProxy、Envoy 和 TinyProxy。

建立 service perimeter

如要概略瞭解如何建立 service perimeter,請參閱 VPC Service Controls 說明文件中的「建立 service perimeter」。

在 perimeter 中新增受限制的服務

建立 service perimeter 時,建議您納入所有受限服務,這是安全性最佳做法。這種全方位的做法有助於盡可能減少潛在安全漏洞和未經授權的存取行為。不過,貴組織可能有特定需求,需要保護 Gemini Enterprise Agent Platform 及其互連的 API。在這種情況下,您可以靈活選取並僅納入作業所需的特定 Agent Platform API。

可納入 service perimeter 的 Agent Platform API 包括:

  • Gemini Enterprise Agent Platform 支援下列服務和功能:
    • 批次推論
    • 資料集
    • Agent Platform 特徵儲存庫 (Bigtable 線上提供)
    • Agent Platform 特徵儲存庫 (最佳化線上提供) (已淘汰)
    • Gemini Enterprise Agent Platform (Gemini) 的生成式 AI
    • Model Registry
    • 線上推論
    • 開放式模型調整
    • semantic governance policy
    • 語意管理政策引擎
    • 向量搜尋 (建立索引)
    • 向量搜尋 (索引查詢)
    • 自訂訓練 (控制層)
    • 自訂訓練 (資料層)
    • Agent Platform Pipelines
    • 私人線上推論端點
    • Colab Enterprise
    • Agent Runtime
    • 代管訓練叢集
    • Agent Platform 沙箱
  • Notebooks API 支援下列服務:
    • Gemini Enterprise Agent Platform Workbench

限制

使用 VPC Service Controls 時,須遵守下列限制:

  • VPC-SC 專案已停用網址背景資訊即時擷取功能,因此系統會封鎖資料竊取行為。
  • 如要進行資料標籤,您必須將標籤人員的 IP 位址新增至存取層級。
  • 如果是 Google Cloud Pipeline 元件,元件會啟動容器,檢查基礎映像檔是否符合所有需求。KFP 套件以及 packages_to_install 引數中列出的任何套件,都是容器的必要條件。如果基礎映像檔 (無論是提供的或自訂的) 尚未包含任何指定需求,元件會嘗試從 Python Package Index (PyPI) 下載。由於 service perimeter 會封鎖 Gemini Enterprise Agent Platform 存取網際網路上的第三方 API 和服務,因此下載作業會失敗,並顯示 Connection to pypi.org timed out。如要瞭解如何避免這項錯誤,請參閱「搭配使用 VPC Service Controls 和 Agent Platform Pipelines」。
  • 在 Agent Platform Workbench 中搭配使用 VPC Service Controls 和自訂核心時,您必須改為設定 DNS 對接,將 *.notebooks.googleusercontent.com 的要求傳送至子網路 199.36.153.8/30 (private.googleapis.com),而非 199.36.153.4/30 (restricted.googleapis.com)。
  • 搭配使用 VPC Service Controls 和 Gemini Enterprise Agent Platform Inference 時,必須先將專案新增至 service perimeter,再建立端點。如果端點是在不屬於 service perimeter 的專案中建立,而該專案隨後新增至 service perimeter,則嘗試將模型部署至該端點會失敗。如果端點是共用公開端點,則傳送要求至端點也會失敗。同樣地,如果端點是在屬於 service perimeter 的專案中建立,而該專案隨後遭到移除,則嘗試將模型部署至端點也會失敗。
  • 搭配使用 VPC Service Controls 和 Agent Runtime 時,專案必須先加入 service perimeter,才能部署代理。如果在專案新增至 perimeter 之前部署代理程式,代理程式就不會受到 VPC Service Controls 保護,且仍可存取公開網際網路。
  • 在 VPC-SC 環境中,不支援 Model Garden 一鍵公開 (專屬端點) 部署作業。請改用支援 VPC Service Controls 的私人端點。詳情請參閱「將模型部署至私人端點」。
  • VPC Service Controls 不支援要求和回應記錄。

後續步驟