摘要:本文主要探讨如何平滑解决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中如果存在大小写差异的用户组会导致同步失败,这种情况建议改造或者下线其中不规范的用户组命名。

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

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

详解Apache Sentry->Ranger平滑升级方案的更多相关文章

  1. Nginx版本平滑升级方案

    背景:由于负载均衡测试服务器中nginx版本过低,存在安全漏洞,查询相关修复漏洞资料,需要采取nginx版本升级形式对漏洞进行修复. Nginx平滑升级方案 1.案例采用版本介绍 旧版本 nginx- ...

  2. 详解k8s一个完整的监控方案(Heapster+Grafana+InfluxDB) - kubernetes

    1.浅析整个监控流程 heapster以k8s内置的cAdvisor作为数据源收集集群信息,并汇总出有价值的性能数据(Metrics):cpu.内存.网络流量等,然后将这些数据输出到外部存储,如Inf ...

  3. Sentry-CLI 使用详解(2021 Sentry v21.8.x)

    内容源于:https://docs.sentry.io/platforms/javascript/guides/vue/ 系列 1 分钟快速使用 Docker 上手最新版 Sentry-CLI - 创 ...

  4. 分布式ID详解(5种分布式ID生成方案)

    分布式架构会涉及到分布式全局唯一ID的生成,今天我就来详解分布式全局唯一ID,以及分布式全局唯一ID的实现方案@mikechen 什么是分布式系统唯一ID 在复杂分布式系统中,往往需要对大量的数据和消 ...

  5. Sentry For React 完整接入详解(2021 Sentry v21.8.x)前方高能预警!三万字,慎入!

    内容源于:https://docs.sentry.io/platforms/javascript/guides/react/ 系列 1 分钟快速使用 Docker 上手最新版 Sentry-CLI - ...

  6. 详解apache的allow和deny

    今天看了一篇关于apache allow,deny的文章收获匪浅,防止被删,我直接摘过来了,原文地址!!! !http://www.cnblogs.com/top5/archive/2009/09/2 ...

  7. Linux命令详解-Apache网站服务器配置和管理

    1.Apache网站服务器配置和管理 1.源码包安装 2.rpm包安装 rpm –a | grep httpd 3.启动服务 service httpd start 4.配置文件: /etc/http ...

  8. apache配置详解 apache安装路径

    http://www.linuxidc.com/Linux/2015-02/113921.htm 不同apache的安装方式 的安装目录示例 http://www.121down.com/articl ...

  9. 详解Apache服务与高级配置,(主配置文件每行都有描述)

    HTTP服务---> http://httpd.apache.org/(官方网站) httpd  service :纯粹的web服务器,同时开源(不是GPL). 特性:1.在进程特性上通常是事先 ...

  10. java架构之路(多线程)synchronized详解以及锁的膨胀升级过程

    上几次博客,我们把volatile基本都说完了,剩下的还有我们的synchronized,还有我们的AQS,这次博客我来说一下synchronized的使用和原理. synchronized是jvm内 ...

随机推荐

  1. 关于STM32F407ZGT6的USB损坏后使用ST-Link和USART1实现串口功能

    开发板:STM32F407ZGT6: 目标:想使用软件"串口调试助手" 情况:开发板上的USB_UART口所在器件损坏或者直接没有: 解决办法:查看该开发板的原理图,可得:串口1的 ...

  2. 二进制枚举&爆搜DFS

    给定一个如下图所示的全圆量角器. 初始时,量角器上的指针指向刻度 0. 现在,请你对指针进行 n 次拨动操作,每次操作给定一个拨动角度 ai,由你将指针拨动 ai 度,每次的拨动方向(顺时针或逆时针) ...

  3. 01背包问题的js解决方式

    如果你有兴趣看这个相信你已经对背包问题有所了解,所以关于背包问题的描述,我就不写了. 只记录一下自己对这个问题的一些看法和思考,于我而言,这个东西现在困扰我的是如何确定最优解. 实质上关于背包问题网上 ...

  4. Mybatis-plus 生成代码

    引入依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-g ...

  5. mybatis 操作 mysql 动态创建数据表

    Map 数据一般是根据需求生成的,例如 map.put("ticketId",176),map.put("ticketName","测试工单" ...

  6. [vue]精宏技术部试用期学习笔记 II

    精宏技术部试用期学习笔记(vue) router : vue的模拟路由 前置准备 安装 vue-router pnpm i vue-router@4 //安装版本4的 vue-router 可以在 p ...

  7. [Python急救站课程]等边三角形的绘制

    等边三角形的绘制 from turtle import * penup() fd(-50) pendown() pensize(25) seth(60) fd(100) seth(-60) fd(10 ...

  8. 支持C#的开源免费、新手友好的数据结构与算法入门教程

    前言 前段时间完成了C#经典十大排序算法(完结)然后有很多小伙伴问想要系统化的学习数据结构和算法,不知道该怎么入门,有无好的教程推荐的.今天给大家推荐一个支持C#的开源免费.新手友好的数据结构与算法入 ...

  9. [OpenWrt]软路由H28K开启USB无线教程

    0x01 背景 H28K软路由带了一个USB2.0的接口,官方说是支持USB无线的:于是就网购了USB转WIFI的设备(芯片:RTL8811CU),拿到手后开心的插上去,发现没有任何反应:在Q裙中询问 ...

  10. Vue04-vue-router

    vue-router 目前前端流行的三大框架, 都有自己的路由实现: Angular:ngRouter React:ReactRouter Vue:vue-router Vue Router 是 Vu ...