搭配 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 上使用神經架構搜尋功能找到的模型
  • 線上推論要求
  • 批次推論要求結果
  • 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) 範圍,並將 Gemini Enterprise 納入受保護的服務後,系統會自動封鎖所有透過公開網際網路存取 Agent Platform 執行個體的行為。因此,除非使用者在許可清單中,否則嘗試透過程式輔助方式或使用 Google 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 API。 Google Cloud不過,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。如要更新供應商網路以支援受限制的 VIP,您必須啟用對接的 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. 使用匯出自訂路徑選項,更新 Service Networking 虛擬私有雲網路對等互連。

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 管道

服務安全防護範圍會封鎖從 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 代理伺服器、 HAProxy、 Envoy 和 TinyProxy。

建立 service perimeter

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

在範圍中新增受限制的服務

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

您可以納入服務邊界的 Agent Platform API 如下:

  • Gemini Enterprise Agent Platform 支援下列服務和功能:
    • 批次推論
    • 資料集
    • Agent Platform 特徵儲存庫 (Bigtable 線上提供)
    • Agent Platform 特徵儲存庫 (最佳化線上提供) (已淘汰)
    • Gemini Enterprise Agent Platform 生成式 AI (Gemini)
    • Model Registry
    • 線上推論
    • 開放式模型調整
    • 語意管理政策
    • 語意管理政策引擎
    • 向量搜尋 (建立索引)
    • 向量搜尋 (索引查詢)
    • 自訂訓練 (控制層)
    • 自訂訓練 (資料平面)
    • 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 內的專案中建立,但專案隨後遭到移除,則嘗試將模型部署至端點也會失敗。
  • 搭配 Agent Runtime 使用 VPC Service Controls 時,專案必須屬於服務範圍,才能部署代理程式。如果在專案新增至 perimeter 之前部署代理程式,代理程式就不會受到 VPC Service Controls 保護,且會繼續存取公開網際網路。
  • 在 VPC-SC 環境中,不支援 Model Garden 一鍵公開 (專屬端點) 部署作業。請改用支援 VPC Service Controls 的私人端點。詳情請參閱「將模型部署至私人端點」。
  • VPC Service Controls 不支援要求和回應記錄。

後續步驟