数据 RBAC 概览

基于数据角色的访问权限控制 (数据 RBAC) 是一种安全模型,它使用各个用户角色来限制用户对组织内数据的访问权限。借助数据 RBAC,管理员可以定义范围并将其分配给用户,以帮助确保用户只能访问其工作职能所需的数据。

本页面简要介绍了数据 RBAC,并帮助您了解标签和范围如何协同工作以定义数据访问权限。

数据 RBAC 与特征 RBAC 之间的区别

数据 RBAC 和特征 RBAC 都是用于控制系统内访问权限的方法,但它们侧重于不同的方面。

特征 RBAC 控制对系统中特定功能的访问权限。它根据用户的角色来确定其可以使用哪些功能。例如,初级分析师可能只能查看信息中心,但不能创建或修改检测规则,而高级分析师可能具有创建和管理检测规则的权限。如需详细了解特征 RBAC,请参阅使用 IAM 配置功能访问权限控制

数据 RBAC 控制对系统中特定数据或信息的访问权限。它控制用户是否可以根据其角色查看、修改或删除数据。例如,在客户关系管理 (CRM) 系统中,销售代表可能有权访问客户联系人数据,但无权访问财务数据,而财务经理可能有权访问财务数据,但无法访问客户联系人数据。

数据 RBAC 和特征 RBAC 通常一起使用,以提供全面的访问权限控制系统。例如,系统可能会允许用户访问特定功能(特征 RBAC),然后在该特征中,他们对特定数据的访问权限可能会根据用户的角色(数据 RBAC)受到限制。

制定实施计划

如需规划实现,请对照您的组织要求查看 Google SecOps 预定义 Google SecOps 角色和权限列表。制定一个策略来定义组织所需的范围 并为传入的数据添加标签确定您的组织中的哪些成员必须有权访问与这些范围关联的数据。如果您的组织需要的 IAM 政策与预定义的 Google SecOps 角色不同,请创建自定义角色以满足这些要求。

用户角色

用户可以拥有范围的数据访问权限(范围限定的用户),也可以拥有全局数据访问权限(全局用户)。

  • 分区用户可以访问的数据有限,具体取决于分配的范围。这些范围将其公开范围和操作限制为特定数据。下表详细说明了与分区访问关联的具体权限。

  • 全局用户不会被分配范围,并且对 Google SecOps 中的所有数据拥有不受限制的访问权限。下表详细说明了与全球访问权限关联的特定权限。

数据 RBAC 管理员可以创建范围并将其分配给用户,以控制其在 Google SecOps 中的数据访问权限。如需将用户限制为仅访问特定范围,您必须为其分配 Chronicle API Restricted Data Access (roles/chronicle.restrictedDataAccess) 角色以及预定义角色或自定义角色。Chronicle API Restricted Data Access 角色可将用户标识为限定范围的用户。您无需为需要全局数据访问权限的用户分配 Chronicle Restricted Data Access 角色。

可向用户分配以下角色:

权限类型 角色 权限
预定义的全球访问权限 全局用户可被授予任何预定义的 IAM 角色
预定义的范围只读权限 Chronicle API Restricted Data Access (roles/chronicle.restrictedDataAccess) 和 Chronicle API Restricted Data Access Viewer (roles/chronicle.restrictedDataAccessViewer) Chronicle API 受限数据访问权限查看者
自定义范围的访问权限 Chronicle API Restricted Data Access (roles/chronicle.restrictedDataAccess) 和自定义角色 功能中的自定义权限
自定义全球访问权限 chronicle.globalDataAccessScopes.permit 权限和自定义角色 功能中的全局权限

以下是表中显示的每种访问权限类型的说明:

预定义的全球访问权限:需要访问所有数据的用户通常需要此访问权限。您可以根据所需权限为用户分配一个或多个角色。

预定义范围的只读权限:此访问权限适用于需要只读权限的用户。Chronicle API Restricted Data Access 角色可将用户标识为范围用户。Chronicle API Restricted Data Access Viewer 角色可向用户授予在其功能范围内查看的权限。

自定义范围的访问权限:Chronicle API Restricted Data Access 角色将用户标识为范围的用户。自定义角色用于指定用户可以使用的功能。添加到 Chronicle API Restricted Data Access 角色的范围指定了用户可以在功能中访问的数据。

自定义全局访问权限:此访问权限适用于需要为其分配的功能授予不受限制权限的用户。如需向用户授予自定义全局访问权限,除了分配给用户的自定义角色外,您还必须指定 chronicle.globalDataAccessScopes.permit 权限。

使用范围和标签进行访问权限控制

Google SecOps 可让您使用范围控制用户的数据访问权限。借助标签来定义范围,标签用于定义范围内的用户有权访问的数据。在提取期间,系统会以标签的形式为数据分配元数据,例如命名空间(可选)、提取元数据(可选)和日志类型(必需)。这些是在注入期间应用于数据的默认标签。此外,您也可以创建自定义标签。 您可以使用默认标签和自定义标签来定义范围,以及这些范围将定义的数据访问权限级别。

通过允许和拒绝标签实现数据可见性

每个范围包含一个或多个“允许访问”标签以及可选的“拒绝访问”标签。允许访问标签会授予用户访问与标签关联的数据的权限。拒绝访问权限标签会拒绝用户访问与该标签关联的数据。拒绝访问权限标签会替换限制用户访问权限的允许访问标签。

在范围定义中,同一类型(例如日志类型)的允许访问标签使用 OR 运算符合并,而不同类型的标签(例如日志类型和自定义标签)则使用 AND 运算符合并。拒绝访问权限标签使用 OR 运算符合并。当一个范围内应用了多个拒绝访问标签时,如果这些标签与其中任一标签匹配,则访问会被拒绝。

以一个 Cloud Logging 系统为例,该系统使用以下标签类型对日志进行分类:

日志类型:访问、系统、防火墙

命名空间:App1、App2、数据库

严重级别:严重、警告

假设有一个名为“受限日志”的范围,该范围具有以下访问权限:

标签类型 允许使用的值 拒绝的值
日志类型 访问、防火墙 系统
命名空间 App1 App2、数据库
严重级别 警告 严重

范围定义如下所示:

允许(Log type: "Access" OR "Firewall") AND (Namespace: "App1") AND (Severity: "Warning")

拒绝Log type: "System" OR Namespace: App2 OR Namespace: Database OR Severity: "Critical"

与范围匹配的日志示例:

  • 从 App1 访问日志,严重级别为:警告
  • 来自 App1 的防火墙日志(严重级别为:警告)

与范围不匹配的日志示例:

  • App1 中的系统日志,严重级别为:警告
  • 从数据库访问日志(严重级别为:警告)
  • 来自 App2 的防火墙日志(严重级别为:严重)

丰富活动中的数据公开范围

丰富事件是指使用原始日志数据包含的内容之外的其他上下文和信息进行了增强的安全事件。只有在范围内的基本事件可以在范围内访问,并且任何扩充标签都不包含范围的任何拒绝标签时,才能在该范围内访问增强型事件。

例如,假设一个原始日志指示来自某个 IP 地址的失败登录尝试,并且具有丰富的标签 user_risk: high(表示高风险用户)。范围具有拒绝标签 user_risk: high 的用户无法查看高风险用户的登录失败尝试。

数据 RBAC 对 Google Security Operations 功能的影响

配置数据 RBAC 后,用户会开始在 Google Security Operations 功能中看到过滤后的数据。具体影响取决于该功能与底层数据的集成方式。如需了解数据 RBAC 对每项功能的影响,请参阅数据 RBAC Google Security Operations 功能的影响

后续步骤