将 Secret Manager 与 Google SecOps 集成

本文档介绍了如何将 Secret Manager 与 Google Security Operations 集成。

使用场景

Secret Manager 集成使用 Google SecOps 功能来支持以下使用场景:

  • 集中管理凭据:通过在 SOAR 配置文件和脚本中集中 存储、审核和管理应用 凭据,消除嵌入其中的硬编码应用凭据 Google Cloud。
  • 同步参数:使用 后台同步作业自动执行配置管理,以从 Google Cloud Secret Manager 中提取条目并更新集成实例、连接器和作业。

准备工作

在 Google SecOps 平台中配置集成之前,请按照以下步骤验证您是否已配置 环境:

  1. 创建服务账号
  2. 为您的项目启用所需的 API
  3. 选择并配置以下身份验证方法之一:
    • 选项 1:JSON 密钥:此方法依赖于静态的 长期有效的密钥文件。仅当您的环境中没有 Workload Identity 时,才使用此方法。
    • 选项 2:Workload Identity(推荐):此 方法使用短期有效的临时访问令牌,通过服务帐号 模拟来消除存储任何 Secret 的需求。

创建服务帐号

如需为集成创建服务帐号,请完成以下步骤:

  1. 在 Google Cloud 控制台中,前往 IAM 和管理 > 服务账号 ,然后选择您的项目。

    转到“服务账号”

  2. 点击创建服务账号

  3. 提供名称和说明,然后点击完成 以创建账号。

  4. 根据您选择的身份验证方法,向服务帐号授予所需的 IAM 权限:

    • 对于服务账号密钥身份验证,请授予 Secret Manager Secret Accessor (roles/secretmanager.secretAccessor) 角色。
    • 对于 Workload Identity 身份验证,请向要模拟的目标服务帐号授予 Secret Manager Secret Accessor (roles/secretmanager.secretAccessor) 角色,并确保运行时环境的身份具有 Service Account Token Creator (roles/iam.serviceAccountTokenCreator) 角色。

为您的项目启用所需的 API

  1. 在 Google Cloud 控制台中,前往 API 和服务

    进入“API 和服务”

  2. 点击启用 API 和服务

  3. 搜索并为您的项目启用以下 API:

配置 JSON 密钥

您可以使用静态 JSON 密钥文件或工作负载身份联合来对集成进行身份验证。为了最大限度地提高环境安全性,请使用 Workload Identity 方法。仅当您的基础架构不支持 Workload Identity 时,才使用 JSON 密钥方法,因为静态密钥需要手动轮换,并且会增加凭据泄露风险。

如需生成对集成进行身份验证所需的 JSON 密钥文件,请完成以下步骤:

  1. 在 Google Cloud 控制台中,前往 IAM 和管理 > 服务账号 ,然后选择 您创建的服务帐号。

    转到“服务账号”

  2. 前往密钥 标签页。

  3. 点击添加密钥

  4. 选择创建新密钥

  5. 对于密钥类型,选择 JSON ,然后点击创建 。JSON 文件会下载到您的计算机。

  6. 复制此文件的全部内容,并在集成配置期间将其粘贴到 Service Account JSON 中。

配置 Secret Manager 权限

请按照以下步骤授予集成访问项目中存储的 Secret 材料所需的管理权限: Google Cloud

  1. 在 Google Cloud 控制台中,前往 IAM 和管理 > IAM
  2. 从主账号列表中找到您创建的服务帐号,然后点击 修改主账号 Edit principal
  3. 点击添加其他角色
  4. 在角色选择字段中,搜索并选择 Secret Manager Secret Accessor
  5. 点击保存

配置 Workload Identity 凭据

选择此方法或 JSON 密钥方法来对集成进行身份验证。Workload Identity 是推荐的更安全的方法,因为它使用短期有效的临时访问令牌,通过服务帐号模拟来最大限度地降低长期有效的 Secret 凭据泄露风险。

识别唯一实例身份

如需使用 Workload Identity,您必须授予 Google SecOps 实例模拟服务帐号的权限。此步骤允许实例安全地访问 Google Cloud 资源。

  1. 在 Google SecOps 中,前往 内容中心 > 响应集成
  2. 选择您要配置的集成,然后在 Workload Identity Email 字段中输入您的服务帐号电子邮件地址。
  3. 点击保存 > 测试。测试预计会失败。
  4. 点击 Test 右侧的 close_small,然后在错误消息中搜索以 gke-init-python@...soar-python@... 开头的身份电子邮件地址。

    复制此唯一的电子邮件地址,并在集成配置期间将其粘贴到 Workload Identity Email 中。

在 中授权实例身份 Google Cloud

检索到 Google SecOps 实例的唯一身份后,您必须授权该实例访问您的 Google Cloud 资源。此步骤可启用服务帐号模拟,使平台能够生成短期有效的令牌并代表您执行操作,而无需使用静态密钥。

  1. 在 Google Cloud 控制台中,前往 IAM 和管理 > 服务账号
  2. 选择目标服务帐号,然后依次前往权限 > 授予访问权限
  3. 将唯一的电子邮件地址粘贴到新的主账号 字段中。
  4. 分配 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 证书。

默认启用 (True)。

如需了解如何在 Google SecOps 中配置集成,请参阅配置 集成

您可以稍后根据需要进行更改。配置集成实例后,您可以在剧本中使用它。如需详细了解 如何配置和支持多个实例,请参阅支持 多个实例

操作

如需详细了解操作,请参阅 从工作台响应待处理的操作执行 人工处置措施

Ping

使用 Ping 操作验证连接,并根据目标 Secret Manager 实例验证配置 参数。

此操作主要用于在 Marketplace 的 集成配置页面中进行即时连接测试,不会在 单个 Google Cloud 实体上执行。

操作输入

此操作不需要任何输入参数。

操作输出

Ping 操作提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
案例墙表 不可用
扩充信息表 不可用
JSON 结果 不可用
输出消息 可用
脚本结果 可用
输出消息

Ping 操作可以返回以下输出消息:

输出消息 消息说明

Successfully connected to the Secret Manager server with the provided connection parameters!

操作成功,凭据有效。
Failed to connect to Secret Manager! Error is ERROR_REASON

操作失败。

检查您的身份验证凭据、项目 ID 配置、 IAM 权限或网络连接。

脚本结果

下表列出了使用 Ping 操作时脚本结果输出的值:

脚本结果名称
is_success truefalse

作业

同步集成凭据作业

使用 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

必填。

用于查询目标配置的环境上下文的名称。

默认值为 Default Environment。对于以 共享环境为目标的设置,请提供 *

Credential Mapping

必填。

一个有效的 JSON 字符串,用于构建集成 实例、连接器和作业映射到其显式 Secret Manager 资源坐标的目标位置。

Service Account JSON

可选。

专用于授权此 后台同步作业的服务帐号密钥 JSON 内容。

Project ID

可选。

用于托管目标资源的默认 Google Cloud 项目 ID 范围。

Workload Identity Email

可选。

如果运行在启用了 Workload Identity 的基础架构中,则要模拟的应用默认凭据服务帐号电子邮件地址 Google Cloud 。

Verify SSL

必填。

在同步任务期间验证 SSL 证书端点。默认启用 (True)。

需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。