数据访问权限控制

更新时间:
复制 MD 格式

Ranger是云原生多模数据库 Lindorm管理多用户数据访问权限的安全组件。本文主要介绍基于Lindorm Ranger安全组件的功能实践,分别介绍通过Ranger服务页面和通过SQL来配置用户权限的方法,帮助您轻松地配置不同用户的访问权限,让数据访问更加高效、安全、可控。

前提条件

开通Ranger

说明

如需使用Ranger功能,请联系Lindorm技术支持(钉钉号:s0s3eg3)开通。

  1. 登录Lindorm管理控制台。

  2. 在页面左上角,选择实例所属的地域。

  3. 在实例列表页,单击目标实例ID或者目标实例所在行操作列的管理。

  4. 在左侧导航栏,单击数据库连接。

  5. 单击计算引擎页签,然后单击开通Ranger地址。

操作步骤

登录Ranger

  1. 在计算引擎页签,获取Ranger地址,并单击该地址打开Ranger服务页面。

    Ranger地址区域提供专有网络和公网两种访问地址,格式为HTTP地址,端口为6080。

  2. 使用Lindorm宽表引擎用户名和密码登录Ranger服务。

使用Ranger

Ranger的访问权限策略配置是根据您对资源的访问需求来授予特定权限,用户信息将从宽表引擎中同步。以下是权限策略模型和权限策略创建方法。

Ranger Policy模型

Ranger Policy模型由两个主要部分构成:

  • 指定Policy适用的资源,例如Hive数据库、表和列。

  • Policy中特定用户、用户组或角色的访问权限。

下图为查询数据时,Policy的检查方法:

image
重要

root用户作为系统管理员账户,拥有系统最高权限,不受上述流程约束。

创建权限策略

  1. 单击主界面的ldps_service,进入权限列表页面。

    进入权限列表页面后,默认显示 Access 页签,页面顶部还包含 Masking 和 Row Level Filter 页签。页面中部提供搜索框和 Add New Policy 按钮,下方策略列表展示已有的默认策略及其启用状态。

  2. 初始状态下,Ranger存在一些默认的访问权限列表,可以先忽略,单击Add New Policy,进入创建权限页面。

    重要
    • Ranger存在一个默认的用户组public,代表所有用户。

    • 初始状态下,存在默认的权限策略列表,定义了部分初始权限,如:public用户组具有创建数据库和在default数据库下创建表格的权限。您可以选择删除这些默认策略或将其设置为禁用(Disabled)状态,以确保仅让新创建的权限策略生效。

  3. 创建权限策略页面共包含四部分内容,分别是权限策略信息、涉及的资源、允许权限,和拒绝权限。配置详情如下:

    • 权限策略信息(Policy Details):添加策略名、标签,和描述等。此外,还可以设置策略是否生效,是否覆盖其他权限策略,以及该策略的有效时间期限。

    • 涉及的资源(Resources):添加需要分配权限的资源,如数据库、表、列等。如果需要添加涉及多个数据库的权限控制策略,可以单击+Add Resource添加更多资源。

      每个资源层级右侧提供 Include/Exclude 切换开关,用于控制对所选资源执行包含或排除策略。

    • 允许权限(Allow Conditions):

      ①:设置赋予特定用户、用户组或角色针对上述资源的权限。

      操作方式:在Select Roles、Select Groups、Select User输入框的下拉列表中,选择指定角色、用户组或用户,然后单击Add Permissions勾选需要赋予的权限。

      ②:设置需要被排除在外的允许权限(Exclude from Allow Conditions)。例如:您有个用户组sales_group,包含user1和user2,并且您已经设置了sales_group具有products数据库的所有权限,但是出于安全的考虑,您认为user2不应该具有删除products数据库的权限,此时您可以在Exclude from Allow Conditions的Select User中选取user2,然后单击Add Permissions勾选Drop。

      重要

      Ranger的权限策略管理是以资源(数据库、表、列等)为单位的,如果新添加的策略设置的资源和已有策略存在重复,会提示错误。此时,您可以直接编辑导致重复的策略,并在允许的用户权限部分单击image,添加新用户及其权限。

    • 拒绝权限(Deny Conditions):

      说明

      若您设置Deny All Other Accesses为True,表示拒绝所有权限。

      ①:设置拒绝赋予特定用户、用户组或角色的权限。

      操作方式:在Select Roles、Select Groups、Select User输入框的下拉列表中,选择指定角色、用户组或用户,然后单击Add Permissions勾选需要拒绝的权限。

      ②:设置需要被排除在外的拒绝权限(Exclude from Deny Conditions)。您可以在此处设置需要豁免的用户、用户组或角色。例如:您已经设置了拒绝sales_group用户组访问customer表的所有权限,但希望保留该组中user1查询customer表的权限。此时,您可以在Select User中选取user1,然后单击Add Permissions勾选Select。同时,您需要在某个Policy的Allow Conditions中赋予user1对customer表的Select权限,user1才可以查customer表。

  4. 单击页面底部的Save,完成新策略的创建。提示保存完成后,新策略就会生效。