VPC Service Controls 可協助您降低 Gemini Enterprise Agent Platform 的資料竊取風險。使用 VPC Service Controls 建立service perimeter,保護您指定的資源和資料。舉例來說,如果您使用 VPC Service Controls 保護 Agent Platform,下列構件就無法離開服務範圍:
- AutoML 模型或自訂模型的訓練資料
- 您建立的模型
- 您在 Agent Platform 上使用神經架構搜尋功能找到的模型
- 線上推論要求
- 批次推論要求的結果
- Gemini 模型
控管 Google API 的存取權
如「從地端部署和多雲端環境存取 Gemini Enterprise Agent Platform」一文所述,Agent Platform API 包含一系列存取選項,包括公用網際網路、Google API 的 Private Service Connect,以及 Private Google Access。
公開存取權
根據預設,這些公開 API 可從網際網路存取,但必須具備 IAM 權限才能使用。雖然 Private Service Connect for Google API 和私人 Google 存取權等功能可透過混合式網路架構促進私人通訊,但無法消除 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 Cloud中時,這兩種選項都能從地端部署私人存取 Google API。不過,Google API 適用的 Private Service Connect 也提供彈性,可定義自訂 IP 位址和 DNS 端點名稱。
最佳做法是搭配使用受限制虛擬 IP (VIP) 和 Google API 的 Private Service Connect 或 Private Google Access,為 Google Cloud 服務的要求提供私人網路路由,而不將要求公開至網際網路。受限制 VIP 支援 VPC Service Controls 可保護的所有 API,這些 API 需要考量地端部署和虛擬私有雲網路。下面是部分範例:
透過私人服務連線控管 API 存取權
在受 VPC Service Controls 保護的環境中實作時,下列透過私人服務連線部署的 Agent Platform API 需要額外的網路設定:
- Vector Search (索引查詢)
- 自訂訓練 (資料層)
- 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」,步驟如下:
- 除了高可用性 VPN,還要在服務虛擬私有雲網路中部署服務,連線至消費者虛擬私有雲網路。
- 在服務虛擬私有雲網路中部署 Google 代管的服務。
- 啟用對等互連的 VPC Service Controls。
- 如果代管服務需要地端部署可連線,請從 Cloud Router 將私人服務連線子網路通告為自訂路徑通告。
- 使用匯出自訂路徑選項,更新服務網路虛擬私有雲網路對等互連。
VPC Service Controls 支援生成式 AI 微調管道
下列模型的微調管道提供 VPC Service Controls 支援:
text-bison for PaLM 2BERTT5textembedding-gecko系列模型。
將 VPC Service Controls 和 Gemini Enterprise Agent Platform 管道搭配使用
服務範圍會封鎖從 Agent Platform 存取網際網路上第三方 API 和服務的權限。如果您使用 Google Cloud Pipeline 元件或建立自己的自訂 Pipeline 元件,以便搭配 Agent Platform Pipelines 使用,就無法從公開的 Python Package Index (PyPI) 登錄檔安裝 PyPI 依附元件。請改用下列任一方法:
使用自訂容器
根據生產軟體的最佳做法,元件作者應使用容器化的 Python 元件,並將依附元件建構到容器映像檔中,這樣在管道執行期間就不需要即時安裝。其中一種做法如下:
- 建構自己的容器映像檔,並預先安裝 Kubeflow Pipelines SDK 和其他套件。舉例來說,您可以使用
us-docker.pkg.dev/vertex-ai/training/tf-cpu.2-17:latest做為映像檔的基本層,並新增額外層,在容器建構時安裝套件。 更新元件定義程式碼,將
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 套件」。
設定角色和權限
- Agent Platform 環境的服務帳戶必須具備
iam.serviceAccountUser角色。 - 如果您從專案網路中的存放區安裝自訂 PyPI 套件,且該存放區沒有公開 IP 位址:
- 將存取這個存放區的權限指派給環境的服務帳戶。
- 請確認專案中已設定這個存放區的連線。
建立存放區
- 在專案中以虛擬私有雲模式建立 Artifact Registry 存放區。
- 將必要的 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)
透過 PSC 介面使用 VPC Service Controls
如果是在受 VPC Service Controls 保護的環境中實作,下列透過私人服務連線介面部署的 Agent Platform API,需要額外的網路設定:
- 自訂訓練 (資料層)
- 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) 範圍內,代管 Agent Platform 的 Google 代管環境會預設封鎖網際網路存取權。這項限制是為了防止資料外洩而採取的安全措施。如要在這種情況下讓 Agent Platform 存取公開網際網路,您必須明確設定安全輸出路徑,透過虛擬私有雲網路轉送流量。
建議方法包括:
- 在 RFC 1918 子網路中,於虛擬私有雲邊界內部署 Proxy 伺服器。
- 建立 Cloud NAT 閘道,允許 Proxy VM 存取網際網路。
- 在執行階段環境中定義 Proxy 伺服器 (IP 位址或 FQDN)。
這項工作沒有規定或偏好的網路 Proxy。您可以使用任何合適的解決方案。例如: Squid proxy、 HAProxy、 Envoy 和 TinyProxy。
建立服務範圍
如要瞭解如何建立 service perimeter,請參閱 VPC Service Controls 說明文件的「建立 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
- 線上推論
- 開啟模型調整
- Vector Search (建立索引)
- Vector Search (索引查詢)
- 自訂訓練 (控制層)
- 自訂訓練 (資料層)
- Agent Platform Pipelines
- 私人的線上推論端點
- Colab Enterprise
- Agent Runtime
- 代管訓練叢集
- Notebooks API
支援下列服務:
- Gemini Enterprise Agent Platform Workbench
限制
使用 VPC Service Controls 時,會受到下列限制:
- 系統會為 VPC-SC 專案停用網址內容即時擷取功能,以封鎖資料外洩。
- 如要進行資料標註,請將標註者的 IP 位址加入存取層級。
- 對於 Google Cloud Pipeline Components,元件會啟動容器,檢查基礎映像檔是否符合所有需求。KFP 套件和
packages_to_install引數中列出的任何套件,都是容器的必要條件。如果基本映像檔 (無論是提供的還是自訂的) 中沒有任何指定需求,這個元件會嘗試從 Python Package Index (PyPI) 下載。由於服務安全防護範圍會封鎖 Gemini Enterprise Agent Platform 存取網際網路上第三方 API 和服務,因此下載作業會失敗並顯示Connection to pypi.org timed out。如要瞭解如何避免這個錯誤,請參閱「搭配 Agent Platform Pipelines 使用 VPC Service Controls」。 - 在 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)。 - 搭配 Gemini Enterprise Agent Platform Inference 使用 VPC Service Controls 時,必須在專案新增至服務範圍後,才能建立端點。如果在不屬於服務範圍的專案中建立端點,然後將該專案新增至服務範圍,嘗試將模型部署至該端點就會失敗。如果端點是共用公開端點,傳送要求至該端點也會失敗。同樣地,如果端點是在屬於服務安全防護範圍的專案中建立,之後專案遭到移除,嘗試將模型部署至端點也會失敗。
- 搭配使用 VPC Service Controls 和 Agent Runtime 時,專案必須先加入服務範圍,才能部署代理程式。如果在專案新增至安全範圍前部署代理程式,VPC Service Controls 就無法保護代理程式,代理程式也會繼續存取公用網際網路。
- 在 VPC-SC 環境中,系統不支援一鍵部署 Model Garden 公開 (專屬端點)。請改用支援 VPC Service Controls 的私人端點。詳情請參閱「將模型部署至私人端點」。
- VPC Service Controls 不支援要求和回應記錄。
後續步驟
- 觀看「VPC Service Controls:如何在 Shared VPC 區隔雲端專案」影片。
- 觀看「如何在 VPC Service Controls 使用模擬測試模式」影片。
- 觀看「VPC Service Controls:透過私人 IP 支援,建立精細的存取控管機制」影片。
- 進一步瞭解 VPC Service Controls。
- 進一步瞭解 VPC Service Controls 的必要角色。
- 瞭解如何排解 VPC Service Controls 問題。
- 瞭解如何部署 Proxy VM,從客戶的虛擬私有雲存取網際網路。