信息安全公益宣传,信息安全知识启蒙。
教程列表见微信公众号底部菜单
adoop安全目录:
kerberos(已发布)
elasticsearch
knox
oozie
ranger
apache sentry
一、大数据基本组件
二、Hadoop安全背景
共享集群
按照业务或应用的规则划分资源队列,并分配给特定用户
HDFS上存放各种数据,包括公共的、机密的
安全认证:确保某个用户是自己声称的那个用户
安全授权:确保某个用户只能做他允许的那些操作
三、设备说明
四、kerberos基本概念:
Principal(安全个体):被认证的个体,有一个名字和口令
KDC(key distribution center ) : 是一个网络服务,提供ticket 和临时会话密钥
Ticket:一个票据,客户用它来向服务器证明自己的身份,包括客户标识、会话密钥、时间戳。
AS (Authentication Server): 认证服务器
TGS(Ticket Granting Server): 许可证服务器
TGT:Ticket-granting Ticket
五、kerberos认证过程:
六、集群启用Kerberos认证
安装KDC Server
1、安装一个新的KDC Server(任意一个集群主机,这里hdp141为例)
2、打开KDC Server的配置文件
# vi /etc/krb5.conf
3、(可选)自定义realms配置(EXAMPLE.COM修改为CESHI.COM,下面例子都为CESHI.COM)
4、创建Kerberos数据库
创建过程中需要输入master key。
5、启动KDC
6、创建kerberos Admin
通过创建一个admin principal创建KDC admin,需要输入principal的密码。
打开KDC ACL文件,确认admin principal在KDC ACL中拥有权限,若没有对应的域则需要添加。
如果修改了文件kadm5.acl,那么你就必须重启kadmin进程
7、启用Kerberos保护
安装JCE
必须用官网下载的JCE覆盖本地已有的JCE,否则将缺少供Kerberos使用的加密方式
在Ambari server所在的主机和集群中的所有主机上,根据使用的JDK版本选择合适的JCE策略文件。
• Oracle JDK 1.7:
http://www.oracle.com/technetwork/java/javase/downloads/jce-7-
download-432124.html
• Oracle JDK 1.8:
http://www.oracle.com/technetwork/java/javase/downloads/jce8-
download-2133166.html
在Ambari Server所在主机和集群中的所有主机上,添加unlimited security policy JCE jars
到目录$AMBARI_SERVER_JAVA_HOME/jre/lib/security/下。
注意:在所有的主机上,JCE相关的包都必须解压到配置文件/etc/ambari-server/conf/ambari.properties中属性java.home所指定的JDK目录下
重启Ambari Server(ambari server服务器hdp140)
8、运行Kerberos保护向导
(1) 确认KDC已经安全和正确配置,并且已经在集群的所有主机上配置好JCE。
(2)登录Ambari Web,打开管理员 > Kerberos
(3)点击启用Kerberos,启用安装向导,选择条件检查
(4)提供关于KDC和管理员账号的信息
KDC相关信息请参考配置文件/etc/krb5.conf
(5)ambari会在集群的主机上安装Kerberos客户端,然后通过测试是否能创建principal,生成keytab和分配Keytab来测试是否能连接KDC。
自定义Hadoop使用的Kerberos identities
(6)确认你的配置。你可以通过页面下载自动创建的包含principals和Keytabs的CSV文件。
(7)停止服务
(8)启用kerberos
Keytabs保存在主机的/etc/security/keytabs目录下。
(9)启动和测试服务
启动和测试服务成功后点击完成以结束Kerberos的启用。
(10)查看已启用的Kerberos配置
到这里kerberos安装完成。
高级选项:
为Ambari Server设置Kerberos(可选项)
1. 使用kadmin在你的KDC所在的主机(hdp141)为Ambari Server创建一个principal。(ambari-server为自定义名)
2. 为此principal生成一个Keytab
3. 将单前目录生成的Keytab拷贝到Ambari Server所在的集群。确定该文件有合适的权限,能够被启动Ambari Server守护进程所访问。
4. 停止ambari server
5. 运行setup-security命令,设置JAAS。标红部分为需要设置部分。
A. 选择3,Setup Ambari kerberos JAAS configuration
B. 输入第一步为Ambari Server设置的principal名
C. 输入Ambari principal的Keytab所在路径
开始实测:
1.新建测试用户
普通用户需要安装ranger(后面介绍)管理权限。
列出所有用户
创建测试用户
登录验证
# kinit test #登陆
ceshi123456.
退出登陆状态
集群登录与授权(hdfs用户)
未使用kerberos用户认证前执行
使用kerberos用户认证
此时test用户默认有查看权限,无目录授权
换到hdfs用户下,初始化hdfs
查看hdfs的Kerberos用户名
改变目录属性:hadoop fs -chown test:hdfs /test
使用test用户登录
修改密码和重新生成
生成新的多用户使用keytab文件
创建keytab文件(生成到当前文件夹下)
案例:将hive和hdfs的keytab集成到同一个keytab文件中
1. 查看所有princs
2. 添加hdfs的princs的keytab到hdfs-hive.keytab
3. 添加hive的princs的keytab到hdfs-hive.keytab
查看生成的hdfs-hive.keytab
使用生成的Keytab文件登录
修改租期
1.修改全局租期
#重新启动
2.手动修改用户租期时间
#应用例子
退出后,重新启动
3.使用spark任务测试kerberos下的作业提交
指定spark用户和密码
上传spark文件到opt
#spark测试文件
spark命令提交任务
疑难问题1:
解决:
疑难问题2:
解决:
领取专属 10元无门槛券
私享最新 技术干货