hadoop的安全系列

标签(空格分隔): hadoop安全系列


  • 一:hadoop安全背景
  • 二: Kerberos基本概念

#一: hadoop安全背景
##1.1、共享集群

1. 按照业务或应用的规划份资源队列,并分配给特定用户
2. hdfs上存放各种数据,包括公共的,机密的

##1.2、重要概念

1.安全认证:
确保某个用户是自己声称的那个用户
2.安全授权: 
确保某个用户只能做它允许的那些操作
3. user : 
hadoop 用户,可以提交作业,查看自己作业状态,查看HDFS上的文件
4. Service:
Hadoop 中的服务组件,包括:
namenode ,resourcemanager ,datanode, nodemanager 

##1.3、hadoop1.0 的安全问题

1.User to Service
 Namenode或者jobtracker缺乏安全认证机制
 DataNode缺乏安全授权机制
 JobTracker缺乏安全授权机制

2.Service to service安全认证
     Datanode与TaskTracker缺乏安全授权机制,这使得用户可以随意启动假的datanode和tasktracker

3.磁盘或者通信连接没有经过加密

4. Apache Hadoop 1.0.0版本和Cloudera CDH3之后的版本添加了安全机制
 Hadoop提供了两种安全机制:Simple和Kerberos

 4.1:Simple
   采用SAAS协议,默认机制
   配置简单、使用简单、适合单一团队使用

 4.2: kerberos
     Kerberos可以将认证的密钥在集群部署时事先放到可靠的节点上。只有被认证过节点才能正常使用,配置稍复杂、使用稍麻烦、安全性高

1.4、 Kerberos解决的Hadoop认证问题

1. kerberos实现的是机器级别的安全认证,也就是服务到服务的认证

2. 解决服务器到服务器的认证
   2.1、防止了用户伪装成Datanode,Tasktracker,去接受JobTracker,Namenode的任务指派

3. 解决client到服务器的认证
   Kerberos对可信任的客户端提供认证,确保他们可以执行作业的相关操作

4. 对用户级别上的认证并没有实现
   无法控制用户提交作业的操作

二: Kerberos基本概念

2.1. kerberos 包含的实体

Principal(安全个体):被认证的个体,有一个名字和口令

KDC(key distribution center ) : 是一个网络服务,提供ticket 和临时会话密钥

Ticket:一个票据,客户用它来向服务器证明自己的身份,包括客户标识、会话密钥、时间戳。

AS (Authentication Server): 认证服务器

TGS(Ticket Granting Server): 许可证服务器

TGT:Ticket-granting Ticket

2.2、Kerberos协议

分两部分

 Client从KDC获取TGT
 Client利用获取的TGT向KDC请求其他Service的Ticket

image_1c1s5k9ng1ou85vi1d56k2n1hs29.png-739.5kB

2.3、kerberos 认证的过程

认证过程也是Session Key安全发布的过程

image_1c1s5q0qk87c1djrmim11p870a1p.png-699.5kB

2.4、Kerberos认证授权过程

image_1c1s6ecue1futkjp9l6bnurm26.png-1187.1kB

2.5 kerberos 在hadoop 上面的应用

image_1c1s6gj3017o91kukrq6bir1qtm2j.png-2350.4kB