Hadoop3.2.0 Web应用程序代理

概述

介绍

Web应用程序代理是YARN的一部分。默认情况下,它将作为资源管理器(RM)的一部分运行,但可以配置为在独立模式下运行。代理的原因是通过YARN降低基于Web的攻击的可能性。

在YARN中,Application Master(AM)有责任提供Web UI并将该链接发送给RM。这开辟了许多潜在的问题。RM作为受信任的用户运行,访问该网址的人会对其进行处理,并将其提供的链接视为受信任的,而实际上AM作为不受信任的用户运行,并且它为RM提供的链接可以指向恶意或其他任何东西。Web应用程序代理通过警告不属于给定应用程序的用户连接到不受信任的站点来降低此风险。

除此之外,代理还尝试减少恶意AM可能对用户造成的影响。它主要通过从用户剥离cookie,并用提供登录用户的用户名的单个cookie替换它们来实现。这是因为大多数基于Web的身份验证系统将基于cookie识别用户。通过将此cookie提供给不受信任的应用程序,它可以开启漏洞利用的可能性。如果cookie设计得恰当,那么潜力应该相当小,但这只是为了减少潜在的攻击向量。

当前状态

当前的代理实现不会阻止AM提供到恶意外部站点的链接,也不会阻止恶意javascript代码运行。事实上,javascript可用于获取cookie,因此从请求中删除cookie目前只有很少的好处。在未来,我们希望解决上述攻击向量,并使AM的Web UI更安全。

部署

配置

配置属性 描述
yarn.web-proxy.address Web代理的地址为HOST:PORT,如果未给出,则代理将作为RM的一部分运行。
yarn.web-proxy.keytab WebAppProxy的Keytab,如果代理未作为RM的一部分运行。
yarn.web-proxy.principal 代理的kerberos主体,如果代理不是作为RM的一部分运行的话。

运行Web应用程序代理

可以使用以下命令启动独立Web应用程序代理服务器。

 $ yarn proxyserver

或者,用户可以使用以下命令将独立的Web应用程序代理服务器作为守护程序启动

 $ $HADOOP_YARN_HOME/sbin/yarn-daemon.sh start proxyserver

原文链接: https://hadoop.apache.org/docs/r3.2.0/

展开阅读全文

没有更多推荐了,返回首页