将 SOAR 权限迁移到 IAM

支持范围:

本文档面向需要将其环境从现有 SOAR 权限组迁移到 Google Cloud Identity and Access Management (IAM) 以进行访问权限控制的 Google Security Operations 统一客户和 SOAR 独立用户。 如需观看此过程的视频演示,请参阅 SOAR IAM 迁移视频

Google Cloud 控制台验证流程通过执行以下关键步骤,自动完成从 SOAR 权限到Google Cloud IAM 的转换:

  • 读取现有权限配置,包括自定义权限组和用户分配。
  • 生成复制现有权限组的自定义 IAM 角色。
  • 将现有用户和群组映射到新创建的 IAM 角色,以确保保留所有访问权限。
  • 创建 IAM 政策,将用户和群组绑定到其分配的角色。

准备工作

在开始迁移之前,请确认满足以下要求:

  • 如果您是 Google SecOps 统一客户,请确保使用 Cloud IAM 管理平台 SIEM 端的角色和权限。如需了解详情,请参阅将旧版 RBAC 迁移到功能 RBAC。

  • 请确保您在 Google Cloud 控制台和 SOAR 中使用的是同一身份(电子邮件地址或账号)。

  • IdP 群组映射:如果您使用员工身份联合进行身份验证,请验证所有用户均已映射到群组映射页面中的身份提供方 (IdP) 群组。如需了解 IdP 群组映射,请参阅映射平台中的用户。迁移工具会使用这些映射来创建脚本,以将用户邮箱或群组绑定到 IAM 主账号。

  • 邮箱群组映射:如果您使用 Cloud Identity 进行身份验证,请验证所有用户均已映射到群组映射页面中的邮箱群组。如需了解邮箱映射,请参阅使用 Cloud Identity 在平台中映射用户。迁移工具会使用这些映射来创建脚本,以将用户邮箱或群组绑定到 IAM 主账号。

  • 可选:SOAR API 密钥。如果您没有 SOAR 权限,无法在群组映射页面中映射当前用户,则可以请 SOAR 管理员提供 SOAR API 密钥,并使用该密钥生成脚本。

SOAR 管理员应执行以下过程中的步骤:

  1. 在 Google SecOps 平台中,依次前往 SOAR 设置 > 高级 > 权限组(API 密钥)。
  2. 创建一个权限组,确保勾选设置模块和“设置”下的选项。
  3. 前往 SOAR 设置 > 高级 > API 密钥。
  4. 添加新的 API 密钥,并确保选择您创建的权限组。
  5. 复制生成的 API 密钥。

迁移后,如果存在未解决的问题,请点击停用 IAM,以还原从权限组到 IAM 角色的迁移。新创建的 IAM 角色和绑定不会被删除。

如需查看每个角色所需权限的完整列表,请参阅所需的 IAM 权限。

您可以通过以下两种方式迁移 SOAR 权限:

使用 Google Cloud CLI 迁移 SOAR 权限

如需将 SOAR 权限迁移到 Google Cloud IAM,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往 Google SecOps 管理设置。
  2. 点击 SOAR IAM 迁移标签页。 SOAR IAM 迁移
  3. 在迁移角色绑定部分中,复制 Google Cloud CLI 命令。当系统提供指定新条件的选项时,选择 2。无。。
  4. 在 Google Cloud 工具栏上,点击激活 Cloud Shell。
  5. 在终端窗口中,粘贴 Google Cloud CLI 命令,然后按 Enter 键。 粘贴命令
  6. 确保脚本已成功执行。
  7. 返回 Google Cloud 控制台,然后在完成此任务部分中,点击启用 IAM。 粘贴命令

使用 Terraform 迁移 SOAR 权限

如需使用 Terraform 将 SOAR 权限迁移到 Google Cloud IAM,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往 Google SecOps 管理设置。
  2. 点击 SOAR IAM 迁移标签页。 SOAR IAM 迁移
  3. 在迁移角色绑定部分中,复制 Google Cloud CLI 命令。
  4. 前往 Terraform 代码库,将 Google Cloud CLI 命令映射到其对应的 Terraform 命令。下表将 Google Cloud CLI 创建自定义角色命令与 Terraform 命令进行了映射。
gcloud 标志 Terraform 参数 备注
ROLE_ID(位置) role_id 在 Terraform 中,请勿添加 projects/PROJECT_ID/roles/ 前缀。仅使用 ID 字符串(例如 myCustomRole)。
--project project 定义了自定义角色的项目的 ID。
--title title 人类可读的角色标题。
--description description 角色用途和权限的摘要。
--permissions permissions gcloud 接受以逗号分隔的字符串。Terraform 需要一个字符串列表:["perm.a", "perm.b"]。
--stage stage 有效值:ALPHA、BETA、GA、DEPRECATED、DISABLED、EAP。

Google Cloud CLI 到 Terraform 的映射示例

Google Cloud CLI 命令:

gcloud iam roles create SOAR_Custom_managedUser_google.com --project="{customer project}" 
--title="SOAR Custom managedUser Role" 
--description="SOAR Custom role generated for IDP Mapping Group ManagedUser" 
--stage=GA 
--permissions=chronicle.cases.get

Terraform 命令:

resource "google_project_iam_custom_role" "{terraform_name}" {
  role_id     = "SOAR_Custom_managedUser_google.com"
  title       = "SOAR Custom managedUser Role"
  project     = "{customer project}"
  stage       = "GA"
  permissions = [
    #This is an example!
    "chronicle.cases.get"
  ]
}

IAM 政策绑定(分配角色)

使用 Google Cloud CLI projects add-iam-policy-binding 时,您会向特定成员(用户、服务账号或群组)授予特定角色。下表将 Google Cloud CLI 命令与 Terraform 命令进行了映射。映射命令以分配 IAM 角色。

gcloud 标志 Terraform 参数 备注
PROJECT_ID(位置) project 目标项目的 ID。
--member member 主账号身份(例如 user:email、serviceAccount:email、group:email)。
--role role 角色 ID。对自定义角色使用完整路径 (projects/ID/roles/NAME),对标准角色使用简称 (roles/NAME)。

角色分配示例

Google Cloud CLI 命令:

gcloud projects add-iam-policy-binding
 {customer project}
--member="user:alice@example.com" 
--role="projects/{customer project}/roles/SOAR_Custom_managedUser_google.com"

Terraform 命令:

resource "google_project_iam_member" "{terraform_name}" {
  project = "{customer project}"
  role    = "projects/{customer project}/roles/SOAR_Custom_managedUser_google.com"
  member  = "user:alice@example.com"
}

迁移后

改用 IAM 权限后,您用于调用 API 的每个 curl 命令都必须通过映射的服务账号(在 IDP 映射群组中映射)或至少登录过平台一次的用户发送。

常见问题解答