数据 RBAC 概览
基于角色的数据访问控制 (data 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 受限数据访问权限角色。
您可以向用户分配以下角色:
访问权限类型 | 角色 | 权限 |
---|---|---|
预定义的全球访问权限 | 您可以向全局用户授予任何预定义的 IAM 角色。 | |
预定义的范围限定型只读权限 | Chronicle API Restricted Data Access (roles/chronicle.restrictedDataAccess ) 和 Chronicle API Restricted Data Access Viewer (roles/chronicle.restrictedDataAccessViewer )
|
Chronicle API Restricted Data Access Viewer |
自定义范围访问 | 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 受限数据访问角色的范围会指定用户可以在相应功能中访问的数据。为确保 RBAC 自定义镜重正常运行,请勿在创建自定义角色时添加 chronicle.DataAccessScopes.permit
或 chronicle.globalDataAccessScopes.permit
权限。如果您已将预构建的 Chronicle API Editor 或 Chronicle API Admin 用作自定义角色的起点,则这些权限可能会包含在内。
自定义全局访问权限:此访问权限适用于需要在其分配的功能中拥有不受限权限的用户。如需向用户授予自定义全局访问权限,除了向用户分配自定义角色之外,您还必须指定 chronicle.globalDataAccessScopes.permit
权限。
使用镜重和标签进行访问权限控制
借助 Google SecOps,您可以使用镜重范围来控制用户对数据的访问权限。范围是借助标签定义的,标签用于定义范围内用户有权访问的数据。在提取过程中,系统会以标签的形式将元数据分配给数据,例如命名空间(可选)、提取元数据(可选)和日志类型(必需)。这些是提取期间应用于数据的默认标签。此外,您还可以创建自定义标签。您可以使用默认标签和自定义标签来定义镜重范围以及镜重范围将定义的数据访问权限级别。
使用允许和禁止标签控制数据公开范围
每个范围都包含一个或多个允许访问标签,并且可以包含一个或多个拒绝访问标签。“允许访问”标签可向用户授予对与该标签关联的数据的访问权限。拒绝访问标签会禁止用户访问与该标签关联的数据。在限制用户访问权限时,拒绝访问权限标签会替换允许访问权限标签。
在范围定义中,允许访问同一类型(例如日志类型)的标签时,使用 OR 运算符进行组合;允许访问不同类型(例如日志类型和自定义标签)的标签时,使用 AND 运算符进行组合。拒绝访问权限标签是使用 OR 运算符组合在一起的。在某个范围内应用多个拒绝访问标签后,如果请求与其中任一标签匹配,则会被拒绝访问。
例如,假设有一个 Cloud Logging 系统,它使用以下标签类型对日志进行分类:
日志类型:访问、系统、防火墙
命名空间:App1、App2、数据库
严重程度:严重、警告
假设有一个名为“Restricted logs”(受限日志)的范围,具有以下访问权限:
标签类型 | 允许使用的值 | 拒绝的值 |
---|---|---|
日志类型 | 访问权限、防火墙 | 系统 |
命名空间 | 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 安全运营功能中看到经过过滤的数据。具体影响取决于相应地图项与底层数据的集成方式。如需了解数据 RBAC 对各项功能的影响,请参阅数据 RBAC 对 Google 安全运营功能的影响。