Hadoop 文档

General

Common

HDFS

MapReduce

MapReduce REST APIs

YARN

YARN REST APIs

YARN Service

Submarine

Hadoop Compatible File Systems

Auth

Tools

Reference

Configuration

总览

介绍

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启动代理服务器