`
zhan8610189
  • 浏览: 75522 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hadoop kerberos security配置

 
阅读更多

这是我很早以前开始学习hadoop时写的一篇文章,文章内容比较粗糙,现在张贴出来。以飨读者。

 

1. Introduction

Kerberos Security Management Mechanism is new to hadoop 1.0 and Cloudera Distributed Hadoop. 在hadoop 1.0和CDH3中新加上了kerberos安全机制来控制hadoop集群的访问权限。在之前的版本,都没有kerberos安全论 证 之 说 , 默 认 集 群 是 可 靠 的 , 值 得 信 赖 的 。 在mr和hdfs交 互 时 都 不需要认证。

 

没有强有力的安全保障会使一些恶意用户恶意提交作业,篡 改jobtracker状 态 , 修 改hdfs文 件 , 甚 至 直 接 伪 装 成 合 法 用 户 去 修 改Hadoop集群的状态来控制hadoop集群。当然任何系统都没有绝对安全之说,只有安全的级别高低之分。

 

Kerberos可以将认证的密钥放到可靠的节点上,当集群运行时,集群内的节点使用密钥来认证。只有认证通过的节点才能加入到集群中来,流氓节点由于没有密钥信息而通不过验证,无法与集群内部的节点进行通信。防止了集群的恶意修改,保障了hadoop集群的安全运行。

 

2. Hadoop Kerberos Configuration

在配置之前需要在hadoop_env.sh里面配置一个java属性变量:

export HADOOP_OPTS="$HADOOP_OPTS -DKERBEROS_DOMAIN=you-kerberos-domain.com"

 2.1 core-site.xml

在core-site.xml中配置如下参数。  

<property>
<name>hadoop.security.authorization</name>
<value>true</value>
<description>Is service-level authorization enabled?</description>
</property>
<property>
<name>hadoop.rpc.protection</name>
<value>privacy</value>
<description>Possible values are authentication (no integrity, privacy)
</description>
</property>
<property>
<name>hadoop.security.authentication</name>
<value>kerberos</value>
<description>Possible values are simple (no authentication), and kerberos
</description>
</property>

 

2.2 hdfs-site.xml

在hdfs-site.xml中配置如下参数。  

<property>
<name>dfs.https.address</name>
<value>namenodeHost:50470</value>
</property>
<property>
<name>dfs.https.port</name>
<value>50470</value>
</property>
<property>
<name>dfs.block.access.token.enable</name>
<value>true</value>
</property>
<property>
<name>dfs.namenode.keytab.file</name>
<value>/home/hadoop/hadoop/conf/hadoop.keytab</value>
</property>
<property>
<name>dfs.namenode.kerberos.principal</name>
<value>hadoop/_HOST@${KERBEROS_DOMAIN}</value>
</property>
<property>
<name>dfs.namenode.kerberos.https.principal</name>
<value>host/_HOST@${KERBEROS_DOMAIN}</value>
</property>
<property>
<name>dfs.datanode.data.dir.perm</name>
<value>755</value>
<description>Permissions for the directories on on the local filesystem where
the DFS data node store its blocks. The permissions can either be octal or
symbolic.
</description>
</property>
<property>
<name>dfs.datanode.address</name>
<value>0.0.0.0:1004</value>
</property>
<property>
<name>dfs.datanode.http.address</name>
<value>0.0.0.0:1006</value>
</property>
<property>
<name>dfs.datanode.keytab.file</name>
<value>/home/hadoop/hadoop/conf/hadoop.keytab</value>
</property>
<property>
<name>dfs.datanode.kerberos.principal</name>
<value>hadoop/_HOST@${KERBEROS_DOMAIN}</value>
</property>
<property>
<name>dfs.datanode.kerberos.https.principal</name>
<value>host/_HOST@${KERBEROS_DOMAIN}</value>
</property>

 

2.3 mapred-site.xml

在mapred-site.xml中配置如下参数。

<property>
<name>mapreduce.jobtracker.kerberos.principal</name>
<value>hadoop/_HOST@${KERBEROS_DOMAIN}</value>
</property>
<property>
<name>mapreduce.jobtracker.kerberos.https.principal</name>
<value>host/_HOST@${KERBEROS_DOMAIN}</value>
</property>
<property>
<name>mapreduce.jobtracker.keytab.file</name>
<value>/home/hadoop/hadoop/conf/hadoop.keytab</value>
</property>
<property>
<name>mapreduce.tasktracker.kerberos.principal</name>
<value>hadoop/_HOST@${KERBEROS_DOMAIN}</value>
</property>
<property>
<name>mapreduce.tasktracker.kerberos.https.principal</name>
<value>host/_HOST@${KERBEROS_DOMAIN}</value>
</property>
<property>
<name>mapreduce.tasktracker.keytab.file</name>
<value>/home/hadoop/hadoop/conf/hadoop.keytab</value>
</property>
<property>
<name>mapred.task.tracker.task-controller</name>
<value>org.apache.hadoop.mapred.DefaultTaskController</value>
</property>
<property>
<name>mapreduce.tasktracker.group</name>
<value>hadoop</value>
</property>

 

2.4 hadoop Startup Command

hadoop@_HOST:~\$ ~hadoop/hadoop/bin/hadoop-daemon.sh start namenode
root@_HOST:~\# ~hadoop/hadoop/bin/hadoop-daemon.sh start datanode
hadoop@_HOST:~\$ ~hadoop/hadoop/bin/hadoop-daemon.sh start jobtracker
hadoop@_HOST:~\$ ~hadoop/hadoop/bin/hadoop-daemon.sh start tasktracker

 

2.5 Hadoop 1.0.3 fair-scheduler Kerberos Authentication Bug(when Job Submited)

 这个bug解决得比较曲折。在官方的bug网站上已经有了相应的bug fix。找出了最终的原因是executorService的一种机制:ExecutorService可以产生若干个线程,但是不会同时生成(也就是说按需生成),因此在应该产生的时候就没有kerberos的相应的认证信息了。 请参考MAPREDUCE-4451 – fairscheduler fail to init job with kerberos authentication configured。

 

3. Secure HBase Kerberos Configuration

在配置之前需要在hbase_env.sh里面配置一个java属性变量:

export HBASE_OPTS="$HBASE_OPTS -DKERBEROS_DOMAIN=you-kerberos-domain.com"

3.1 hbase-site.xml

<property>
<name>hbase.regionserver.kerberos.principal</name>
<value>hbase/_HOST@${KERBEROS_DOMAIN}</value>
</property>
<property>
<name>hbase.regionserver.keytab.file</name>
<value>/home/hbase/hbase/conf/hdfs.keytab</value>
</property>
<property>
<name>hbase.master.kerberos.principal</name>
<value>hbase/_HOST@${KERBEROS_DOMAIN}</value>
</property>
<property>
<name>hbase.master.keytab.file</name>
<value>/home/hbase/hbase/conf/hdfs.keytab</value>
</property>
<property>
<name>hbase.security.authentication</name>
<value>kerberos</value>
</property>
<property>
<name>hbase.security.authorization</name>
<value>true</value>
</property>
<property>
<name>hbase.rpc.engine</name>
<value>org.apache.hadoop.hbase.ipc.SecureRpcEngine</value>
</property>
<property>
<name>hbase.rpc.protection</name>
<value>privacy</value>
</property>

 

3.2 Secure HBase Startup Command

hbase@_HOST:~\$ ~hbase/hbase/bin/hbase-daemon.sh start master
hbase@_HOST:~\$ ~hbase/hbase/bin/hbase-daemon.sh start regionserver

 

3.3 HBase Security Coprocessor Configuration

<property>
<name>hbase.coprocessor.master.classes</name>
<value>org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
<property>
<name>hbase.coprocessor.region.classes</name>
<value>org.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hba
</property>

 

3.4 HTable Security Command

hbase提供了三个安全控制表使用权限的命令:

  1. user_permission
  2. grant
  3. revoke
 
分享到:
评论

相关推荐

    Hadoop2.0+Kerberos配置

    Hadoop的安全认证机制,在hadoop的集群中实现对服务器与服务器之间的安全保障

    Hadoop.Security.Protecting.Your.Big.Data.Platform.1491900989

    This practical book not only shows Hadoop administrators and security architects how to protect Hadoop data from unauthorized access, it also shows how to limit the ability of an attacker to corrupt ...

    Hbase 基本操作类

    //设置hadoop.security.authentication为kerberos conf.set("hadoop.security.authentication", "kerberos"); //获取kerberos配置文件路径(krb为kerberos配置文件) String krbStr=Thread.current...

    sec_hdp_security_overview.pdf

    Security is essential for organizations that store and process sensitive data in the Hadoop ecosystem. Many organizations must adhere to strict corporate security polices. Hadoop is a distributed ...

    hadoop_the_definitive_guide_3nd_edition

    Kerberos and Hadoop 324 Delegation Tokens 326 Other Security Enhancements 327 Benchmarking a Hadoop Cluster 329 Hadoop Benchmarks 329 User Jobs 331 Hadoop in the Cloud 332 Hadoop on Amazon EC2 332 10....

    使用 Hadoop 增强云数据存储安全性-研究论文

    在这项研究中,我们提出了一个带有云的软件框架(hadoop),它可以帮助我们使用 map-reduce 模型处理大量数据。 为了增加安全性,我们使用 Kerberos 身份验证协议,该协议帮助我们增强云上的安全级别,还用于向用户...

    java连接sqoop源码-Security_Labs:安全实验室

    kerberos 的安全性 广告概述 配置名称解析和 AD 证书 设置对 Active Directory 服务器的访问 为 Ambari 启用 Active Directory 身份验证 Kerborize 集群 使用 SSSD - AD KDC 设置 AD/操作系统集成 Ambari 服务器安全...

    CDH安全技术方案.docx

    CDH安全技术方案:关于 配置TLS证书、2 配置Kerberos、3 配置Sentry和4 集成Hive

    HBase.The.Definitive.Guide.2nd.Edition

    Go deeper into HBase security, including Kerberos and encryption at rest Table of Contents Chapter 1. Introduction Chapter 2. Installation Chapter 3. Client API: The Basics Chapter 4. Client API: ...

    大数据图标大全.docx

    大数据图标大全全文共4页,当前为第1页。大数据图标大全全文共4页,当前为第1页。... Eagle Analyze Big Data Platforms For Security and Performance Ignite A memory-centric data platform Twill Apache Twill is

    HBase-The Definitive Guide-Second Edition-Early Release.pdf

    If you’re looking for a scalable storage solution to accommodate a virtually endless amount of data, this updated edition shows...Go deeper into HBase security, including Kerberos and encryption at rest

    SparkYARN.pdf

    SparkYARN

    Spark: Big Data Cluster Computing in Production

    Coverage includes Spark SQL, Tachyon, Kerberos, ML Lib, YARN, and Mesos, with clear, actionable guidance on resource scheduling, db connectors, streaming, security, and much more. Spark has become ...

Global site tag (gtag.js) - Google Analytics