如何查询哪些服务器 IP 访问了 Google Cloud 的 Vertex AI API

内容分享7天前发布
0 0 0

核心方法:使用 Cloud Logging (Stackdriver)

GCP 所有的 API 调用、管理活动和系统事件都会被记录到 Cloud Logging 中。Vertex AI API 的调用记录也不例外。

步骤一:确认日志权限和范围

您需要拥有足够的权限才能访问项目的日志。

IAM 权限确认:

至少需要
roles/logging.viewer
(Logs Viewer) 权限。

项目/组织范围确认:

确定您的服务器调用 Vertex AI API 时是在哪个 GCP 项目 (Project) 下发生的。您需要在这个项目下查询日志。

步骤二:访问 Cloud Logging 界面

登录 Google Cloud Console。

导航到 Logging > **Logs Explorer**(日志浏览器)。如何查询哪些服务器 IP 访问了 Google Cloud 的 Vertex AI API

步骤三:构建查询语句(Query)

查询的关键是识别 Vertex AI 相关的服务名称和调用方法。

1. 查找 Vertex AI 服务的日志

Vertex AI 服务通常使用
aiplatform.googleapis.com
这个服务名称。

基础查询语句(过滤所有 Vertex AI 相关的日志):



resource.type="audited_resource" 
AND 
protoPayload.serviceName="aiplatform.googleapis.com"
2. 识别发起调用的 IP 地址

在 GCP 审计日志中,发起请求的 IP 地址通常记录在
protoPayload.authenticationInfo.principalEmail
(如果调用者是服务账号)或
protoPayload.requestMetadata.callerIp
中。

完整查询语句(查找 Vertex AI API 调用及其 IP):



resource.type="audited_resource" AND 
protoPayload.serviceName="aiplatform.googleapis.com" AND 
(protoPayload.requestMetadata.callerIp != "" OR 
protoPayload.authenticationInfo.principalEmail != "")

如何查询哪些服务器 IP 访问了 Google Cloud 的 Vertex AI API

步骤四:分析日志结果

执行查询后,日志浏览器会列出匹配的日志条目。对于每个条目,展开它并查找以下字段:

字段名称

描述


protoPayload.requestMetadata.callerIp

外部客户端的 IP 地址。 如果调用是从互联网或非 GCP 环境发起的,这是您要找的 IP。


protoPayload.authenticationInfo.principalEmail

如果调用是通过服务账号 (Service Account) 发起的,这里会显示服务账号的邮箱。


resource.labels.project_id

发生调用的项目 ID。


timestamp

调用的时间。


protoPayload.methodName

调用的具体 API 方法(例如:
aiplatform.googleapis.com/Predict
)。

如果您发现
callerIp
是一个私有 IP 或 GCP 内部 IP (例如
10.x.x.x

172.x.x.x
):

这意味着调用是从 GCP 内部发起的,例如 GKE、Compute Engine (VM)、Cloud Function 或 Cloud Run。

在这种情况下,您可能需要查看日志条目中的
resource.type
或其他元数据,以确定是哪个 GCP 资源发起的调用(例如,如果是 VM,日志中可能关联了 VM 的实例 ID)。

针对性建议和高级查询技巧

1. 过滤特定 API 方法

如果您只关心模型预测(最常见的调用),可以进一步过滤:



resource.type="audited_resource" AND
 protoPayload.serviceName="aiplatform.googleapis.com" AND 
protoPayload.methodName:"Predict" // 或 Search, BatchPredict, etc.

2. 使用 Log Analytics (如果需要大规模分析)

如果您的日志量非常大,并且需要进行聚合分析(例如,统计TOP 10 访问 IP),建议切换到 Log Analytics 界面,并使用 SQL 语句查询:

Log Analytics SQL 示例:统计访问量最大的 IP:



SELECT JSON_VALUE(proto_payload, '$.requestMetadata.callerIp') AS caller_ip,
 count(JSON_VALUE(proto_payload, '$.requestMetadata.callerIp')) AS total_calls FROM 
`[YOUR_PROJECT_ID].[YOUR_LOG_BUCKET_NAME]._AllLogs` WHERE resource.type =
 "audited_resource" AND JSON_VALUE(proto_payload, '$.serviceName') = 
"aiplatform.googleapis.com" GROUP BY caller_ip ORDER BY total_calls DESC LIMIT 10

注意: 首次使用 Log Analytics 需要启用并创建日志存储桶(Log Bucket)。

3. 处理服务账号调用(内部调用)

如果日志显示调用是通过服务账号发起的,但
callerIp
缺失或不准确,您需要找到**哪个资源正在使用这个服务账号**。

如果调用来自 GKE/VM: 检查该服务账号最近的元数据访问或身份验证日志,看是哪个 Compute Engine 实例或 K8s Pod 正在使用它。

如果调用来自 Cloud Function/Run: 在 Function/Run 的执行日志中,通常可以直接看到是哪个实例或请求触发了 Vertex AI API 调用。

通过上述步骤和查询方法,您可以有效地在 Google Cloud Logging 中定位并识别所有访问您 Vertex AI API 的服务器 IP 地址。

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...