jmaciasc-google/google-security-agent

GitHub: jmaciasc-google/google-security-agent

基于 Google ADK 和 MCP 协议构建的企业级安全多 Agent 编排器,统一协调 SCC、SecOps 和 GTI 三大 Google 安全服务。

Stars: 0 | Forks: 0

# Google Security 多 Agent 部署指南 这是一个基于 **Google Agent Development Kit (ADK)** 构建的企业级、轻量级多 Agent 安全编排器,可以通过 **Model Context Protocol (MCP)** 与 Google Security 套件集成。该 Agent 能够协调 **Google Security Command Center (SCC)**、**Google SecOps (Chronicle)** 和 **Google Threat Intelligence (GTI)** 之间的情报和操作。 该编排器设计为**高度可移植、完全可重用,并且无需客户修改任何代码**。本指南为任何人(即使是零编程基础的用户)提供了循序渐进的操作演练,指导如何在 **Gemini Enterprise** 中安全地部署和注册此 Agent。 ## 🏗️ 架构流程 该编排器采用 **多 Agent 架构**: * **Google Security Agent(中心):** 处理用户意图,展示透明的多步编排计划,并动态协调任务。 * **子 Agent:** `scc_agent`、`secops_agent` 和 `gti_agent` 根据可用性连接到独立的、由客户管理或由 Google 管理的基于 HTTP 的 MCP 服务器。 * **安全边界:** 允许以编程方式过滤不需要的工具,并利用 Cloud Run 的服务身份按需动态生成短期的安全 OIDC ID Token。 ``` graph TD GE[Gemini Enterprise UI] -->|IAM OIDC Bearer Token| GSA[Google Security Agent Hub] subgraph "Multi-Agent Container (Cloud Run)" GSA -->|Dynamic Coordination| SCC[SCC Agent Spoke] GSA -->|Dynamic Coordination| SecOps[SecOps Agent Spoke] GSA -->|Dynamic Coordination| GTI[GTI Agent Spoke] end GSA -->|OIDC Identity Handshake| metaserv[GCP Metadata Server] SCC -->|OIDC Token| scc_mcp[SCC MCP Server] SecOps -->|OIDC Token| secops_mcp[SecOps MCP Server] GTI -->|OIDC Token| gti_mcp[GTI MCP Server] ``` ## 📋 阶段 1:前置条件 在开始之前,请确保您满足以下云架构前置条件: 1. **有效的 GCP 项目:** 您必须拥有一个已激活结算功能的 Google Cloud Platform (GCP) 项目。 2. **Google Cloud Shell(强烈推荐):** 您无需安装本地命令行工具,直接在浏览器中使用 **Google Cloud Shell** 即可。它预装了 Google Cloud SDK、Git,并且已经获得授权可以管理您的 GCP 资源! 3. **活跃的 MCP 服务器:** 您应该已经启动并运行了目标 MCP 服务器。请参阅以下设置资源: * **Google SecOps (Chronicle):** 按照 [Google SecOps MCP 服务器文档](https://docs.cloud.google.com/chronicle/docs/secops/use-google-secops-mcp) 进行设置并部署您的 SecOps 引擎。 * **Google Threat Intelligence (GTI):** 使用 [GTI MCP 服务器代码库](https://github.com/jmaciasc-google/gti-mcp-server) 进行部署。 * **Security Command Center (SCC):** 此 MCP 服务器尚未作为单独的代码库提供,请保持关注。 4. **Gemini Enterprise 许可证:** 确保您的 Google Cloud 组织拥有有效的 **Gemini Enterprise 许可证**。您的项目中需要有活跃的 Gemini Enterprise 应用引擎才能连接并使用自定义 Agent。 ## 💻 阶段 2:本地工作区设置 打开 Google Cloud Shell(或您的本地终端)并执行以下命令以克隆代码库并准备工作区: ``` # 1. 克隆此仓库 git clone # 2. 进入项目目录 cd google-security-agent ``` ## ⚙️ 阶段 3:定义部署环境变量 请在下方填入您的 GCP 项目 ID,并在您的终端中运行此代码块: ``` export PROJECT_ID="" # Your Google Cloud Project ID export REGION="us-east1" # Google Cloud deployment region export SEC_AGENT_NAME="google-security-agent" # Name of your new Cloud Run service export SEC_AGENT_SERVICE_ACCOUNT_NAME="google-security-agent-runner" # Name of your new Service Account export SEC_AGENT_REPO="security-agent-repo" # Artifact Registry repository name export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)") gcloud config set project $PROJECT_ID ``` ## ⚙️ 阶段 4:配置 Agent 环境变量 您**无需**编辑任何 Python 代码。代码库完全是通用的,可以直接执行。您无需编辑文件,而是可以直接在终端中使用 `export` 命令定义 Agent 的功能和端点。这使得复制、粘贴和部署变得极其简单。 ### 1. 配置参数参考表 | 变量名 | 默认值 | 描述 / 参考链接 | |---|---|---| | `GEMINI_MODEL` | `gemini-2.5-flash` | 用于根 Agent 和子 Agent 的 Google Gemini 模型。请参阅 [Vertex AI Gemini 模型文档](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models) 查看可用模型。 | | `ENABLE_SCC_AGENT` | `true` | 切换(`true`/`false`)以启用/禁用 Security Command Center 子 Agent。 | | `ENABLE_SECOPS_AGENT` | `true` | 切换(`true`/`false`)以启用/禁用 Google SecOps (Chronicle) 子 Agent。 | | `ENABLE_GTI_AGENT` | `true` | 切换(`true`/`false`)以启用/禁用 Google Threat Intelligence 子 Agent。 | | `EXCLUDED_TOOLS` | `""` | 要排除的以逗号分隔的工具名称列表。请查看下方工具目录中各项服务的可用工具。 | | `SCC_MCP_URL` | `https://scc-mcp-server.run.app/sse` | SCC MCP 服务器的端点 URL。 | | `SECOPS_MCP_URL` | `https://secops-mcp-server.run.app/sse` | SecOps MCP 服务器的端点 URL。 | | `GTI_MCP_URL` | `https://gti-mcp-server.run.app/sse` | GTI MCP 服务器的端点 URL。 | ### 2. 导出配置变量 在您的 Cloud Shell 或终端中运行以下导出命令。请确保将占位符 URL 替换为您实际部署的 MCP 服务器端点: ``` export GEMINI_MODEL="gemini-2.5-flash" export ENABLE_SCC_AGENT="true" export ENABLE_SECOPS_AGENT="true" export ENABLE_GTI_AGENT="true" # Security Tool Filter:列出任何工具名称(例如:scc:delete_finding)以完全禁用它 # 有关所有工具的列表,请参阅上方链接的 MCP 工具目录。 export EXCLUDED_TOOLS="scc:delete_finding" # 指向你的目标 MCP server endpoint 的 URL: export SCC_MCP_URL="https://your-scc-mcp-server-endpoint.run.app/sse" export SECOPS_MCP_URL="https://your-secops-mcp-server-endpoint.run.app/sse" export GTI_MCP_URL="https://your-gti-mcp-server-endpoint.run.app/sse" ``` ## 🛡️ 阶段 5:配置 GCP 基础设施 运行这些命令以准备您的 GCP 项目的 API 和安全权限。 ### 1. 启用所需的 Cloud API ``` gcloud services enable run.googleapis.com \ aiplatform.googleapis.com \ artifactregistry.googleapis.com \ cloudbuild.googleapis.com \ discoveryengine.googleapis.com ``` ### 2. 为编排器创建自定义服务账号 ``` gcloud iam service-accounts create $SEC_AGENT_SERVICE_ACCOUNT_NAME \ --display-name="Google Security Agent Runner" \ --project=$PROJECT_ID ``` ### 3. 向服务账号授予 IAM 安全角色 ``` # 授权该服务账号通过 Vertex AI API 调用 Gemini LLM gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:$SEC_AGENT_SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/aiplatform.user" ``` ## 🚢 阶段 6:构建并部署到 Cloud Run ### 1. 创建 Artifact Registry 代码库 我们使用之前定义的 `$SEC_AGENT_REPO` 环境变量来创建 Docker 代码库: ``` gcloud artifacts repositories create $SEC_AGENT_REPO \ --repository-format=docker \ --location=$REGION \ --project=$PROJECT_ID ``` ### 2. 使用 `agents-cli` 构建和部署(推荐流程) 我们在 Cloud Build 中安全地编译并部署容器,并使用 `agents-cli deploy` 实用工具将其启动到 Cloud Run 上。 由于我们使用终端环境变量配置了 Agent 的配置变量,因此我们使用 `--update-env-vars` 标志将它们传递给 Cloud Run: ``` agents-cli deploy \ --no-confirm-project \ --project $PROJECT_ID \ --region $REGION \ --service-name $SEC_AGENT_NAME \ --service-account $SEC_AGENT_SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --update-env-vars "GEMINI_MODEL=$GEMINI_MODEL,ENABLE_SCC_AGENT=$ENABLE_SCC_AGENT,ENABLE_SECOPS_AGENT=$ENABLE_SECOPS_AGENT,ENABLE_GTI_AGENT=$ENABLE_GTI_AGENT,EXCLUDED_TOOLS=$EXCLUDED_TOOLS,SCC_MCP_URL=$SCC_MCP_URL,SECOPS_MCP_URL=$SECOPS_MCP_URL,GTI_MCP_URL=$GTI_MCP_URL" ``` ## 🤝 阶段 7:连接到 Gemini Enterprise (A2A) 部署完成后,我们专门向 Gemini Enterprise 授予调用权限,并通过 **Agent-to-Agent (A2A)** 协议注册 Google Security Agent。 ### 1. 授权 Gemini Enterprise 调用您的 Cloud Run 服务 为了允许 Gemini Enterprise 调用您的私有 Cloud Run 服务,我们将 **`roles/run.servicesInvoker`** 角色授予您 Discovery Engine 的系统服务账号。 ``` gcloud run services add-iam-policy-binding $SEC_AGENT_NAME \ --region=$REGION \ --member="serviceAccount:service-$PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com" \ --role="roles/run.servicesInvoker" \ --project=$PROJECT_ID ``` ### 2. 以编程方式注册 Agent 我们检索已部署的 Cloud Run 服务 URL,并将其作为 **Agent-to-Agent (A2A)** 提供者注册到您的 Gemini Enterprise 应用中。 #### 步骤 A:导出已部署的服务 URL ``` export SERVICE_URL=$(gcloud run services describe $SEC_AGENT_NAME --region=$REGION --project=$PROJECT_ID --format="value(status.url)") ``` #### 步骤 B:发现并导出 Gemini Enterprise 应用 ID 根据您项目的配置,选择以下两种情况中的**一种**来导出您的 `GE_APP_ID`: ##### 选项 A:您只有一个应用(自动提取) 如果您的项目中只配置了一个应用,请运行此自动命令以立即查找并导出您的 App ID: ``` export GE_APP_ID=$(agents-cli publish gemini-enterprise --list --project-id $PROJECT_ID | grep -o "projects/.*default_collection/engines/[^[:space:]]*" | head -n 1) ``` ##### 选项 B:您有多个应用(手动选择) 如果您有多个应用,请首先列出它们: ``` agents-cli publish gemini-enterprise --list --project-id $PROJECT_ID ``` 从命令输出中识别出正确的应用路径,并手动将其导出: ``` export GE_APP_ID="projects/$PROJECT_NUMBER/locations/global/collections/default_collection/engines/YOUR_CHOSEN_APP_NAME" ``` #### 步骤 C:发布并注册您的 Agent 在导出变量后,运行以下命令以完成注册: ``` agents-cli publish gemini-enterprise \ --agent-card-url "$SERVICE_URL/a2a/app/.well-known/agent-card.json" \ --gemini-enterprise-app-id "$GE_APP_ID" \ --project-id "$PROJECT_ID" \ --display-name "Google Security Agent" \ --description "An enterprise security orchestrator that coordinates actions and insights across Google Threat Intelligence (GTI), Google SecOps, and Security Command Center (SCC)." ``` ✅ **大功告成!** 您的 **`Google Security Agent`** 现已完全注册并在您的 Gemini Enterprise 应用中激活!
标签:AI智能体, FTP漏洞扫描, MCP协议, 企业安全, 多智能体, 安全编排, 网络调试, 网络资产管理, 自动化, 请求拦截, 逆向工具