Web Application Proxy

Web Application Proxy

Web Application Proxy는 YARN의 일부로, 기본적으로 Resource Manager(RM)의 일부로 실행되지만 단독(stand alone) 모드로 실행되도록 구성할 수도 있습니다. 프록시가 존재하는 이유는 YARN을 통한 웹 기반 공격의 가능성을 줄이기 위해서입니다.

출처: 문서

본문

개요 (Overview)

소개 (Introduction)

Web Application Proxy는 YARN의 일부입니다. 기본적으로 Resource Manager(RM)의 일부로 실행되지만 단독 모드로 실행되도록 구성할 수 있습니다. 프록시의 이유는 YARN을 통한 웹 기반 공격의 가능성을 줄이기 위해서입니다.

YARN에서 Application Master(AM)는 웹 UI를 제공하고 그 링크를 RM에 보낼 책임이 있습니다. 이는 여러 잠재적 문제를 열어줍니다. RM은 신뢰할 수 있는 사용자로 실행되는데, 그 웹 주소를 방문하는 사람들은 그 주소와 그것이 제공하는 링크를 신뢰할 것이라고 취급합니다. 하지만 실제로 AM은 신뢰할 수 없는 사용자로 실행되며, AM이 RM에 주는 링크는 악의적이거나 그 외의 어떤 것으로도 향할 수 있습니다. Web Application Proxy는 주어진 애플리케이션을 소유하지 않은 사용자에게 신뢰할 수 없는 사이트에 연결하고 있다고 경고함으로써 이 위험을 완화합니다.

이에 더해 프록시는 악의적인 AM이 사용자에게 미칠 수 있는 영향을 줄이려고도 합니다. 주로 사용자의 쿠키를 제거하고, 로그인한 사용자의 사용자 이름을 제공하는 단일 쿠키로 대체함으로써 이를 수행합니다. 대부분의 웹 기반 인증 시스템은 쿠키에 기반해 사용자를 식별하기 때문입니다. 신뢰할 수 없는 애플리케이션에 이 쿠키를 제공하면 악용될 가능성이 열립니다. 쿠키가 적절히 설계되어 있다면 그 가능성은 매우 미미하겠지만, 이는 그 잠재적 공격 벡터를 줄이기 위한 것입니다.

현재 상태 (Current Status)

현재 프록시 구현은 AM이 악의적인 외부 사이트로 연결되는 링크를 제공하는 것을 막지 않으며, 악의적인 자바스크립트 코드가 실행되는 것도 막지 않습니다. 사실 자바스크립트로 쿠키를 얻을 수 있으므로, 요청에서 쿠키를 제거하는 것은 현재 시점에서 최소한의 이점만 있습니다. 향후에는 위에서 설명한 공격 벡터를 해결하고 AM의 웹 UI에 연결하는 것을 더 안전하게 만들고자 합니다.

배포 (Deployment)

Configurations

| Configuration Property | Description | | yarn.web-proxy.address | 웹 프록시의 주소를 HOST:PORT로 지정. 지정하지 않으면 프록시는 RM의 일부로 실행됩니다. | yarn.web-proxy.keytab | 프록시가 RM의 일부로 실행되지 않을 때 사용할 WebAppProxy용 keytab. | yarn.web-proxy.principal | 프록시가 RM의 일부로 실행되지 않을 때 사용할 프록시용 kerberos principal.

Web Application Proxy 실행 (Running Web Application Proxy)

단독 웹 애플리케이션 프록시 서버는 다음 명령으로 실행할 수 있습니다.

  $ yarn proxyserver

또는 사용자는 다음 명령으로 단독 Web Application Proxy 서버를 데몬으로 시작할 수 있습니다.

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

더 알아보기 (Learn more)