如何为Google Vertex AI向量搜索配置私有端点?
问题
我正尝试为Google Vertex AI向量搜索配置私有端点,确保应用与索引间的通信安全。已启用必要API并创建索引,但在私有服务访问端点的配置上遇到瓶颈。
已完成操作:
- 启用Vertex AI API、Private Service Connect及Service Networking API
- 创建符合预期配置的Vector Search索引
- 在同一区域内搭建VPC网络及子网
- 创建与
vertexai.googleapis.com的私有服务连接
待完成的操作需要清晰指南:
- 通过Private Service Connect将索引端点绑定至私有IP
- 从同一VPC内的VM或容器访问该端点
- 确保身份验证(IAM或服务账号)在此配置下仍能无缝运行
理想配置:
- 客户端(GKE集群或Compute Engine VM)无需通过公网即可与Vector Search索引通信
- 流量通过Private Service Connect或等效方案保留在GCP私有网络内
技术栈:
- GCP
- Vertex AI Vector Search
- VPC-native GKE / Compute Engine
- Vertex AI SDK (Python)
解决方案
1. 将Vector Search索引端点绑定至私有IP
需要为Vector Search索引创建专用的Private Service Connect端点,而非仅绑定通用的vertexai.googleapis.com:
- 打开GCP控制台「Vertex AI」→「向量搜索」→「索引」,选中目标索引
- 进入「端点」标签页,点击「创建端点」
- 配置页面中:
- 选择「私有」作为端点类型
- 关联已创建的VPC网络和子网
- 勾选「启用Private Service Connect」,指定一个与VPC子网无冲突的私有IP范围(例如
10.0.0.0/24) - 完成创建后,端点会分配专属私有IP,该IP仅在你的VPC内部可达
2. 从VPC内的VM/容器访问私有端点
Compute Engine VM场景
- 确保VM部署在关联的VPC子网内,且禁用公网访问(或不分配公网IP)
- 使用Vertex AI Python SDK时,需指定私有端点地址:
import vertexai from vertexai.preview.vector_search import VectorSearchIndex, VectorSearchIndexEndpoint # 初始化SDK时指定私有端点 vertexai.init( project="你的项目ID", location="你的区域", api_endpoint="http://<私有端点IP>:8080" ) # 后续向量搜索调用自动走私有IP index_endpoint = VectorSearchIndexEndpoint("<端点资源ID>") index = index_endpoint.get_index("<索引资源ID>")
VPC-native GKE集群场景
- 确保集群节点池关联目标VPC子网,且启用「私有节点」模式(无公网IP)
- Pod部署无需额外网络配置,直接使用上述SDK代码即可,流量会通过VPC路由到私有端点
- 可在Pod内执行
curl <私有端点IP>:8080验证基本连通性
3. 确保身份验证无缝运行
私有端点的IAM验证逻辑与公网端点完全一致,无需额外配置:
- 为VM/GKE Pod使用的服务账号分配Vertex AI Vector Search用户角色,或自定义包含
vertexai.indexEndpoints.predict等必要权限的角色 - SDK会自动读取环境中的服务账号凭据(GCP默认会为VM/GKE Pod挂载服务账号密钥)
- 若需手动指定凭据,可设置环境变量:
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/服务账号密钥.json"
- 验证权限:在VM/GKE Pod内执行
gcloud auth list确认当前服务账号,再通过gcloud projects get-iam-policy 你的项目ID检查权限配置
内容的提问来源于stack exchange,提问作者Alamgir Ahamed saif
相关产品推荐
相关产品推荐

