Gemini API VPC网络配置评测:私有云安全调用方案
要在私有云环境中安全调用 Gemini API,核心在于完全阻断公网路径,确保所有流量仅通过 Google 内部骨干网传输,并严格防止跨项目的未授权访问。若配置不当,请求可能被拦截或导致敏感数据泄露。因此,必须依次完成以下关键配置:创建 VPC Service Controls 服务边界、配置基于 VPC CIDR 的访问级别、启用 Private Google Access 并创建 Private Endpoint,最后授予最小必要 IAM 权限。
创建 VPC Service Controls 服务边界
服务边界是私有云安全防护体系的第一道屏障。没有这道防线,后续的访问策略将形同虚设,无法有效保护 Gemini API 调用。
操作步骤:登录 Google Cloud Console,进入 VPC Service Controls 页面。点击"创建服务边界",填写唯一名称(如 【gemini-prod-boundary】)和描述信息,注意避免使用中文或空格。在"受保护资源"中,勾选当前项目;若调用方与模型部署方分属不同项目,则需同时勾选这两个项目——遗漏任一项目将导致对应环境的调用失败。在"受保护的服务"列表中,仅勾选 Vertex AI(服务标识为 aiplatform.googleapis.com),切勿选择 Generative Language API 或其他无关服务。点击创建,等待 2 至 5 分钟,状态显示为"已激活"即完成。在此期间,所有调用请求均会被拒绝。
配置基于 VPC CIDR 的访问级别
服务边界默认不开放任何流量,必须显式定义允许哪些私有网段穿透边界调用 Gemini API。
方法一:基于 IP 地址范围控制。进入刚创建的服务边界,切换到"访问级别"标签页,点击"创建访问级别"。将条件类型设为"基于 IP 地址",在"IP 地址范围"中输入目标 VPC 的完整 CIDR 块,例如 【10.128.0.0/16】。若仅需开放特定子网,填写 10.128.10.0/24 即可,避免使用 10.128.10.0/255.255.255.0 这类非标准格式。保存后,在边界设置的"受限访问策略"中绑定该访问级别。
方法二:复用现有访问级别。如果已存在覆盖目标网段的访问级别,可直接在边界策略下拉菜单中选择,无需重复创建。需特别注意:确认该访问级别未被其他边界误用,否则策略冲突将导致调用静默失败,排查难度极高。
启用 Private Google Access 并创建 Private Endpoint
这一步是整个私有调用链路中决定流量路由路径的关键环节。跳过此步骤,即使服务边界和访问级别已正确配置,请求仍会尝试通过公网路由,最终被拦截。
第一步:启用 Private Google Access。进入目标 VPC 的子网详情页面,将"Private Google Access"开关切换为"开启"。该操作需对每个包含调用方实例的子网逐一执行,不支持批量配置。
第二步:创建 Private Endpoint。进入 Vertex AI 控制台,依次选择 "Models" → "Endpoints" → "Create endpoint"。填写端点名称(如 gemini-private-ep),所选区域必须与调用方所在的 VPC 区域一致。关键配置:在"Network configuration"中勾选 Private endpoint,从下拉菜单选择目标 VPC 网络。点击创建,等待状态变为"Ready"即完成。系统将分配一个私有调用地址,格式如 https://us-central1-aiplatform.googleapis.com/v1/projects/xxx/locations/us-central1/endpoints/xxx:predict。
授予服务账号最小必要 IAM 权限
权限配置不当是导致 403 错误的常见原因。必须精确授予所需权限,避免直接赋予项目所有者角色。
进入"IAM 和管理" → "IAM",点击右上角"添加"。在"成员"字段输入服务账号邮箱(格式如 vertex-app@your-project.iam.gserviceaccount.com)。在"角色"字段展开"Vertex AI",选择 Vertex AI User(roles/aiplatform.user)。切勿选择 Admin 或 Owner 角色,以免违反最小权限原则。保存后等待约 60 秒,IAM 策略即可生效。
验证私有调用是否生效
配置完成后必须进行实际验证。注意,验证请求必须从 VPC 内部发起,并使用私有 Endpoint 地址,否则无法确认策略是否真正生效。
首先,在已启用 Private Google Access 的子网中启动一台 Compute Engine 实例。安装 curl 后执行以下请求:
curl -X POST
"https://us-central1-aiplatform.googleapis.com/v1/projects/YOUR_PROJECT_ID/locations/us-central1/endpoints/YOUR_ENDPOINT_ID:predict"
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)"
-H "Content-Type: application/json"
--data '{"instances": [{"content": "hello"}]}'
若返回 200 状态码及有效响应体,表明私有调用链路已成功建立。如返回 403 或连接超时,需逐一排查服务边界状态、访问级别绑定以及 Private Endpoint 关联的网络配置是否一致。大多数问题都源于这些环节的配置偏差。
