我是一名 Java 用户,当向 Hadoop mapReduce 提交作业时,它使用 Kerberos 对 Hadoop 进行身份验证,成功后会创建委派令牌,并将其与作业提交一起传递给 Hadoop,而不是 kerberos 票证(出于安全原因,如上所述)由 Hadoop 提供)。现在作业正在像我一样运行,但作业本身需要使用 Kerberos 向 Hadoop 外部的其他服务发送请求。现在我在 Hadoop 上没有 kerberos TGT,无法获取服务票证。
我是否可以通过该工作传递 Kerberos 票证? (我知道这可能很危险,因为我们不想传递秘密),JobConf 可以将字符串到字符串对传递到 Hadoop,但我必须将 TGT 转换为 json 字符串并在作业运行期间恢复它?
或者是否可以使用委托代币改革TGT?
我尝试用谷歌搜索,但没有太多信息,有人可以帮忙吗?谢谢。
**编辑:**
请参阅设计http://carfield.com.hk:8080/document/distributed/hadoop-security-design.pdf http://carfield.com.hk:8080/document/distributed/hadoop-security-design.pdf,如果您还没有这样做的话。
或者是否可以使用委托代币改革TGT?
不,委托令牌由 Hadoop 名称节点颁发,虽然它基于 Kerberos 身份验证,但它是独立的,您无法从中派生 Kerberos TGT。
在最初的设计中,我们考虑仅使用 Kerberos(没有任何额外的令牌),这将使您的计划变得简单,但由于以下原因决定不这样做:
表现:
- 数千个 M/R 任务可能需要在以下位置获取 Kerberos 票证:
同时
- Kerberos 凭据需要在到期前更新
对于预定的作业,这将是一个问题
- 委派令牌不依赖于 Kerberos,并且可以与边缘使用的非 Kerberos 身份验证机制(例如 SSL)结合使用。
在您的情况下,您可以使用私有分布式缓存并发送可转发的 TGT。我认为这没问题,但需要再考虑一下。显然,您需要确保您的实施是安全的,您的票证具有最低限度的必要生命周期,如果可能,请使用 IP 通道绑定,并将票证仅用于授权进程。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)