权限管理Ranger详解

文章目录

  • 一、Ranger概述与安装
    • 1、Ranger概述
      • 1.1 Ranger介绍
      • 1.2 Ranger的目标
      • 1.3 Ranger支持的框架
      • 1.4 Ranger的架构
      • 1.5 Ranger的工作原理
    • 2、Ranger安装
      • 2.1 创建系统用户和Kerberos主体
      • 2.2 数据库环境准备
      • 2.3 安装RangerAdmin
      • 2.4 启动RangerAdmin
  • 二、Ranger简单使用
    • 1、安装 RangerUsersync
      • 1.1 RangerUsersync简介
      • 1.2 RangerUsersync安装
      • 1.3 RangerUsersync启动
    • 2、安装Ranger Hive-plugin
      • 2.1 Ranger Hive-plugin简介
      • 2.2 Ranger Hive-plugin安装
      • 2.3 在ranger admin上配置hive插件
    • 3、使用Ranger对Hive进行权限管理
      • 3.1 权限控制初体验
      • 3.2 Ranger授权模型

一、Ranger概述与安装

1、Ranger概述

1.1 Ranger介绍

Ranger的官网:https://ranger.apache.org/

Apache Ranger是一个Hadoop平台上的全方位数据安全管理框架,它可以为整个Hadoop生态系统提供全面的安全管理。

随着企业业务的拓展,企业可能在多用户环境中运行多个工作任务,这就需要一个可以对安全策略进行集中管理,配置和监控用户访问的框架。Ranger由此产生

1.2 Ranger的目标

  • 允许用户使用UI或REST API对所有和安全相关的任务进行集中化的管理
  • 允许用户使用一个管理工具对操作Hadoop体系中的组件和工具的行为进行细粒度的授权
  • 支持Hadoop体系中各个组件的授权认证标准
  • 增强了对不同业务场景需求的授权方法支持,例如基于角色的授权或基于属性的授权
  • 支持对Hadoop组件所有涉及安全的审计行为的集中化管理

1.3 Ranger支持的框架

  • Apache Hadoop
  • Apache Hive
  • Apache HBase
  • Apache Storm
  • Apache Knox
  • Apache Solr
  • Apache Kafka
  • YARN
  • NIFI

1.4 Ranger的架构

1.5 Ranger的工作原理

Ranager的核心是Web应用程序,也称为RangerAdmin模块,此模块由管理策略,审计日志和报告等三部分组成。

管理员角色的用户可以通过RangerAdmin提供的web界面或REST APIS来定制安全策略。这些策略会由Ranger提供的轻量级的针对不同Hadoop体系中组件的插件来执行。插件会在Hadoop的不同组件的核心进程启动后,启动对应的插件进程来进行安全管理

2、Ranger安装

Ranger2.0要求对应的Hadoop为3.x以上,Hive为3.x以上版本,JDK为1.8以上版本。Hadoop及Hive等需开启用户认证功能,本文基于开启Kerberos安全认证的Hadoop和Hive环境。注:本文中所涉及的Ranger相关组件均安装在hadoop102节点

2.1 创建系统用户和Kerberos主体

Ranger的启动和运行需使用特定的用户,故须在Ranger所在节点创建所需系统用户并在Kerberos中创建所需主体

# 创建ranger系统用户
useradd  ranger -G hadoop
echo ranger | passwd --stdin ranger# 检查HTTP主体是否正常(该主体在Hadoop开启Kerberos时已创建)
# 使用keytab文件认证HTTP主体
kinit -kt /etc/security/keytab/spnego.service.keytab HTTP/hadoop102@EXAMPLE.COM
# 查看认证状态
klist
kdestroy # 创建rangeradmin主体
kadmin -padmin/admin -wadmin -q"addprinc -randkey rangeradmin/hadoop102"
kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/rangeradmin.keytab rangeradmin/hadoop102"
chown ranger:ranger /etc/security/keytab/rangeradmin.keytab
# 创建rangerlookup主体
kadmin -padmin/admin -wadmin -q"addprinc -randkey rangerlookup/hadoop102"
kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/rangerlookup.keytab rangerlookup/hadoop102"
chown ranger:ranger /etc/security/keytab/rangerlookup.keytab
# 创建rangerusersync主体
kadmin -padmin/admin -wadmin -q"addprinc -randkey rangerusersync/hadoop102"
kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/rangerusersync.keytab rangerusersync/hadoop102"
chown ranger:ranger /etc/security/keytab/rangerusersync.keytab

2.2 数据库环境准备

mysql -uroot -p123456
# 在MySQL数据库中创建Ranger存储数据的数据库
create database ranger;
# 更改mysql密码策略,为了可以采用比较简单的密码
set global validate_password_length=4;
set global validate_password_policy=0;
# 创建用户
grant all privileges on ranger.* to ranger@'%'  identified by 'ranger';

2.3 安装RangerAdmin

# 官网:https://ranger.apache.org/
# 在hadoop102的/opt/module路径上创建一个ranger
# https://www.apache.org/dyn/closer.lua/ranger/2.0.0/apache-ranger-2.0.0.tar.gz
# 使用Maven命令编译,注意需要python,maven,git,java环境
# 具体编译可以参考:https://blog.csdn.net/weixin_38586230/article/details/105725346
mvn -DskipTests=true clean package
# 资源获取:https://download.csdn.net/download/lemon_TT/87961006
mkdir /opt/module/ranger
tar -zxvf ranger-2.0.0-admin.tar.gz -C /opt/module/ranger
# 进入/opt/module/ranger/ranger-2.0.0-admin路径,对install.properties配置
vim install.properties
# ===================================================
# 修改以下配置内容:
#mysql驱动
SQL_CONNECTOR_JAR=/opt/software/mysql-connector-java-5.1.37.jar#mysql的主机名和root用户的用户名密码
db_root_user=root
db_root_password=123456
db_host=hadoop102#ranger需要的数据库名和用户信息,和2.2.1创建的信息要一一对应
db_name=ranger
db_user=ranger
db_password=ranger#Ranger各组件的admin用户密码
rangerAdmin_password=atguigu123
rangerTagsync_password=atguigu123
rangerUsersync_password=atguigu123
keyadmin_password=atguigu123#ranger存储审计日志的路径,默认为solr,这里为了方便暂不设置
audit_store=#策略管理器的url,rangeradmin安装在哪台机器,主机名就为对应的主机名
policymgr_external_url=http://hadoop102:6080#启动ranger admin进程的linux用户信息
unix_user=ranger
unix_user_pwd=ranger
unix_group=ranger#Kerberos相关配置
spnego_principal=HTTP/hadoop102@EXAMPLE.COM
spnego_keytab=/etc/security/keytab/spnego.service.keytab
admin_principal=rangeradmin/hadoop102@EXAMPLE.COM
admin_keytab=/etc/security/keytab/rangeradmin.keytab
lookup_principal=rangerlookup/hadoop102@EXAMPLE.COM
lookup_keytab=/etc/security/keytab/rangerlookup.keytab
hadoop_conf=/opt/module/hadoop-3.1.3/etc/hadoop# ===================================================# 在/opt/module/ranger/ranger-2.0.0-admin目录下执行安装脚本
./setup.sh
# 若安装过程中发现Error executing: CREATE FUNCTION `getXportalUIdByLoginId`(input_val VARCHAR(100)) RETURNS int(11) BEGIN DECLARE myid INT; SELECT x_portal_user.id into myid FROM x_portal_user WHERE x_portal_user.login_id = input_val; RETURN myid; END
# 导入失败,log_bin_trust_function_creators 为 OFF
# 进入mysql进行设置
show variables like '%func%';
set global log_bin_trust_function_creators=1;
drop database ranger;
create database ranger;
# 最后重新安装# 修改/opt/module/ranger/ranger-2.0.0-admin/conf/ranger-admin-site.xml配置文件中的以下属性
vim /opt/module/ranger/ranger-2.0.0-admin/conf/ranger-admin-site.xml

修改如下参数

<property><name>ranger.jpa.jdbc.password</name><value>ranger</value><description />
</property><property><name>ranger.service.host</name><value>hadoop102</value>
</property>

2.4 启动RangerAdmin

# 启动ranger-admin(以ranger用户启动)
sudo -i -u ranger ranger-admin start
# ranger-admin在安装时已经配设置为开机自启动,因此之后无需再手动启动
jps
# 进程名字为EmbeddedServer
# 访问Ranger的WebUI,地址为:http://hadoop102:6080,账号密码admin/atguigu123
# 停止ranger(此处不用执行)
sudo -i -u ranger ranger-admin stop

二、Ranger简单使用

https://cwiki.apache.org/confluence/display/RANGER/Row-level+filtering+and+column-masking+using+Apache+Ranger+policies+in+Apache+Hive

1、安装 RangerUsersync

1.1 RangerUsersync简介

RangerUsersync作为Ranger提供的一个管理模块,可以将Linux机器上的用户和组信息同步到RangerAdmin的数据库中进行管理

1.2 RangerUsersync安装

# 解压
tar -zxvf ranger-2.0.0-usersync.tar.gz -C /opt/module/ranger/
# 在/opt/module/ranger/ranger-2.0.0-usersync目录下修改以下文件
vim install.properties
# ================================
#rangeradmin的url
POLICY_MGR_URL =http://hadoop102:6080#同步间隔时间,单位(分钟)
SYNC_INTERVAL = 1#运行此进程的linux用户
unix_user=ranger
unix_group=ranger#rangerUserSync用户的密码,参考rangeradmin中install.properties的配置
rangerUsersync_password=atguigu123#Kerberos相关配置
usersync_principal=rangerusersync/hadoop102@EXAMPLE.COM
usersync_keytab=/etc/security/keytab/rangerusersync.keytab
hadoop_conf=/opt/module/hadoop-3.1.3/etc/hadoop# ================================# 在/opt/module/ranger/ranger-2.0.0-usersync目录下执行安装脚本
./setup.sh
# 修改/opt/module/ranger/ranger-2.0.0-usersync/conf/ranger-ugsync-site.xml配置文件中的以下参数
<property><name>ranger.usersync.enabled</name><value>true</value>
</property>

1.3 RangerUsersync启动

# 启动之前,在ranger admin的web-UI界面,http://hadoop102:6080/index.html#!/users/usertab
# 启动RangerUserSync(使用ranger用户启动)
sudo -i -u ranger ranger-usersync start
# 启动后,再次查看用户信息
# 说明ranger-usersync工作正常!
# ranger-usersync服务也是开机自启动的,因此之后不需要手动启动

2、安装Ranger Hive-plugin

2.1 Ranger Hive-plugin简介

Ranger Hive-plugin是Ranger对hive进行权限管理的插件。需要注意的是,Ranger Hive-plugin只能对使用jdbc方式访问hive的请求进行权限管理,hive-cli并不受限制

2.2 Ranger Hive-plugin安装

# 解压软件
tar -zxvf ranger-2.0.0-hive-plugin.tar.gz -C /opt/module/ranger/
# 配置软件
vim install.properties
# 修改以下内容
# ===================================
#策略管理器的url地址
POLICY_MGR_URL=http://hadoop102:6080#组件名称
REPOSITORY_NAME=hive#hive的安装目录
COMPONENT_INSTALL_DIR_NAME=/opt/module/hive#hive组件的启动用户
CUSTOM_USER=hive#hive组件启动用户所属组
CUSTOM_GROUP=hadoop
# =====================================
# 启用Ranger Hive-plugin,在/opt/module/ranger/ranger-2.0.0-hive-plugin下执行以下命令
./enable-hive-plugin.sh
# 查看$HIVE_HOME/conf目录是否出现以下配置文件,如出现则表示Hive插件启用成功。
ls $HIVE_HOME/conf | grep -E hiveserver2\|ranger
# 重启Hiveserver2,需使用hive用户启动
sudo -i -u hive hiveserver2

2.3 在ranger admin上配置hive插件

谁启动hiveserver2谁设置为admin角色,我这里hive启动,将角色设置为Admin

配置Hive插件,点击Access Manager,添加Hive Manager,配置服务详情

Service Name:hive
Username:rangerlookup
Password:rangerlookup
jdbc.driverClassName:org.apache.hive.jdbc.HiveDriver
jdbc.url:jdbc:hive2://hadoop102:10000/;principal=hive/hadoop102@EXAMPLE.COM

先进行add,如何在编辑进行测试,可以发现成功连接了

3、使用Ranger对Hive进行权限管理

3.1 权限控制初体验

查看默认的访问策略,此时只有rangerlookup用户拥有对所有库、表和函数的访问权限,故理论上其余用户是不能访问任何Hive资源的

# 验证:使用atguigu用户尝试进行认证,认证成功后,使用beeline客户端连接Hiveserver2
# 首先进行认证
kinit atguigu
beeline -u "jdbc:hive2://hadoop102:10000/;principal=hive/hadoop102@EXAMPLE.COM"
# 执行以下sql语句,验证当前用户为atguigu
select current_user();
# 执行use gmall语句,结果atguigu用户没有对gmall库的使用权限
use gmall;
# 赋予atguigu用户对gmall数据库的访问权限
# 点击hive->点击Add New Policy
# 配置授权策略,将gmall库的所有表的所有权限均授予给了atguigu用户

等待片刻,在回到beeline客户端,重新执行use gmall语句,此时atguigu用户已经能够使用gmall库,并且可访问gmall库下的所有表了

3.2 Ranger授权模型

Ranger所采用的权限管理模型可归类为RBAC(Role-Based Access Control )基于角色的访问控制。基础的RBAC模型共包含三个实体,分别是用户(user)、角色(role)和权限(permission)。用户需划分为某个角色,权限的授予对象也是角色,例如用户张三为管理角色,那他就拥有了管理员角色的所有权限。

Ranger的权限管理模型比基础的RBAC模型要更加灵活,以下是Ranger的权限管理模型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/311807.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PDF文档电子签名怎么做?

如何确保电子文档的签署具有公信力和法律效力&#xff0c;防止伪造和假冒签名等问题&#xff0c;是电子文档无纸化应用面临的重要挑战。本文将详细介绍PDF文档电子签名的概念、重要性、实施步骤以及相关的法律背景&#xff0c;帮助用户理解并有效应用PDF文档电子签名技术。 1.…

# RAG | Langchain # Langchain RAG:打造Markdown文件的结构化分割解决方案

【文章简介】 在信息技术的现代背景下&#xff0c;高效地处理和分析文本数据对于知识获取和决策支持至关重要。Markdown文件因其易读性和高效性&#xff0c;在文档编写和知识共享中占据了重要地位。然而&#xff0c;传统的文本处理方法往往忽视了Markdown的结构化特性&#xff…

深度学习 Lecture 7 迁移学习、精确率、召回率和F1评分

一、迁移学习&#xff08;Transfer learning) 用来自不同任务的数据来帮助我解决当前任务。 场景&#xff1a;比如现在我想要识别从0到9度手写数字&#xff0c;但是我没有那么多手写数字的带标签数据。我可以找到一个很大的数据集&#xff0c;比如有一百万张图片的猫、狗、汽…

卷积神经网络的结构组成与解释(详细介绍)

文章目录 前言 1、卷积层 2、激活层 3、BN层 4、池化层 5、FC层&#xff08;全连接层&#xff09; 6、损失层 7、Dropout层 8、优化器 9、学习率 10、卷积神经网络的常见结构 前言 卷积神经网络是以卷积层为主的深层网络结构&#xff0c;网络结构包括有卷积层、激活层、BN层、…

专业140+总410+国防科技大学831信号与系统考研经验国防科大电子信息与通信,真题,大纲,参考书。

应群里同学要求&#xff0c;总结一下我自己的复习经历&#xff0c;希望对大家有所借鉴&#xff0c;报考国防科技大学&#xff0c;专业课831信号与系统140&#xff0c;总分410&#xff0c;大家以前一直认为国防科技大学时军校&#xff0c;从而很少关注这所军中清华&#xff0c;现…

【C++】哈希一

这篇博客要说的是哈希算法&#xff0c;哈希又称为散列&#xff0c;它是将存储的值和存储的位置建立起关联关系的一种算法&#xff0c;或者说是一种将任意长度的数据映射为固定长度的输出的算法。 什么意思呢&#xff1f;我们来看一个例子&#xff1a;比如说我们要存储1&#xf…

Github 2024-04-12 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-04-12统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目6TypeScript项目2Cuda项目1C++项目1C项目1HTML项目1Jupyter Notebook项目1JavaScript项目1Python - 100天从新手到大师 创建周期:22…

pytorch 今日小知识3——nn.MaxPool3d 、nn.AdaptiveAvgPool3d、nn.ModuleList

MaxPool3d — PyTorch 2.2 documentation 假设输入维度&#xff08;1,2,3,4,4&#xff09; maxpool torch.nn.MaxPool3d(kernel_size(2, 2, 2), stride(2, 2, 2), padding(1, 0, 0))F 维的 kernel_size 为 2&#xff0c;说明在 F 维的覆盖的 frame 数为 2&#xff0c;也就是…

机器学习实验------决策树

第1关&#xff1a;什么是决策树 任务描述 本关任务&#xff1a;根据本节课所学知识完成本关所设置的选择题。 第2关&#xff1a;信息熵与信息增益 任务描述 本关任务&#xff1a;掌握什么是信息增益&#xff0c;完成计算信息增益的程序设计。 import numpy as npdef calcIn…

【机器学习】knn邻近算法解决实际问题

采用kNN算法回答红色字体提出的问题。要求写出算法过程和预测结果。 KNN原理 KNN&#xff08;K-最近邻&#xff09;算法是一个简单直观的分类方法。它的核心思想是“物以类聚”&#xff0c;即一个样本的类别通常由其周围最近的几个邻居决定。这里的“最近”是通过计算样本间的…

智能零售:引领购物新时代

智能零售通过整合人工智能、物联网、大数据和机器学习等技术&#xff0c;正在彻底改变传统的购物模式&#xff0c;为消费者和零售商提供前所未有的效率和个性化体验。 智能零售利用消费者数据分析来提供个性化的购物推荐。无论是在线平台或是实体店内&#xff0c;智能系统都能…

RabbitMQ - Spring boot 整合 RabbitMQ

一、RabbitMQ 1、RabbitMQ 使用场景 1.1、服务解耦 假设有这样一个场景, 服务A产生数据, 而服务B,C,D需要这些数据, 那么我们可以在A服务中直接调用B,C,D服务,把数据传递到下游服务即可 但是,随着我们的应用规模不断扩大,会有更多的服务需要A的数据,如果有几十甚至几百个下…

Gitea是一个开源、轻量级的自托管Git解决方案

Gitea介绍 Gitea是一个由Go语言编写的、轻量级的、自托管的Git解决方案&#xff0c;类似于GitHub、GitLab等平台。它是用Go语言编写的开源软件&#xff0c;提供了Git版本控制系统的基本功能&#xff0c;包括代码托管、问题跟踪、代码审查、Wiki等。Gitea的设计目标是简单易用、…

uniapp 当前系统没有安装苹果根证书,是否打开证书目录(打开后依次安装证书

当你遇到这类问题时&#xff0c;说明你也极其的困惑&#xff01;这就是为啥大抵国内这些货色搞的东西总是不尽人意&#xff01;连开发者生态都搞不好&#xff0c;就急着吹嘘。 这是官方给的技术说明方案&#xff1a; 恭喜你&#xff0c;当你按照这个搞之后&#xff0c;你的问题…

海外媒体如何发布软文通稿

大舍传媒-带您了解海外发布新潮流 随着全球化的不断深入&#xff0c;越来越多的中国企业开始关注海外市场。为了在国际舞台上树立品牌形象&#xff0c;企业纷纷寻求与海外媒体合作&#xff0c;通过发布软文通稿的方式&#xff0c;传递正面信息&#xff0c;提升品牌知名度。作为…

【ElasticSearch】安装(bug篇)

以下解决办法参考自网友们的分享 1. JDK绑定问题 但其实这样也没有问题&#xff0c;因为内嵌的jdk版本与当前的es版本是适配的 但是&#xff0c;如果内嵌的jdk与当前es不适配&#xff0c;那就要修改配置文件 / 添加环境变量&#xff0c;让es启动的时候能扫描到我们本地的jdk …

2024蓝桥杯每日一题(组合计数)

备战2024年蓝桥杯 -- 每日一题 Python大学A组 试题一&#xff1a;计算系数 试题二&#xff1a;求组合数1 试题三&#xff1a;求组合数2 试题四&#xff1a;杨辉三角形 试题一&#xff1a;计算系数 【题目描述】 给定一个多项式 (axby)k&#xff0c;请…

Linux内核之aligned用法实例(四十七)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

2024 NTFS读写工具Tuxera NTFS for Mac 是如何进行下载、安装、激活的

本篇将为各位小伙伴们集中讲解一下NTFS读写工具Tuxera NTFS for Mac 是如何进行下载、安装、激活与换机的。 在数字化时代&#xff0c;数据交换和共享变得日益重要。然而&#xff0c;对于Mac用户来说&#xff0c;与Windows系统之间的文件交换可能会遇到一些挑战。这是因为Mac …

一个开源的全自动视频生成软件MoneyPrinterTurbo

只需提供一个视频 主题 或 关键词 &#xff0c;就可以全自动生成视频文案、视频素材、视频字幕、视频背景音乐&#xff0c;然后合成一个高清的短视频。 一&#xff1a;功能特性 完整的 MVC架构&#xff0c;代码 结构清晰&#xff0c;易于维护&#xff0c;支持 API 和 Web界面…