Hadoop安全

Roh*_*war 6 hadoop kerberos hadoop-plugins kerberos-delegation mit-kerberos

场景: - 用户登录到他的计算机将通过Kerberos身份验证进行身份验证并提交地图缩减作业

我正在努力学习"如何在Hadoop中实现Kerberos?" 我曾经使用过此文档不见了 https://issues.apache.org/jira/browse/HADOOP-4487 我还通过基本Kerberos的东西不见了(https://www.youtube.com/watch?v=KD2Q-2ToloE)

在从这些资源中学习之后,我得出了一个结论,我通过图表来表示.场景: - 用户登录到他的计算机通过Kerberos身份验证进行身份验证并提交地图缩减工作(请阅读图表的说明,它几乎不需要5分钟的时间)我想解释图表并提出与几个相关的问题步骤(粗体) 黄色背景中的数字表示整个流程(数字1到19)DT(带红色背景)表示委托令牌BAT(带绿色背景)表示块访问令牌JT(带有棕色背景)表示作业令牌

步骤1,2,3和4表示: - 请求TGT(票证授予票证)请求名称节点的服务票证. 问题1)KDC应该在哪里?它可以在我的名称节点或作业跟踪器所在的机器上吗?

步骤5,6,7,8和9表示: - 显示名称节点的服务票证,获得确认.名称节点将发出委托令牌(红色)用户将告知令牌更新程序(在这种情况下,它是作业跟踪器)

问题2)用户将此授权令牌与作业一起提交给Job Tracker.授权令牌是否会与任务跟踪器共享?

步骤10,11,12,13和14表示: - 询问服务票据以获取作业跟踪器,从KDC获取服务票证将此票证显示给Job Tracker并从JobTracker获取ACK将作业+委派令牌提交给JobTracker.

步骤15,16和17表示: - 生成块访问令牌并分布在所有数据节点上.将blockID和Block Access Token发送到Job Tracker,Job Tracker会将其传递给TaskTracker

问题3)谁将从名称节点请求BlockAccessToken和Block ID?JobTracker或TaskTracker

对不起,我错误地错过了18号.Step19表示: - 作业跟踪器生成作业令牌(棕色)并将其传递给TaskTrackers.

问题4)我可以得出结论,每个用户将有一个代表队令牌,它将分布在整个集群中,每个作业会有一个作业令牌吗?因此,用户将只有一个委托令牌和许多作业令牌(等于他提交的作业数量).

请告诉我,如果我错过了某些内容,或者在我的解释中某些方面我错了.

小智 0

确保 Hadoop 安全所需遵循的步骤

\n\n
    \n
  1. 在所有群集节点可访问的任何服务器中安装 Kerberos。\nyum install krb5-server\nyum install krb5-workstation\nyum install krb5-libs

  2. \n
  3. 修改 KDC 服务器配置中的配置文件,为主机设置 acl 文件、管理 keytab 文件。\n/var/kerberos/krb5kdc/kdc.conf

  4. \n
  5. 修改配置文件 /etc/krb5.conf 以设置 kdc 主机和管理服务器

  6. \n
  7. 在KDC主机中创建数据库

    \n\n

    $ kdb5_util 创建 \xe2\x80\x93r 主机名 -s

  8. \n
  9. 将管理员添加到 ACL 文件中

    \n\n
      \n
    1. vi /etc/kdamin.acl
    2. \n
    3. 在该文件中添加管理主体 \xe2\x80\x98admin/admin@host_name\xe2\x80\x99
    4. \n
  10. \n
  11. 添加管理主体\n$addprinc admin/admin@host_name

  12. \n
\n\n

在所有集群节点上安装 Kerberos 客户端

\n\n

yum 安装 krb5-workstation

\n\n

将 krb5.conf 复制到所有集群节点

\n\n

确保通过设置所需的配置在 Hadoop 中启用安全模式\n https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SecureMode.html

\n\n

核实 :

\n\n
    \n
  • 以普通用户身份登录集群网关或部署用户密钥表的节点
  • \n
  • 运行 \xe2\x80\x9ckinit \xe2\x80\x93k \xe2\x80\x93t /location/of/keytab 文件 username@host_name\xe2\x80\x9d
  • \n
  • 并运行 HDFS 命令或 MapReduce 作业来验证集群是否安全
  • \n
\n\n

这些是确保集群中启用 kerberos 的基本步骤。

\n