大数据安全浅析

信息安全公益宣传,信息安全知识启蒙。

教程列表见微信公众号底部菜单

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:

解决:

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180209B0Y1GL00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券