hadoop大数据安全管理:ldap、keberos、ranger

news2025/1/1 22:36:44

hadoop大数据中认证一般用keberos,授权用ranger,kerberos和Ldap组件共同组成整个集群的安全鉴权体系,Ldap负责用户数据存储。

kerberos
Kerberos 是一种网络认证协议,用于在不安全的网络中以安全的方式对用户和服务进行身份验证。它通过使用密钥加密技术来防止数据被窃听或篡改,确保了认证过程的安全性。kerberos所管理的一个用户或者服务叫Principal,其格式通常如下:primary/instance@realm

默认情况下,Hadoop 集群是没有启用安全认证的,我们可以直接连接。然而,在生产环境中,Hadoop 集群通常会启用安全认证,例如 Kerberos 认证。在TBDS产品中创建hadoop集群时,可以选择是否开启kerberos认证,并且每个用户创建时,系统会生成一个keytab文件。

Kerberos中的用户认证,可通过密码或者密钥文件证明身份,keytab指密钥文件。Keytab文件作为向Kerberos系统提供服务的凭证,在不需要用户提供用户名和密码的情况下进行身份验证。
生成keytab文件:

#登录
kadmin -p your_principal@YOUR_REALM -r YOUR_REALM

#添加用户:
addprinc new_principal
#生成keytab
ktadd -k /home/user01/user01.keytab -norandkey user01
#认证
kinit -kt /home/user01/user01.keytab user01

以Java为例,使用kerberos生成的keytab文件认证进行登录hadoop的主要api和代码如下:

 import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.security.UserGroupInformation;
import org.apache.hadoop.fs.FileSystem;
   public static void main(String[] args) throws Exception {
    System.setProperty("java.security.krb5.conf", "/path/to/krb5.conf");
        Configuration configuration = new Configuration();
        configuration.set("hadoop.security.authentication", "Kerberos");
 
        // 使用UserGroupInformation登录
        UserGroupInformation.setConfiguration(configuration);
        UserGroupInformation.loginUserFromKeytab("kerberos_user_principal", "/path/to/kerberos_user.keytab");
 
        // 获取认证后的UserGroupInformation实例
        UserGroupInformation ugi = UserGroupInformation.getLoginUser();
 
        // 使用doAs方法执行需要认证的操作
        ugi.doAs(new PrivilegedExceptionAction<Void>() {
            public Void run() throws Exception {
                FileSystem fileSystem = FileSystem.get(configuration);
                // 执行文件系统操作
                return null;
            }
            }

如果将kerberos与LDAP集成通常采用以下架构:
客户通过kerberos获取票据,然后使用LDAP进行用户身份验证。LDAP服务器作为用户身份信息的存储库,使用kerberos票据进行身份验证。流程如下:

在这里插入图片描述

ldap

https://cloud.tencent.com/developer/article/2040490
Ldap是一种轻量级目录访问协议,数据被组织成树状目录,访问速度非常快,但是写性能差,且不支持事务。适用于数据量少,一次写多次读的场景,基本局限于用户、账户数据存储。Linux系统开源Ldap软件是OpenLDAP,Windows系统则是AD(Active Directory)。Ldap目录数据库中数据组织结构实例如下:
在这里插入图片描述
数据的最小粒度是Entry(条目),每个条目用户唯一标识名(例如admin用户的标识名就是User=admin: Group:干部:OU=人事部:O=A公司)。每个Entry可以有多个属性(Attribute)(例如邮箱、地址等)。条目相当于关系https://cloud.tencent.com/solution/database?from_column=20065&from=20065中表的记录;条目是具有区别名DN(Distinguished Name)的属性(Attribute)集合,DN相当于关系数据库表中的关键字(Primary Key);属性由类型(Type)和多个值(Values)组成,相当于关系数据库中的域(Field)由域名和数据类型组成,只是为了方便检索的需要,LDAP中的Type可以有多个Value,而不是关系数据库中为降低数据的冗余性要求实现的各个域必须是不相关的。LDAP中条目的组织一般按照地理位置和组织关系进行组织,非常的直观。LDAP把数据存放在文件中,为提高效率使用基于索引的文件数据库,而不是关系数据库。

大数据各服务组件不会直接去访问操作系统Ldap去获取用户数据,避免大量客户端连接造成认证服务器负载过高,客户端访问操作系统sssd服务(操作系统缓存服务守护进程)去获取用户数据(执行id命令),而sssd会从Ldap中获取用户信息。
LDAP是一个存储静态相关信息的服务,适合“一次记录多次读取”。LDAP对查询进行了优化,与写性能相比LDAP的读性能要优秀很多。
LDAP目录和UNIX文件系统之间有三点不同:
第一是LDAP模型没有真正的根条目。文件系统有一个根目录,它是所有文件和目录的祖先。在LDAP目录中,根条目是概念性的,不作为一个可以存放数据的条目存在。
第二是目录的每个节点都可以包含数据,任何节点都可能作为一个容器,即LDAP条目允许在他的下面有子节点。文件系统的每个节点或者是文件或者是目录,但不能同时是二者。在文件系统中,只有目录可以有子节点,而且只有文件可以包含数据。LDAP中的条目既可以是数据同时也可以兼任目录的角色。
第三是节点命名方式的不同。LDAP名称与文件系统名称的方向是相反的。文件系统的表示方法是从根目录到深层目录一层一层表示,而LDAP则相反,将叶子节点放在前面逐层目录向上推导,最后写出根目录
LDAP中记录的表示方法,首先确认以下几个概念:
dn :Distinguished Name;唯一可区别的名称,记录了一条记录的位置,相当于主键
dc :domain component一条记录所属区域(域名)
ou :Organization Unit;一条记录所属组织(组织机构,部门)
cn/uid:Common Name;可用来区分身份的属性,等同于一条记录的名字/ID
一个完整的dn如下所示,以此查询得到一条完整的记录,然后再根据需要取出其中的指定的属性(Attribute)的值。
dn:cn=cc,ou=imcuser-test-ld,dc=zhjdtest,dc=com
dn是从树的叶子节点逐层向根节点推导出的一条唯一路径,表明了这个数据结构中的唯一一条记录。

ranger

ranger允许用户使用一个管理工具对hadoop中的组件和工具进行细粒度的授权,支持对hadoop组件所有设计安全的审计行为集中化管理,它支持的框架包括hadoop、hive、hbase、knox、kafka、yarn,比如对于hive来说,安装ranger hive-plugin插件,通过页面可以用ranger来授予用户对于库、表、函数的权限。对于hdfs,可以为hdfs用户配置hdfs文件或目录的读写执行权限。
总的来说ranger可以设置对于各个资源的读、写、执行权限,Raner是由三个部分组件:Ranger Admin 、Ranger Usersync 与Ranger plugin组成

组件名称 说明
Admin Ranger Admin Portal是安全管理的中心接口。 用户可以创建和更新策略,这些策略存储在策略数据库中。 每个组件内的Plugins会定期轮询这些策略。Portal还包括一个审计服务器,它发送从插件收集的审计数据,以便存储在HDFS或关系数据库中
UserSync 同步实用工具来从Unix或LDAP或Active Directory中拉取用户和组。 用户或组信息存储在Ranger门户中,用于策略定义。
PlugIn 插件是嵌入每个集群组件进程的轻量级Java程序。 例如,Apache Hive的Apache Ranger插件嵌入在Hiveserver2中。 这些插件从中央服务器提取策略,并将它们本地存储在一个文件中。 当用户请求通过组件时,这些插件拦截请求并根据安全策略进行评估。 插件还可以从用户请求中收集数据,并按照单独的线程将此数据发送回审计服务器
在ranger部署好后,可以直接通过ui界面进行授权:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

05-用户画像+mysql-hive数据导入

将用户数据导入数仓 新建 create_hive_table.sh文件 在终端执行以下文件 sh create_hive_table.sh sqoop create-hive-table \ --connect jdbc:mysql://up01:3306/tags_dat \ tags_dat库名 --username root \ root 用户名 --password 123456 \ 123456 密码 --ta…

Vuex数据持久化实现

版本&#xff1a;vue 3.4.29 vuex4.1.0 1. 出现的问题 当我使用 vuex 作为状态管理组件来存储用户的一些信息之后&#xff0c;发现从/login 页面跳转到/home 界面后拿不到vuex信息。 之后查阅资料了解&#xff0c;当切换路由后&#xff0c;vue 会重新渲染&#xff0c;而vuex 也…

Java——————接口(interface) <详解>

1.1 接口的概念 在现实生活中&#xff0c;接口的例子比比皆是&#xff0c;比如&#xff1a;笔记本电脑上的USB接口&#xff0c;电源插座等。 电脑的USB口上&#xff0c;可以插&#xff1a;U盘、鼠标、键盘...所有符合USB协议的设备 电源插座插孔上&#xff0c;可以插&#xff…

小程序收银视频介绍

千呼新零售2.0系统是零售行业连锁店一体化收银系统&#xff0c;包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货、宠物等连锁店使用。 详细介绍请…

NC65 还款单的冲借款还款金额和报销单中冲借款的还款金额的计算逻辑

被报销单的冲借款界面中还款单金额计算逻辑&#xff0c;困扰了两天&#xff0c;无意中操作了&#xff0c;才搞清楚计算的逻辑&#xff08;感觉有点反人类&#xff09;。明明可以借款金额减去冲借款金额等于还款金额就行了&#xff0c;非得冲借款金额减去报销金额等于还款金额。…

数学基础【俗说矩阵】:逆矩阵

逆矩阵知识 认识逆矩阵 当最矩阵A【左乘】【初等阵】多次&#xff08;也就是进行多次【初等行】变化&#xff09;后&#xff0c;得到了一个【单位阵E】。由于矩阵具有结合律&#xff0c;把矩阵A【左乘】的所有【初等阵】乘起来&#xff0c;就得到了一个新的矩阵。我们称这个能…

Jenkins - apt 安装软件包 404 Not Found

Jenkins - apt 安装软件包 404 Not Found 引言关于 apt解决 apt 安装软件包 404 问题问题分析解决方案 引言 日常 Jenkins job 运行&#xff0c;有段时间会遇到 apt 安装软件包 404 的情况&#xff0c;这种情况不是每次都发生的&#xff0c;但是会导致 Jenkins 失败&#xff0…

强化学习术语与超参数整理(PPO)

最近在isaac lab中使用各个强化学习框架做对比训练&#xff0c;算法都是用的PPO&#xff0c;但是每个框架里超参数名字都不太一样&#xff0c;各种叫法弄得都混乱了&#xff0c;而且对齐不好很难对比出结论&#xff0c;在这里系统整理一下。 Isaac Lab支持的强化学习框架介绍-…

UE4-光照重建

当我们拉入新的光源和模型到我们的场景中后&#xff0c;会产生这样的情况&#xff1a; Preview:预览 表示此时由于光照物体所产生的阴影都是预览级别的并不是真正的效果。 方法一&#xff1a; 或者也可以在世界大纲中选中我们的光源&#xff0c;然后将我们的光源改变为可以…

免费【2024】springboot 毕业生就业管理微信小程序

博主介绍&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围&#xff1a;SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

MPI框架以及PIPE数据流向细节

一、海思MPP内部处理流程图 各模块功能介绍&#xff1a; &#xff08;1&#xff09;VI:捕获视频图像&#xff0c;可对其做剪切、缩放、镜像等处理&#xff0c;并输出多路不同分辨率的图像数据. &#xff08;2&#xff09;AI:捕获⾳频数据&#xff0c;然后AENC 模块⽀持按多种⾳…

2024:Qt--编译配置Protobuf(windows10) 配图详解

这里写自定义目录标题 一、准备1、Window10系统2、Qt Creator 5.0.2 Based on Qt 5.15.2 (MSVC 2019, 64 bit)3、protobuf-3.15.0&#xff08;本示例使用版本&#xff09;4、cmake-3.21.3-windows-x86_64&#xff08;本示例使用&#xff0c;下载的zip直接解压使用&#xff09; …

代码随想录——零钱兑换Ⅱ(Leetcode518)

题目链接 完全背包 class Solution {public int change(int amount, int[] coins) {int[] dp new int[amount 1];dp[0] 1;for(int i 0; i < coins.length; i){for(int j coins[i]; j < amount; j){dp[j] dp[j - coins[i]];}}return dp[amount];} }本题为组合问题…

MySQL 约束 (constraint)

文章目录 约束&#xff08;constraint)列级约束和表级约束给约束起名字&#xff08;constraint)非空约束&#xff08;no null)检查约束&#xff08;check)唯一性约束 (unique)主键约束 (primary key)主键分类单一主键复合主键主键自增 &#xff08;auto_increment) 外键约束外什…

【IEEE出版 | 广东省高校联合主办】第六届物联网、自动化和人工智能国际学术会议(IoTAAI 2024,7月26-28)

第六届物联网、自动化和人工智能国际会议&#xff08;IoTAAI 2024&#xff09;将于2024年07月26-28日在中国广州召开。 会议旨在拓展国际科技学术交流渠道&#xff0c;搭建学术资源共享平台&#xff0c;促进全球范围内的科技创新&#xff0c;提升中外学术合作。会议还鼓励不同领…

BGP选路之Preferred value

原理概述 当一台BGP路由器中存在多条去往同一目标网络的BGP路由时&#xff0c;BGP协议会对这些BGP路由的属性进行比较&#xff0c;以确定去往该目标网络的最优BGP路由&#xff0c;然后将该最优BGP路由与去往同一目标网络的其他协议路由进行比较&#xff0c;从而决定是否将该最优…

FliFlik KleanOut for Photo 的妙用

FliFlik KleanOut for Photo 是一款专业的图像水印去除软件&#xff0c;旨在帮助用户快速高效地去除照片中的水印标识。无论是文本水印还是图像水印&#xff0c;该软件都能有效识别并删除&#xff0c;保持图像原始清晰度和质量。它采用 AI 算法引擎&#xff0c;可以精准识别和删…

MongoDB教程(十六):MongoDB高级索引

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; 文章目录 引言一、全文索…

最简单的typora+gitee+picgo配置图床

typoragiteepicgo图床 你是否因为管理图片而感到头大&#xff1f;是时候了解一下 Typora、Gitee 和 PicGo 这个超级三剑客了&#xff0c;它们可以帮你轻松打造自己的图床&#xff0c;让你的博客图片管理变得简单又有趣。让我们开始这场神奇的图床之旅吧&#xff01; Typora …