hadoop中没有中央服务器来认证用户,也没有安全网关或者认证机制。被授权可以访问NameNode的用户理论上能够删除数据或者假冒其他用户访问他们不应该访问的数据。 hadoop中也没有任何用于角色分配或对象层级访问的机制
Hadoop安全包括三个主要概念:
- 验证(可用Kerberos)
- 授权(可用Sentry)
- 审计
既要保护静态数据、也要保护传输中的数据
0. Hadoop自带的用户权限体系
每个关键的hadoop守护进程需要在单独的用户下运行,需要的三个用户:
- yarn 用户用于管理RM
- mapred 用户用来管理mr服务
- hdfs 用户用来管理HDFS文件系统
groupadd hadoop
useradd -g hadoop yarn # yarn owns the YARN related services
useradd -g hadoop hdfs # hdfs ownsthe HDFS services
useradd -g hadoop mapred # mapred owns the MapReduce services
1. Kerberos
Kerberos是一个开源的网络身份验证协议,它假设主机是可信任的(但网络不是)
验证主要有3个步骤:
- 认证服务器授予客户端要求访问Hadoop集群的授权票据(TGT)
- 客户端使用它们的凭据解密TGT,并使用TGT从票证授予服务器(TGS)获取服务票证
- 客户端使用TGS授予的服务票据来访问Hadoop集群
2. Apache Sentry
- Linux下的用户,以及用户组
- Hive的角色
- 使用hue的用户