前面的文章介绍了《Kerberos原理--经典对话》、《Kerberos基本概念及原理汇总》、《基于ambari的Kerberos安装配置》、《Windows本地安装配置Kerberos客户端》,已经成功安装了Kerberos KDC server,也在Ambari上启用了Kerberos,接下来我们再来研究一下如何使用Kerberos。
对于HDFS服务,hdfs默认是超级管理员用户,它的权限最大,可以说它就相当于Linux的root。hdfs用户默认对所有目录有所有权限,同时可以执行HDFS相关的管理员命令比如让HDFS进入安全模式。但我们有时会碰到需要配置另一个超级用户的情况,本文Fayson主要介绍如何将普通用户设置为HDFS的超级用户。
在Ambari平台上,启用了Kerberos之后,一些服务的Web UI,像Namenode:50070、Oozie Web UI、Storm UI、Solr Web UI等快速链接大部分都是需要Kerberos认证才可以继续使用的。
在前面的文章《CDH5.15.0-同一OS用户下不同Kerberos用户执行脚本Principal串掉问题分析》中Fayson主要介绍了同一个OS用户下并发调度Python脚本时会导致Principal账号串掉,通过在Python代码中指定KRB5CCNAME环境变量解决问题,本篇文章Fayson主要介绍通过同一OS用户下并发调度Shell脚本进行不同用户Kerberos认证时Principal账号串掉问题分析及解决。
出于CDH集群安全考虑,在CDH集群中增加了Kerberos认证机制。因为HBase的存储系统是基于Hadoop的存储,所以通过HBase客户端访问HBase数据库时需要进行身份认证。在Linux下使用HBase客户端访问HBase数据时需要先kinit初始化Kerberos账号,认证完成后我们就可以直接使用HBase shell操作HBase了。通过Linux的Kinit命令可以方便的完成Kerberos的认证,那么在Java开发中如何完成Kerberos的登录认证呢?本篇文章主要讲述如何使用Java连接Kerberos环境的HBase。
在使用CDH的过程中,集群启用了Kerberos认证后,集群中的一些组件的Web UI也会启用Kerberos认证,例如HDFS、Yarn、Hive等组件,此时如果在Windows上对这些页面进行访问,是无法正常访问的,需要在Windows本地安装上Kerberos客户端,并进行配置后才能够访问这些需要Kerberos认证的Web UI,本文档将介绍如何在Windows 10安装Kerberos客户端并配置FireFox浏览器访问CDH集群组件的Web UI。
此消息表明一个操作尝试要求以Kerberos的user/host@realm身份认证的操作,但票据cache中没有用于user/host@realm的票据。
Kerberos是一种计算机网络认证协议,它允许某实体在非安全网络环境下通信,向另一个实体以一种安全的方式证明自己的身份。它也指由麻省理工实现此协议,并发布的一套免费软件。它的设计主要针对客户-服务器模型,并提供了一系列交互认证——用户和服务器都能验证对方的身份。Kerberos协议可以保护网络实体免受窃听和重复攻击。
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在前面的文章Fayson介绍了《如何在Kerberos环境下的CDH集群部署Spark1.6 Thrift及spark-sql客户端》。本文主要介绍当集群启用Kerberos和Sentry后,如何实现Spark SQL的权限管理。因为社区版Spark SQL并未做任何权限控制。
CDP7.1.6集群在启用Kerberos的操作中,导入KDC Account Manager凭证时报如下异常:
conf目录下krb5.conf和kafka.keytab和jaas.conf拷贝到客户端机器的etc目录, 同时,krb5.conf中的kdc集群主机名和IP配置到客户端机器hosts配置文件中
Hue在最新的4.6.0版本中,提供了编译docker镜像的选项,然后我们可以使用已经编译好的镜像来启动hue服务。在之前的版本中(例如4.2.0、4.3.0等),如果要部署hue服务,我们需要在相应的服务器上安装依赖包,然后下载hue的源码,编译完成之后再启动服务。对于有些系统,编译会出现各种问题,不同的版本错误还不一样,非常麻烦。因此,docker部署hue还是非常方便的,省去了我们每次都要重复编译的麻烦,并且可以在一个服务器上启动多个hue服务,配置文件保持不变的情况下,只要hue默认的端口号映射到宿主机的不同端口号即可。下面就跟大家介绍一些,在使用docker部署hue的时候,我们该如何配置连接到带有kerberos认证的Impala集群。
Kerberos是由麻省理工(MIT)开发,对三方进行验证鉴权的服务安全管理系统。该系统很好的体现了西方三权分立的思想,其名字也很形象,来源于希腊神话地狱三个脑袋的看门狗。
在集群启用Kerberos后,使用同一个OS用户在客户端并发调度Python代码获取Hive数据(代码中使用不同的kerberos用户kinit),会出现两个作业的认证混乱获取到的票据串掉。本文Fayson主要分析Kerberos环境同一OS用户下并发执行不同身份认证的Python代码会导致Principal串掉问题解决。
1. Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。具体请查阅官网
ipa-server是红帽身份验证的一个完整解决方案,上游的开源项目是freeIPA,它本身不提供具体功能,而是整合了389-ds、bind、kerberos等核心软件包,形成一个以389-ds(ldap)为数据存储后端,kerberos为验证前端,bind为主机识别,apache+tomcat提供的一个web管理界面,统一的命令行管理界面的身份识别系统。是rhel6重要的新特性之一。
随着Hadoop平台的流行,越来越多的开发语言访问Hadoop平台的组件,比较常见的Java、Scala、Python、R等。在前面的多篇文章中Fayson介绍了Java和Scala访问Hadoop各个组件的方法。对于偏分析类的Python和R语言访问集群的Hive和Impala比较多。本篇文章Fayson主要介绍如何使用Python3访问Kerberos环境的Hive和Impala。
KERBEROS安装完以后hdfs命令不能正常使用,修改:重启ambari-server ipactl
最近需要解决一个部门一个老旧问题,问题大概是这样的,Spark on K8S 在访问 HDFS(其他小组负责)的时候需要走 Kerberos 认证。因为之前工作里比较少涉及到这一块,所以想现在本地环境做个快速的测试,顺便系统了解一下 Kerberos。
本文主要讲解了如何安装并启动Hue 4.1.0,然后连接impala集群进行sql查询。其中,还包含了在安装部署过程中遇到的一些问题,希望可以帮助到大家。
本文档描述Windows Server2008 R2(windows的内核版本是6.1,与windows 7相同)下安装Kerberos Client及FireFox下HTTP访问HDFS、Yarn、Hive、HBase等Hadoop服务的Web UI(如Namenode的50070,Yarn的8088)的过程。安装文档主要分为以下几步:
虽然可以使用 Hive 服务本身的 Principal 与 keytab 来连接 Hive ,但使用服务本身的 principal 不具有普遍性,所以还是建议使用自定义的 Principal 。
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在前面的文章Fayson介绍了《如何在CDH集群外配置非Kerberos环境的Gateway节点》、《如何在CDH集群外配置Kerberos环境的GateWay节点》和《如何在CDH集群外配置非Kerberos环境的Spark2和Kafka客户端环境》,配置Gateway中并未提
1.CDSW现在正式成为Cloudera Manager管理的服务之一,可以直接通过Parcel安装。Cloudera Manager通过CSD(Custom Service Descriptor)来管理CDSW。你可以通过Cloudera Manager安装,升级和监控CDSW。同时你可以通过Cloudera Manager生成CDSW的诊断包,方便发送给Cloudera Support以获得支持。
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.问题描述 ---- 在CDH集群中Zookeeper已启用Kerberos服务,在命令行为使用Kerberos账号进行Kinit操作,使用zookeeper-client登录后仍然可以进行创建znode和删除znode,并且可以删除其它有服务的Znode,具体操作如下: [root@ip-172-31-3
本文首先会简单介绍Kylin的安装配置,然后介绍启用Kerberos的CDH集群中如何部署及使用Kylin。
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 前面Fayson的文章介绍了多篇Redhat7的OpenLDAP的文章具体如下: 《1.如何在RedHat7上安装OpenLDA并配置客户端》 《2.如何在RedHat7中实现OpenLDAP集成SSH登录并使用sssd同步用户》 《3.如何RedHat7上实现OpenLDAP的主
之前非常担心的一件事就是如果有人拿到了hdfs超级管理员帐号,直接把数据rm -rf怎么办?有了Kerberos,就可以轻松防止这样的事情发生。Kerberos 协议实现了比“质询-响应”模式协议更高的安全性:第一,在身份验证过程中,所有的数据都使用不同的密码进行加密,避免了相关验证信息的泄漏;第二,客户端和服务器会相互验证对方的身份,避免了 中间人攻击 ;第三,客户端和服务器间的时间差被严格限制,避免了 回放攻击 。与 WINDOWS 系统中的 用户安全令牌 类似, Kerberos 服务通过“ 加密的票据(防止篡改) ”验证用户身份和提供用户访问权限;Kerberos 服务可以通过使用 会话密钥 确保在会话中数据的机密性和完整性。
前面Fayson介绍了《0558-01-如何在Redhat7上安装FreeIPA》和《0559-02-如何在Redhat7上安装FreeIPA的客户端》,那如何在CDH集群中使用?通过Cloudera Manager可以为我们的CHD集群启用Kerberos认证,在前面的文章《如何为CDH集成Active Directory的Kerberos认证》和《如何在CDH集群启用Kerberos》介绍了集成不同服务的Kerberos认证,本篇文章Fayson主要介绍如何将CDH集成的KDC服务切换至FreeIPA下的Kerberos认证。
在前面的文章《0550-6.1-如何将普通用户增加到HDFS的超级用户组supergroup》中Fayson介绍过如何将普通用户设置为HDFS的超级用户,从而可以让普通用户也可以执行如dfsadmin相关的功能,但对于HDFS服务来说还有一个管理员用户(dfs.cluster.administrators),无论是超级用户还是管理员用户默认都是hdfs,本文Fayson主要介绍如何将普通用户设置为HDFS的管理员用户。
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在前面的文章Fayson介绍了《如何在CDH集群外配置非Kerberos环境的Gateway节点》,本篇文章主要介绍如何在CDH集群外配置Kerberos环境的Gateway节点。 内容概述 1.部署环境说明 2.部署Gateway节点及测试 3.总结 测试环境 1.CM和CDH
随着Hadoop平台的普及和Python语言的流行,使用Python语言访问操作HDFS的需要,Python也提供了多个访问HDFS的依赖包(如:pyhdfs、HdfsCLI、pywhdfs),这些依赖包都是通过API的方式与HDFS进行交互。本篇文章Fayson主要介绍使用pywhdfs访问Kerberos环境下的HDFS。
Sentry在CDH平台中定位为统一的授权框架,即所有的组件都要受Sentry的管理,当然也是为了方便用户的操作,一个入口为所有数据相关进行授权。Solr作为CDH的关键组件之一也不例外,安全授权同样受到Sentry的管理。在前面的文章中,Fayson介绍过Sentry与Solr如何结合使用,参考《0294-如何使用Sentry为Solr赋权》,《0301-使用命令行创建collection时Sentry给Solr赋权的问题》和《0304-如何在Hue中使用Sentry为Solr赋权》。但在CDH5中,Solr的版本较低是4.10.3,而CDH6的Solr是7.4,Solr的更新较大,在使用上也会有些差别。
https://web.mit.edu/kerberos/dist/index.html
“ 读完这篇文章,大概会对Kerberos原理更了解一些吧”
Cloudera从CM6.3版本开始,引入了Red Hat IdM来做整个集群的认证,Red Hat IdM对应的软件为FreeIPA,在本文中描述如何使用FreeIPA来做CDH集群的认证。关于FreeIPA服务器搭建参考<使用FreeIPA对Linux用户权限统一管理>。
强大的身份验证和建立用户身份是 Hadoop 安全访问的基础。用户需要能够可靠地 “识别” 自己,然后在整个 Hadoop 集群中传播该身份。完成此操作后,这些用户可以访问资源(例如文件或目录)或与集群交互(如运行 MapReduce 作业)。除了用户之外,Hadoop 集群资源本身(例如主机和服务)需要相互进行身份验证,以避免潜在的恶意系统或守护程序 “冒充” 受信任的集群组件来获取数据访问权限。
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.故障描述 ---- Fayson在前面的文章介绍过《如何使用Sentry为Solr赋权》,但当时Fayson是在Hue中创建的collection,如果我们采用先创建schema的xml文件,然后通过命令行创建Solr的collection,使用Sentry赋权后,会出现权限不生效的情况。以下我们具体看
FreeIPA可以快速、便捷的将linux系统接入,进行统一的身份认证和权限管理。
内存管理这部分我没有集中在一起叙述,本节只是讲述物理内存如何组织管理,页表的内核部分如何创建的,与地址转换的在启动理论那一块儿说了,虚拟地址空间的用户部分在进程那儿叙述,堆内存管理也在进程那一块儿讲述。废话不多说来看本节内容:
在前面的文章中,Fayson介绍了《0733-7.0.3-如何在Redhat7.6中安装CDP DC7.0.3》,这里我们基于这个环境开始安装Kerberos。Kerberos是一个用于安全认证的第三方协议,并不是Hadoop专用,你可以将其用于其他系统。它采用了传统的共享秘钥方式,实现了在网络环境下不一定保证安全的环境下,Client和Server之间的通信,适用于Client/Server模型,由MIT开发和实现。而使用CDP DC可以较为轻松的实现洁面后的Kerberos集成,本文Fayson主要介绍如何在Readhat7.2的CDP DC7.0.3环境中启用Kerberos。
在未部署统一身份管理系统时,管理员需要分别在每一台主机上为对应的系统管理员创建、维护账号和密码,无法进行统一的管理。当主机数量增加到一定程度后,也将难以进行有效的安全管理,对账号密码泄露等问题难以进行控制。统一身份认证系统可以帮助我们解决这一问题。Windows环境下可以使用域账号进行身份管理,而在Linux环境下,FreeIPA可以快速、便捷的将linux系统接入,进行统一的身份认证和权限管理。
Impala本身提供了两种接口进行访问:beeswax和hs2,其中beeswax是impala自己开发的api,而hs2是兼容hive的。由于beesswax的连接方式需要使用impala自己提供的python脚本,而且不支持HA,因此这里就不再多做介绍。本文主要介绍如何使用hive的beeline客户端来连接impala集群。目前我们内部的Impala集群都支持zk的高可用,来解决单点故障的问题。不过对于用户来说,单节点和高可用只是体现在URL的不同,其他并无区别。
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看
昨天Fayson写了一篇《如何安装Tableau并连接CDH的Hive/Impala》,后台关注人数当天增加了40人,有点大大超过Fayson的预期,首先还是谢谢各位关注Fayson的人。
您可以使用 authzmigrator 工具将 Hive 对象和 URL 权限以及 Kafka 权限从 CDH 集群迁移到 CDP 私有云基础 集群。您可以使用 DistCp 工具将 HDFS 数据从安全的 HDP 集群迁移到安全或不安全的CDP 私有云基础集群。
看错误信息提示是你没有定义realm,这时需要检查/var/kerberos/krb5kdc/kdc.conf和/etc/krb5kdc.conf两文件是否有定义
本文档描述如何使用多种安全管理工具来保护CDP环境。重点介绍安全管理工具与CDP环境之间的集成点,但不会探讨这些工具的核心功能。
关于Kerberos与Ldap两个方案,此处就不再赘述,分别参考我的另外两篇文章:
领取专属 10元无门槛券
手把手带您无忧上云