zoukankan      html  css  js  c++  java
  • 10.4 hadoop安全性kerberos安全验证和委托令牌

    1.1  安全性

    HDFS的文件许可模块可以组织程序漏洞而毁坏文件系统,也能阻止运行hadoop fs –rmr删除文件指令,但是无法组织恶意的用户假冒root身份来访问或者删除数据。需要使用Kerberos实现用户认证。

    1.1.1         Kerberos和Hadoop

    (1)客户端请求认证的步骤

     

     

    1) 认证。客户端向认证服务器获取含时间票据授权票据(Ticket-Granting Ticket,TGT)。

    2) 授权。客户使用TGT向票据授权服务器请求服务器票据。

    3) 服务请求。客户端使用服务器票据向服务器发送请求。

    (2)hadoop配置使用Kerberos

    1)hadoop配置文件如何配置

    core-site.xml文件中属性hadoop.security.authentication设置为kerberos启动kerberos认证。同时要将hadoop.security.authorization属性设置为true。用户调用kinit命令来执行认证,这个过程需要输入密码,用户申请到的TGT具有时效性,默认10小时,可以是一周。采用单次登陆(single sign-on)到hadoop。如果不希望输入密码,可以用ktutil命令创建一个Kerberos的keytab文件,保存密码使用命令kinit –t keytab执行认证。hadoop-policy.xml文件中访问控制列表ACL(access control list)配置哪些用户对哪些hadoop服务具有访问权限。

    2)启动一个KDC(key distribution center)验证授权服务器

    3)执行初始化验证任务kinit

    可以输入kinit命令,会提示输入密码。或者kinit –t keytab指定密码文件。验证之后就可以hadoop fs –put qu.txt上传文件。

    4)klist命令查看票据的过期时间,kdestory指令可销毁票据。

    1.1.2         委托令牌

    (1)委托令牌创建

    一个HDFS读操作会与namenode和datanode多次交互,如果每次交互都要认证,则KDC压力会很大,所以使用委托令牌来支持后续认证。委托令牌由hadoop服务器创建。客户端首次登陆之后,从namenode服务器取得委托令牌,用令牌作为后续验证。

    (2)块访问令牌

    客户端执行HDFS块操作的委托令牌,客户端向namenode获取的委托令牌可以去datanode验证以获取数据,因为namenode会通过心跳将令牌传给datanode。通过设置属性dfs.block.access.token.enable属性为true来开启块访问令牌。

    (3)HDFS之间共享令牌

    将属性mapreduce.job.hdfs-servers设置为逗号隔开的HDFS URI列表,才能在其他HDFS共享令牌。

    1.1.3         采用认证后安全性提高

    (1)   分布式缓存分共享缓存和私有缓存。

    (2)   用户只能操作自己的作业,需要将mapreduce.cluster.acls.enabled属性设置为true,mapreduce.job.acl-view-job和mapreduce.job.acl.modify-job属性设置可以查看和修改的的用户,用逗号隔开。

    (3)   阻止遏抑的namenode和datanode或节点管理器加入集群,需要加入的节点要进行验证配置,例如datanode,把dfs.datanode.keytab.file设置为保存密码的keytab文件,其次在dfs.datanode.keyberos.principal和hadoop-policy.xml文件中的security.datanode.protocal.acl属性设置为datanode的用户名。配置权限验证。

    (4)   任务只与父application master通讯,阻止攻击者获取数据。

    (5)多个服务之间数据传输采用加密方式。

    自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取:

    https://www.cnblogs.com/bclshuai/p/11380657.html

  • 相关阅读:
    IT 已成为最疯狂的加班行业,没有之一
    编程和音乐真的很像吗?
    jquery:
    内存管理机制/垃圾回收机制:
    处理跨域:
    创建Djongo需要改url的地方:
    数据库连接池 DBUtils:
    C# 使用 SAP NCO3.0 调用SAP RFC函数接口
    java反射机制的原理与简单使用
    java反射机制的原理与简单使用
  • 原文地址:https://www.cnblogs.com/bclshuai/p/12392827.html
Copyright © 2011-2022 走看看