数据 RBAC 概览
基于角色的数据访问控制 (简称 数据 RBAC )是一种安全模型,它使用个人用户角色来限制用户对组织内数据的访问权限。 借助数据 RBAC,管理员可以定义范围并将其分配给用户,以帮助确保用户只能访问其工作职能所需的数据。
本页概述了数据 RBAC,并帮助您了解标签和范围如何协同工作来定义数据访问权限。
数据 RBAC 与功能 RBAC 的区别
数据 RBAC 和功能 RBAC 都是用于控制系统内访问权限的方法,但它们侧重于不同的方面。
功能 RBAC 用于控制对系统内特定功能或特性的访问权限。它会根据用户的角色确定用户可以访问哪些功能。例如,初级分析师可能只能查看信息中心,而不能创建或修改检测规则;高级分析师可能拥有创建和管理检测规则的权限。如需详细了解 功能 RBAC,请参阅 使用 IAM 配置功能访问权限控制。
数据 RBAC 用于控制对系统内特定数据或信息的访问权限。它会根据用户的角色控制用户是否可以查看、修改或删除数据。例如,在客户关系管理 (CRM) 系统中,销售代表可能可以访问客户联系数据,但不能访问财务数据;而财务经理可能可以访问财务数据,但不能访问客户联系数据。
数据 RBAC 和功能 RBAC 通常一起使用,以提供全面的访问权限控制系统。例如,用户可能被允许访问特定功能(功能 RBAC),然后在该功能内,他们对特定数据的访问权限可能会根据其角色受到限制(数据 RBAC)。
规划实现
如需规划实现,请查看 Google Security Operations
预定义的 Google SecOps 角色和权限
列表,并使其与组织的需求保持一致。制定策略来定义范围并为传入数据添加标签。确保您拥有 Role Viewer (roles/iam.roleViewer) 角色来管理范围。
确定哪些成员必须有权访问这些范围中的数据。
如果您的组织需要超出 预定义 Google SecOps 角色的 IAM 政策,请创建 自定义角色 以支持特定要求。
用户角色
用户可以拥有范围限定的数据访问权限(范围限定的用户),也可以拥有全局数据访问权限(全局用户)。
范围限定的用户只能根据分配的范围访问数据。这些范围会将他们的可见性和操作限制为特定数据。下表详细介绍了与范围限定的访问权限关联的特定权限。
全局用户没有分配的范围,可以不受限制地访问 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 Restricted Data Access Viewer |
| 自定义范围限定的访问权限 | Chronicle API Restricted Data Access (roles/chronicle.restrictedDataAccess) 和 自定义角色(用于功能 RBAC 定义)
|
功能内的自定义权限 |
| 自定义全局访问权限 | chronicle.globalDataAccessScopes.permit 权限和 Chronicle API Global Data Access (roles/globalDataAccess)
|
功能内的全局权限 |
以下是对表中显示的每种访问类型的说明:
预定义的全局访问权限: 需要访问所有数据的用户通常需要此访问权限。您可以根据所需的权限为用户分配一个或多个角色。
预定义的范围限定的只读访问权限: 此访问权限适用于需要只读访问权限的用户。Chronicle API Restricted Data Access 角色会将用户标识为范围限定的用户。Chronicle API Restricted Data Access Viewer 角色可让用户在其功能内查看数据。
自定义范围限定的访问权限: Chronicle API Restricted Data Access 角色会将用户标识为范围限定的用户。自定义角色指定了用户可以访问的功能。添加到 Chronicle API Restricted Data Access 角色的范围指定了用户可以在功能中访问的数据。
如需验证 RBAC 自定义范围是否正常运行,请在创建自定义角色时添加 chronicle.dataAccessScopes.list
权限。但是,请勿添加chronicle.DataAccessScopes.permit 或
chronicle.globalDataAccessScopes.permit 权限。如果您已使用预构建的 Chronicle API Editor
或 Chronicle API Admin 作为自定义角色的起点,则可能会添加这些权限。
自定义全局访问权限: 此访问权限适用于需要在分配的功能内拥有不受限制的权限的用户。如需为用户授予自定义全局访问权限,您必须指定
chronicle.globalDataAccessScopes.permit 权限,以及分配给用户的自定义角色。
信息中心的用户角色
对信息中心的访问权限受两个主要因素控制:用户的 功能角色 和 数据访问范围 。这两个元素的组合决定了信息中心访问权限。 用户分配的角色会直接更改其可用的界面和功能。 以下是为用户授予信息中心访问权限的最常见的预定义角色:
| 访问类型 | 角色 | 说明 |
|---|---|---|
| Viewer | roles/chroniclesiem.viewer |
授予只读访问权限。用户可以打开并 与之互动所有信息中心,但无法创建或修改信息中心。 |
| 编辑者 | roles/chroniclesiem.editor |
授予对所有数据和所有权限的访问权限,包括创建、修改和删除自定义信息中心的功能。 |
| 管理员 | roles/chroniclesiem.admin |
授予完整权限,与“编辑者”角色类似,可以访问所有数据。 |
| 受限查看者 | roles/chroniclesiem.restrictedViewer |
与“Viewer”角色类似,但信息中心中显示的所有数据都会根据用户分配的日志范围(数据 RBAC)进行过滤。 |
如需详细了解数据 RBAC 和功能 RBAC,请参阅 数据 RBAC 与功能 RBAC 的区别。
自定义角色的权限
您可以通过创建自定义角色来定义精细的权限。
以下权限适用于信息中心:
chronicle.dashboards.list:允许用户查看可用信息中心的列表。chronicle.dashboards.get:允许用户打开和查看信息中心内容。chronicle.dashboards.create:允许用户创建新信息中心。chronicle.dashboards.update:允许用户修改现有信息中心并保存更改。chronicle.dashboards.delete:允许用户删除自定义信息中心。
例如,您可以创建一个仅具有
chronicle.dashboards.create 和 chronicle.dashboards.list permissions 权限的信息中心创建者自定义角色。
拥有此角色的用户可以创建新信息中心,但无法修改现有信息中心。
使用范围和标签进行访问权限控制
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 功能的影响。
后续步骤
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。