将 Secret Manager 与 Google SecOps 集成
本文档介绍了如何将 Secret Manager 与 Google Security Operations 集成。
使用场景
Secret Manager 集成使用 Google SecOps 功能来支持以下使用场景:
- 集中管理凭据:通过在 SOAR 配置文件和脚本中集中 存储、审核和管理应用 凭据,消除嵌入其中的硬编码应用凭据 Google Cloud。
- 同步参数:使用 后台同步作业自动执行配置管理,以从 Google Cloud Secret Manager 中提取条目并更新集成实例、连接器和作业。
准备工作
在 Google SecOps 平台中配置集成之前,请按照以下步骤验证您是否已配置 环境:
- 创建服务账号。
- 为您的项目启用所需的 API。
- 选择并配置以下身份验证方法之一:
- 选项 1:JSON 密钥:此方法依赖于静态的 长期有效的密钥文件。仅当您的环境中没有 Workload Identity 时,才使用此方法。
- 选项 2:Workload Identity(推荐):此 方法使用短期有效的临时访问令牌,通过服务帐号 模拟来消除存储任何 Secret 的需求。
创建服务帐号
如需为集成创建服务帐号,请完成以下步骤:
在 Google Cloud 控制台中,前往 IAM 和管理 > 服务账号 ,然后选择您的项目。
点击创建服务账号 。
提供名称和说明,然后点击完成 以创建账号。
根据您选择的身份验证方法,向服务帐号授予所需的 IAM 权限:
- 对于服务账号密钥身份验证,请授予 Secret Manager Secret Accessor (
roles/secretmanager.secretAccessor) 角色。 - 对于 Workload Identity 身份验证,请向要模拟的目标服务帐号授予 Secret Manager Secret Accessor (
roles/secretmanager.secretAccessor) 角色,并确保运行时环境的身份具有 Service Account Token Creator (roles/iam.serviceAccountTokenCreator) 角色。
- 对于服务账号密钥身份验证,请授予 Secret Manager Secret Accessor (
为您的项目启用所需的 API
在 Google Cloud 控制台中,前往 API 和服务。
点击启用 API 和服务 。
搜索并为您的项目启用以下 API:
配置 JSON 密钥
您可以使用静态 JSON 密钥文件或工作负载身份联合来对集成进行身份验证。为了最大限度地提高环境安全性,请使用 Workload Identity 方法。仅当您的基础架构不支持 Workload Identity 时,才使用 JSON 密钥方法,因为静态密钥需要手动轮换,并且会增加凭据泄露风险。
如需生成对集成进行身份验证所需的 JSON 密钥文件,请完成以下步骤:
在 Google Cloud 控制台中,前往 IAM 和管理 > 服务账号 ,然后选择 您创建的服务帐号。
前往密钥 标签页。
点击添加密钥 。
选择创建新密钥 。
对于密钥类型,选择 JSON ,然后点击创建 。JSON 文件会下载到您的计算机。
复制此文件的全部内容,并在集成配置期间将其粘贴到
Service Account JSON中。
配置 Secret Manager 权限
请按照以下步骤授予集成访问项目中存储的 Secret 材料所需的管理权限: Google Cloud
- 在 Google Cloud 控制台中,前往 IAM 和管理 > IAM。
- 从主账号列表中找到您创建的服务帐号,然后点击 修改主账号 Edit principal。
- 点击添加其他角色 。
- 在角色选择字段中,搜索并选择 Secret Manager Secret Accessor。
- 点击保存 。
配置 Workload Identity 凭据
选择此方法或 JSON 密钥方法来对集成进行身份验证。Workload Identity 是推荐的更安全的方法,因为它使用短期有效的临时访问令牌,通过服务帐号模拟来最大限度地降低长期有效的 Secret 凭据泄露风险。
识别唯一实例身份
如需使用 Workload Identity,您必须授予 Google SecOps 实例模拟服务帐号的权限。此步骤允许实例安全地访问 Google Cloud 资源。
- 在 Google SecOps 中,前往 内容中心 > 响应集成。
- 选择您要配置的集成,然后在
Workload Identity Email字段中输入您的服务帐号电子邮件地址。 - 点击保存 > 测试。测试预计会失败。
点击 Test 右侧的 close_small,然后在错误消息中搜索以
gke-init-python@...或soar-python@...开头的身份电子邮件地址。复制此唯一的电子邮件地址,并在集成配置期间将其粘贴到
Workload Identity Email中。
在 中授权实例身份 Google Cloud
检索到 Google SecOps 实例的唯一身份后,您必须授权该实例访问您的 Google Cloud 资源。此步骤可启用服务帐号模拟,使平台能够生成短期有效的令牌并代表您执行操作,而无需使用静态密钥。
- 在 Google Cloud 控制台中,前往 IAM 和管理 > 服务账号。
- 选择目标服务帐号,然后依次前往权限 > 授予访问权限。
- 将唯一的电子邮件地址粘贴到新的主账号 字段中。
- 分配 Service Account Token Creator 角色。
集成参数
Secret Manager 集成需要以下配置 参数:
| 参数 | 说明 |
|---|---|
Service Account JSON |
可选。 用于向 Secret Manager 进行身份验证的服务帐号密钥 JSON 文件的内容。 您可以配置此参数或 Workload Identity Email 。 |
Project ID |
可选。 用于存储 Secret 的 Google Cloud 项目 ID。 如果未提供,集成会尝试从服务 账号 JSON(如果存在)中推断此 ID,但建议明确指定。 |
Workload Identity Email |
可选。 通过 Workload Identity(应用默认凭据)进行身份验证时要模拟的服务账号电子邮件地址。 当 SOAR 平台或远程代理在启用 Workload Identity 的内部运行时,请使用此配置,而不是使用 Service Account JSON 参数。 Google Cloud |
Verify SSL |
必填。 如果选择此项,集成会在建立与 Secret Manager 的连接时验证 SSL 证书。 默认启用 ( |
如需了解如何在 Google SecOps 中配置集成,请参阅配置 集成。
您可以稍后根据需要进行更改。配置集成实例后,您可以在剧本中使用它。如需详细了解 如何配置和支持多个实例,请参阅支持 多个实例。
操作
如需详细了解操作,请参阅 从工作台响应待处理的操作和执行 人工处置措施。
Ping
使用 Ping 操作验证连接,并根据目标 Secret Manager 实例验证配置 参数。
此操作主要用于在 Marketplace 的 集成配置页面中进行即时连接测试,不会在 单个 Google Cloud 实体上执行。
操作输入
此操作不需要任何输入参数。
操作输出
Ping 操作提供以下输出:
| 操作输出类型 | 可用性 |
|---|---|
| 案例墙附件 | 不可用 |
| 案例墙链接 | 不可用 |
| 案例墙表 | 不可用 |
| 扩充信息表 | 不可用 |
| JSON 结果 | 不可用 |
| 输出消息 | 可用 |
| 脚本结果 | 可用 |
输出消息
Ping 操作可以返回以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
|
操作成功,凭据有效。 |
Failed to connect to Secret Manager! Error is
ERROR_REASON |
操作失败。 检查您的身份验证凭据、项目 ID 配置、 IAM 权限或网络连接。 |
脚本结果
下表列出了使用 Ping 操作时脚本结果输出的值:
| 脚本结果名称 | 值 |
|---|---|
is_success |
true 或 false |
作业
同步集成凭据作业
使用 Secret Manager - 同步集成凭据作业 , 系统地将配置参数从 Secret Manager 条目同步到自动更新平台集成实例、连接器和 后台作业配置。
此后台同步任务在全局范围内运行,不会在单个 实体上执行。
作业行为
该作业会解析结构化配置对象以查询 Secret 定义, 并处理两种版本引用样式:
- 隐式表示法:格式为
projects/<project_id>/secrets/<secret_name>。 同步任务会在处理期间动态解析并从 Secret Manager 检索最新的有效版本。 - 显式表示法:格式为
projects/<project_id>/secrets/<secret_name>/versions/<version_id>。同步 任务会检索该确切的固定版本条目,即使其状态在 中标记为“无效”也是如此 Google Cloud。
Secret Manager 中的每个目标 Secret 路径都必须包含有效的 JSON 对象字符串,该字符串将参数键直接映射到其各自的 凭据值。
凭据映射配置示例
{
"integration_instances": {
"AzureActiveDirectory_1": {
"Client ID": "projects/154371241292/secrets/AzureActiveDirectory"
}
},
"connectors": {
"Crowdstrike - Alerts Connector": {
"Client Secret": "projects/154371241292/secrets/CrowdstrikeConnectorSecret",
"Client ID": "projects/154371241292/secrets/CrowdstrikeConnectorID"
},
"Microsoft Graph Mail Connector": {
"Client Secret": "projects/154371241292/secrets/GraphConnectorSecret",
"Client ID": "projects/154371241292/secrets/GraphConnectorID/versions/3"
}
},
"jobs": {
"Sync Incidents": {
"API Root": "projects/154371241292/secrets/API_Root/versions/2"
}
}
}
作业输入
同步集成凭据作业 需要以下配置 参数:
| 参数 | 说明 |
|---|---|
Environment Name |
必填。 用于查询目标配置的环境上下文的名称。 默认值为 |
Credential Mapping |
必填。 一个有效的 JSON 字符串,用于构建集成 实例、连接器和作业映射到其显式 Secret Manager 资源坐标的目标位置。 |
Service Account JSON |
可选。 专用于授权此 后台同步作业的服务帐号密钥 JSON 内容。 |
Project ID |
可选。 用于托管目标资源的默认 Google Cloud 项目 ID 范围。 |
Workload Identity Email |
可选。 如果运行在启用了 Workload Identity 的基础架构中,则要模拟的应用默认凭据服务帐号电子邮件地址 Google Cloud 。 |
Verify SSL |
必填。 在同步任务期间验证 SSL 证书端点。默认启用
( |