hadooprbac_hadoop集群认证和授权

CDH 安全

hadoop的HDFS和mapreduce均缺乏相应的安全机制,比如在HDFS中,用户只要知道某个block的blockID,便可以绕过NameNode直接从DataNode上读取该block,用户可以向任意DataNode上写block;在MapReduce中,用户可以修改或者杀掉任意其他用户的作业等。为了增强hadoop的安全机制,从2009年起,Apache专门抽出一个团队,从事为hadoop增加基于kerberos和Deletion token的安全认证和授权机制工作。

下面我就会通过实际的配置案例来演示hadoop的认证(kerberos)和授权(sentry)实现。

特别说明:本次试验环境,基于上一篇博文(CDH和CM介绍及搭建)的环境进行操作。

hadoop集群的认证安全kerberos

Kerberos 介绍

Kerberos 几乎是hadoop集群唯一可用的安全认证的保证机制。为什么我要需要kerberos呢?因为hadoop集群默认采用基于操作系统账号的simple认证,基本没有安全性保证,用户只需要在客户端的操作系统上建立一个同名账号,就可以伪装成任何用户访问集群。为此我们就需要更强的认证机制。

Kerberos的认证过程如下图所示:

kerberos几个重要的基础概念如下表:

kerberos 的配置

在Hadoop1上执行以下操作,安装kerberos服务器和客户端

# yum -y install krb5-server krb5-libs krb5-workstation

修改kdc.conf配置文件,设置租约续期的最长时间,其余均为默认设置

[root@hadoop1-fblinux ~]# cat /var/kerberos/krb5kdc/kdc.conf

[kdcdefaults]

kdc_ports = 88

kdc_tcp_ports = 88

[realms]

HADOOP.COM = {# 起的名字

#master_key_type = aes256-cts# 此配置项是加密的算法,如果启用aes256,需要JDK上打过JCE补丁,我们已经打过,实际上可以启用。

max_renewable_life = 7d 0h 0m 0s# 为租约续期的最长时间

acl_file = /var/kerberos/krb5kdc/kadm5.acl

dict_file = /usr/share/dict/words

admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab

supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal camellia256-cts:normal camellia128-cts:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal

}

修改krb5配置文件,设置kdc server信息和认证的域

[root@hadoop1-fblinux ~]# cat /etc/krb5.conf

# Configuration snippets may be placed in this directory as well

includedir /etc/krb5.conf.d/

[logging]

default = FILE:/var/log/krb5libs.log

kdc = FILE:/var/log/krb5kdc.log

admin_server = FILE:/var/log/kadmind.log

[libdefaults]

dns_lookup_realm = false

ticket_lifetime = 24h

renew_lifetime = 7d

forwardable = true

rdns = false

pkinit_anchors = /etc/pki/tls/certs/ca-bundle.crt

default_realm = HADOOP.COM

[realms]

HADOOP.COM = {

kdc = 192.168.201.151

admin_server = 192.168.201.151

}

[domain_realm]

.hadoop.com = HADOOP.COM

hadoop.com = HADOOP.COM

初始化kerberos数据库,这里会要求输入一个密码,这个密码是kbs的管理员密码,一定要记住,忘记是很难办的

[root@hadoop1-fblinux ~]# kdb5_util create -s

Loading random data

Initializing database '/var/kerberos/krb5kdc/principal' for realm 'HADOOP.COM',

master key name 'K/M@HADOOP.COM'

You will be prompted for the database Master Password.

It is important that you NOT FORGET this password.

Enter KDC database master key:

Re-enter KDC database master key to verify:

创建管理员用户,创建张三李四用户,并导出证书

[root@hadoop1-fblinux ~]# kadmin.local

Authenticating as principal root/admin@HADOOP.COM with password.

kadmin.local: addprinc admin/admin# 创建管理员用户

WARNING: no policy specified for admin/admin@HADOOP.COM; defaulting to no policy

Enter password for princi

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值