首页 > 其他分享 >详解Apache Sentry->Ranger平滑升级方案

详解Apache Sentry->Ranger平滑升级方案

时间:2023-02-25 15:33:49浏览次数:56  
标签:sentry 用户组 Sentry 用户 Ranger 同步 Apache

摘要:本文主要探讨如何平滑解决sentry到ranger升级过程中的权限迁移问题。

本文分享自华为云社区《【平滑上云】Apache Sentry->Ranger平滑升级方案》,作者: 啊喔YeYe 。

背景介绍

CDH是Apache Hadoop和相关项目的最完整、最受测试和最流行的发行版,常常是许多客户建设IDC大数据平台中的首选。早期CDH版本只提供sentry的权限管理方案,后期新版本提供ranger作为替换方案,而CDH只有商业版本提供sentry升级ranger的服务,开源社区版并未提供这样的能力。本文主要探讨如何平滑解决sentry到ranger升级过程中的权限迁移问题。

Sentry权限介绍

Sentry是典型的RABC权限管理系统,通过用户-用户组-角色关联,最终通过role来进行赋权,一般只用于表级授权,存在三种权限类型:select/insert/all(*)。

sentry关键表分析

  • sentry_role: 角色列表
  • sentry_group;用户组列表
  • sentry_role_group_map;角色、用户映射关系表
  • sentry_db_privilege: 表权限信息表
  • sentry_role_db_privilege_map: 权限、角色映射关系表

举例

表bi_plus.data_xy_b_error_event赋予了XX用户select权限,数据模型如下:

Sentry->Ranger方案分解

Ranger基于策略policy的PBAC赋权策略,面向资源授权。转换sentry策略我们先需要解决用户、用户组、角色同步问题。

整体迁移策略

用户同步方案

Sentry不存在用户,一般来自于外部OpenLdap。Ranger本身支持外部LDAP同步,在华为云MRS 中通过配置usersync实例与LDPA对接即可实现

用户组同步方案

Sentry用户组如果来源于外部Ldap,参考用户同步方案同步用户组即可。如果没有外部LDAP,通过读取表sentry_group获取用户组插入Ranger中即可实现。

角色同步方案

角色同步稍比用户、用户组同步复杂需要自行开发工具支持。角色同步时要关联用户、用户组,因此需要先完成用户、用户组同步后再进行角色同步。

策略同步

  1. 分析sentry中hive表权限,对应每张表生成对应一条ranger策略,例如:库表:default.student生成策略名:default_student。
  2. 根据表权限类型,分解为:select、all(*)、insert对相关角色&用户&用户组进行分组,生成为ranger中策略的Condition内容

样例

表bi_plus.data_xy_b_error_event在sentry中实际只有对部分角色用户进行了select授权

对应生成的ranger策略为: bi_plus_data_xy_b_error_event

FAQ

  1. Sentry本身不存储用户信息,实际多个客户案例来看一般一个用户对应一个用户组且名称相同,我们基于这个策略进行同步。
  2. Ranger用户组、用户不区分大小写而sentry中如果存在大小写差异的用户组会导致同步失败,这种情况建议改造或者下线其中不规范的用户组命名。

使用华为云大数据产品,提供端到端迁移方案与技术支持。

 

点击关注,第一时间了解华为云新鲜技术~

标签:sentry,用户组,Sentry,用户,Ranger,同步,Apache
From: https://www.cnblogs.com/huaweiyun/p/17154510.html

相关文章

  • Spring for Apache Kafka: @KafkaListener 的使用示例(消费)
    版本Version2.7.8-- 阅读Version2.7.8的SpringforApacheKafka官方文档,检出其中的注解@KafkaListener的使用方式。关键词:ConsumerRecord、Message、......
  • APACHE安装与应用
    一、Apache安装1、Apache简介Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是......
  • Didn't find class "org.apache.http.ProtocolVersion
     使用volley时报“Didn'tfindclass"org.apache.http.ProtocolVersion”今天在运行签名好的apk在android9.0的小米8上面出现打开闪退。在Android6.0中,我们取消了......
  • Linux系统之安装apache服务
    (Linux系统之安装apache服务)一、检查本地系统版本[root@node~]#cat/etc/os-releaseNAME="CentOSLinux"VERSION="7(Core)"ID="centos"ID_LIKE="rhelfedora"VE......
  • Apache SSI远程命令执行漏洞复现
    漏洞原理:当目标服务器开启了SSI与CGI支持,就可以上传shtml文件,并利用语法执行任意命令,例如<!--#execcmd=”ls”-->,cmd后面跟要执行的命令。漏洞复现:启动环境,拉取镜像:漏......
  • Golang 构建 Apache thrift 应用
    安装去官网下载安装包,然后编译安装。https://thrift.apache.org/download./configure&&make当然如果我们使用了MacOS我们将可以方便的直接使用 Homebrew进行......
  • npm install sentry-cli 失败
      npmsetENTRYCLI_CDNURL=https://cdn.npm.taobao.org/dist/sentry-clinpmsetsentrycli_cdnurl=https://cdn.npm.taobao.org/dist/sentry-cli......
  • linux 下装 mono,使apache 运行 asp.net
    1.更新系统  yumupdate  2.安装必要的相关库  yuminstallgccgcc-c++bisonpkgconfigglib2-develgettextmakelibpng-devellibjpeg-devellibtiff-develli......
  • Apache James 系列2 --- SPF & DKIM
    一、承上启下1. DNS系列1---记录类型2. DNS系列2---SPF3. DNS系列3---SRV4. DNS系列4---DKIM5. DNS系列5---DMARC6. ApacheJames系列1---......
  • Apache SSI远程命令执行漏洞复现
    漏洞原理shtml不是html而是一种服务器API,shtml是服务器动态产生的html。两者都是超文本格式,但shtml是一种用于SSI(ServcieSideInclude,服务器端包含指令)技术的......