Google Cloud — 发现
连接您的 Google Cloud 项目(或整个组织或文件夹),以便 SecureAI 可以清点 Vertex AI 代理、端点和模型,以及围绕它们的服务帐户、密钥、IAM 绑定、审计日志、使用情况和成本。此卡片只读取项目,从不发送提示。如果您希望在自己的 Google Cloud 帐户上运行 SecureAI 的 LLM 流量,请参阅 Google Vertex AI — 在您的帐户上推理。
SecureAI 导入什么
- Vertex AI:代理(Agent Engine)、服务端点、正在运行的批处理作业和调优作业,以及模型 — Model Registry 加上正在使用的每个发布方模型(Gemini、Claude、开放模型)。
- Agent Builder / Gemini Enterprise 和 Dialogflow CX(可选):Agent Builder(Discovery Engine)引擎及其数据存储区,在
global、us和eu位置中查询;以及 Dialogflow CX 代理,在global和您配置的 Vertex AI 位置中查询。 - 过去 30 天按模型统计的使用情况:请求数(以及其中失败的数量)、输入和输出令牌,以及提示缓存令牌。
- 过去 30 天按凭证统计的使用情况(Cloud Monitoring):每个服务帐户和每个 API 密钥的请求总数,以及对 AI API(Vertex AI、Gemini API、Agent Builder、Dialogflow)的请求数。OAuth 客户端的流量(人员以及控制台或
gcloud等工具)会单独汇总。它还提供这些帐户和密钥的上次使用时间。 - 按模型和身份统计的使用情况(可选):哪个服务帐户或人员调用了哪个 Vertex AI 模型,数据来自数据访问审计日志(如果您已开启)。请参阅按模型和身份统计的使用情况。
- 在 SecureAI 之外使用的 Vertex AI:未经过 SecureAI 推理连接、直接调用 Vertex AI 或 Gemini 的身份。请参阅在 SecureAI 之外使用的 Vertex AI。
- 过去 30 天的成本:来自 BigQuery 账单导出的本项目实际 AI 支出,或按标价计算的估算值。
- NHI:服务帐户、用户管理的服务帐户密钥、API 密钥、Workload Identity Federation 池和提供方,以及 OAuth 客户端 — 包括它们的上次使用时间(来自 Policy Analyzer 和按凭证统计的使用情况)以及它们的特权风险。可从 NHI 清单 撤销和恢复,可以手动操作,也可以通过自动策略。
- 项目的 IAM 角色绑定。
- AI 和身份服务(Vertex AI、IAM、IAM Credentials、STS、API Keys、Resource Manager)的 Cloud 审计日志:过去 30 天内最新的 200 个事件。
先决条件
需要启用的 API
SecureAI 使用相应的 Google API 读取每个范围。请在项目上启用它们(API 和服务 → 库,或使用gcloud services enable):
停用的 API 不会导致同步失败:它会显示为一个缺口 API disabled in the project — enable it,并注明相应服务。Agent Builder 和 Dialogflow 是例外:如果它们的 API 处于关闭状态,SecureAI 会认为项目未使用该产品,不会将其标记为缺口。
角色
一个供 SecureAI 使用的服务帐户。在项目上为其授予以下角色(IAM 和管理 → IAM → 授予访问权限):
要获取实际成本,您的 Cloud Billing 数据必须导出到 BigQuery,并且服务帐户需要在导出数据集上拥有
roles/bigquery.dataViewer,在运行查询的项目上拥有 roles/bigquery.jobUser。
要从 SecureAI 撤销和恢复(可选),您需要为希望允许的每项操作授予相应角色。如果您的部署提供无密钥访问,请将这些角色授予一个仅用于撤销的独立服务帐户,并让用于读取的服务帐户只保留只读角色;否则,请将它们授予连接器的服务帐户:
您不需要
roles/billing.viewer:它是结算帐户角色,无法在项目上授予,连接器也不使用它。凭证
获取方式
选项 A — JSON 密钥- 在 Google Cloud 控制台中,转到 IAM 和管理 → 服务账号 → 创建服务账号(例如
secureai-discovery)。 - 转到 IAM 和管理 → IAM → 授予访问权限,输入服务帐户的电子邮件地址作为主账号,并添加先决条件中的角色。
- 回到 服务账号,打开该帐户 → 密钥 → 添加密钥 → 创建新密钥 → JSON,然后下载文件。
- 将完整的 JSON 粘贴到 Service Account JSON 中,然后删除下载的文件。
gcloud 的等效操作:
- 创建服务帐户并为其授予角色(上面的第 1 步和第 2 步)。
-
在 SecureAI 的连接表单中,Service account to impersonate (keyless — instead of the JSON) 字段的帮助文本会注明需要授权的 SecureAI 帐户。在 Google Cloud 中打开您的服务帐户 → 权限 → 授予访问权限,输入该帐户作为主账号,并为其授予
roles/iam.serviceAccountTokenCreator。使用gcloud: - 在该字段中输入您的服务帐户的电子邮件地址,并将 JSON 留空。
用于撤销的独立服务帐户
如果您的部署提供无密钥访问,您可以将读取和撤销分开。与把撤销角色授予用于读取的服务帐户相比,更推荐这种方式:- 创建第二个服务帐户(例如
secureai-revoke),并只为其授予先决条件中的撤销角色。 - 在该帐户上,将
roles/iam.serviceAccountTokenCreator授予 Service account for revocation (optional — separate from reading) 字段帮助文本中注明的 SecureAI 帐户。 - 在该字段中输入它的电子邮件地址。
组织或文件夹模式
要用一个连接器清点多个项目,请在 Organization or folder 中填写organizations/<number> 或 folders/<number>(例如 organizations/123456789012)。
- SecureAI 通过 Cloud Asset Inventory 查找活跃项目,并像单项目连接器一样读取每个项目。Google Cloud Project ID 仍是配额和结算项目。
- 在组织或文件夹上为服务帐户授予:
roles/cloudasset.viewer、roles/iam.securityReviewer和roles/aiplatform.viewer,以及用于使用情况和审计的roles/monitoring.viewer和roles/logging.viewer。 - 在服务帐户所在的项目上启用
cloudasset.googleapis.com。
gcloud resource-manager folders add-iam-policy-binding <number> 代替 gcloud organizations add-iam-policy-binding。
为了让同步在合理的时间内完成,每次同步都有上限。配额项目优先,其次是拥有 Vertex AI 资源的项目:
超出上限的部分会显示为部分缺口,并注明已读取多少。无法读取的项目也会作为缺口列出,其任何内容都不会被退役或清除。连接时,此模式下的测试只会枚举第一页项目并检查配额项目:读取每个项目是同步的工作。
连接
- Admin → Integrations → Cloud → Google Cloud — 发现 → 连接集成。
- 输入项目 ID、位置(或在 More Vertex AI Locations 中输入多个位置),以及 JSON 密钥或要模拟的服务帐户(二者之一)。如果您需要,请添加用于撤销的服务帐户、组织或文件夹,以及账单字段。
- 点击 连接。保存之前,SecureAI 会对项目进行一次真实读取来检查凭证,需要几秒钟。如果无法读取项目,它会显示原因且不保存任何内容;您输入的内容会保留在表单中。可能出现的消息见故障排除。
- 如果已保存但缺少某些角色,警告会列出这些角色。授予这些角色后再次同步。
- 立即使用卡片上的刷新按钮进行同步。此后,SecureAI 每 6 小时自动同步一次。
验证
- Cloud Sensors 会列出发现的代理。点击 Google Cloud 卡片可打开 GCP 面板:使用情况和成本(请求、失败、令牌、缓存、成本及其来源)、模型和部署、身份和访问(服务帐户和密钥及其上次使用时间、IAM 绑定)以及审计。
- 如果面板显示 Discovery could not read everything,请逐行查看(请参阅故障排除)并再次同步。
- NHI 清单 会显示服务帐户和密钥。
按模型和身份统计的使用情况
Cloud Monitoring 能说明每个凭证发出了多少请求,但无法说明请求发往哪个模型。要了解哪个身份调用了哪个模型,SecureAI 会读取 Vertex AI 的数据访问审计日志。这是可选的,由您决定:- 只有当
aiplatform.googleapis.com(或所有服务)开启了 DATA_READ 或 DATA_WRITE 日志时,SecureAI 才会读取它们。SecureAI 会在 IAM 政策中检测这一点;它从不替您开启。 - 开启它们会产生 Cloud Logging 注入费用,按 Google 的费率计费。您可以在 IAM 和管理 → 审核日志 → Vertex AI API → 数据读取 中开启。
- 服务帐户需要
roles/logging.privateLogViewer。 - 每个项目每次同步,SecureAI 最多读取 5,000 个条目或读取 20 秒,以先达到者为准。
- 如果它们处于关闭状态,面板会显示一个可选缺口,说明如何开启。如果您在组织或文件夹上开启了它们,但连接的是单个项目,SecureAI 无法从项目的政策中看到这一点,仍会显示该缺口。
特权风险
读取 IAM 政策后,如果服务帐户拥有以下任一角色,SecureAI 会将其标记为特权帐户:- Owner(
roles/owner)或 Editor(roles/editor); - 任何管理员角色(
roles/<service>.admin或以Admin结尾); roles/iam.serviceAccountTokenCreator或roles/iam.serviceAccountUser,它们允许持有者以其他服务帐户的身份行事。
在 SecureAI 之外使用的 Vertex AI
GCP 面板的 Identity & Access 标签页包含 Vertex AI used outside SecureAI:过去 30 天内未经过 Vertex AI 推理连接、直接调用 Vertex AI 或 Gemini 的身份。这些提示未经过 DLP、策略或签名回执。- 启用数据访问 (Data Access) 审计日志时(请参阅按模型和身份统计的使用情况),每一行会列出调用了哪些模型以及调用次数,并且只统计推理调用。
- 未启用时,数字来自 Cloud Monitoring 按凭证(服务帐户或 API 密钥)的统计,包括对 AI API(Vertex AI、Gemini API、Agent Builder、Dialogflow)的所有调用,而不仅是推理。
- 推理连接的服务帐户和连接器的服务帐户永远不计入。人员不会逐一列出:他们的调用汇总为一行(People (Google accounts),或 People and tools (OAuth):控制台、gcloud、应用)。
- 如果 SecureAI 在该次同步中无法读取推理连接,它不会进行任何分类,会将其标记为可选缺口,并保留上一次同步的结果。
- 它会生成 Insights 发现 Google Vertex AI / Gemini is being used outside SecureAI:严重程度为中等;如果调用方是 API 密钥(长期有效的凭证),则为严重。它映射到 OWASP LLM02、ISO/IEC 42001 A.4.2 和 A.6.2.6,以及 NIST AI RMF MAP-1.1 和 GOVERN-6.1。
成本
- 使用账单导出表时:本项目在 AI 服务(Vertex AI、Gemini API、Agent Builder、Dialogflow 等)上的实际支出,扣除赠送金后以结算帐户的币种显示。当赠送金覆盖了使用量时,净额可能为零;此时面板会在旁边显示扣除赠送金前的金额。Google 会以数小时的延迟更新导出数据。
- 不使用时:估算值 — Cloud Monitoring 中的令牌数 × 标价,包括 Claude 和提示缓存令牌。不反映折扣或承诺使用合同。
撤销和恢复
当连接器或用于撤销的服务帐户拥有相应操作的角色时(请参阅先决条件),可从 NHI 清单(挂锁)撤销 GCP 身份。每项操作在 Google 端的效果:
要撤消一次撤销,请在 NHI 清单中打开该身份的菜单并选择 Restore(Undo the revocation at Google Cloud)。该身份会在 Google Cloud 中重新启用,在 SecureAI 中会被解除阻止,并保持 In remediation 状态,直到您审核它。
- 只有 SecureAI 在 Google Cloud 中撤销的内容才能恢复,无论是手动撤销还是通过自动策略撤销。对于仅在 SecureAI 网关上的阻止,或您的团队直接在 Google Cloud 中停用的身份,不提供此操作。
- 已删除的服务帐户密钥无法恢复:SecureAI 会直接拒绝,不调用 Google。
- 恢复使用与撤销相同的角色。
- 连接器使用的服务帐户及其密钥无法从 SecureAI 撤销 — 那样会中断发现。用于撤销的服务帐户也是如此。请在 Google Cloud 中轮换它们。
- Vertex AI 推理连接用于身份验证的服务帐户及其用于签名的密钥也无法撤销:那样会停止每一次受治理的调用。使用无密钥(模拟)选项时,只有服务帐户受到保护:其密钥仍可撤销,因为 SecureAI 不使用其中任何一个签名。如果 SecureAI 无法确认推理连接使用的是哪个身份,它不会撤销任何服务帐户或服务帐户密钥(API 密钥不受影响)。
- Google 的默认服务帐户(Compute Engine 默认服务帐户、App Engine、Cloud Build、服务代理)需要二次确认:停用其中一个会停止以其身份运行的所有虚拟机、应用或构建。
- 如果连接器缺少某项操作的角色,错误会指出该角色。
自动 NHI 策略
自动 NHI 策略(NHI 清单 → Automatic policies)按规则对 Google Cloud 身份发出警报或将其撤销,无需逐一审核。它们会在连接器每次成功同步结束时进行评估,且只针对该连接器的身份。
每条规则有三种模式:Off、Alert 和 Revoke。所有规则初始都为关闭。保护措施:
- Simulation mode (dryRun) 默认开启:开启时,设为 Revoke 的规则不会切断任何内容;它只列出将要执行的操作。关闭它是启用真实切断的唯一方式。Simulate with this configuration 会在您保存之前显示效果。
- Revocation cap per run:默认为 5(1 到 50)。如果在一次运行中 Revoke 规则匹配的身份数超过上限,则不会切断任何内容,并发送警报。
- Exclusions:如果身份的所有者、名称或资源与某个模式匹配,任何规则都不会对其生效;
*是唯一的通配符。 - 只评估完整的密钥列表。
- SecureAI 使用的凭证(连接器的、撤销帐户的或 Vertex AI 推理的)永远不会被切断。Google 默认服务帐户的密钥永远不会被自动切断:规则只发出警报,由人来决定。

