YARN 애플리케이션 보안

YARN 애플리케이션 보안 (YARN Application Security)

이 문서는 YARN에서 실행되는 애플리케이션의 보안에 대해 설명합니다. YARN 애플리케이션은 보안 클러스터에서 Kerberos 인증, 토큰 기반 인증, 컨테이너 격리 등을 통해 보호됩니다.

출처: 문서

본문

소개

보안이 활성화된 YARN 클러스터에서 애플리케이션은 클라이언트가 제출할 때와 컨테이너가 실행될 때 여러 보안 메커니즘을 사용합니다. 이를 통해 애플리케이션 코드와 데이터가 보호되고, 다른 사용자의 애플리케이션과 격리됩니다.

인증 (Authentication)

  • 사용자는 Kerberos로 인증한 후 애플리케이션을 제출합니다.
  • ResourceManager는 클라이언트에게 Delegation Token을 발급하여 이후의 상호작용에서 재인증 없이 신원을 확인합니다.
  • 컨테이너는 사용자를 대신하여 실행되며, 작업에 접근할 수 있는 자격 증명을 얻기 위해 토큰을 사용합니다.

컨테이너 격리 (Container Isolation)

보안 컨테이너(Secure Container)는 NodeManager의 컨테이너 실행기가 작업 제출자의 운영체제 사용자 자격으로 컨테이너를 실행하여, 한 사용자의 컨테이너가 다른 사용자의 파일/프로세스에 접근하지 못하도록 격리합니다. Linux 환경에서는 LinuxContainerExecutor가, Windows 환경에서는 WindowsSecureContainerExecutor가 사용됩니다.

자격 증명 전달

애플리케이션 제출 시 사용자는 애플리케이션에 필요한 Kerberos 자격 또는 토큰을 함께 전달할 수 있습니다. YARN은 이러한 자격 증명을 안전하게 저장하고, 컨테이너가 필요할 때 이를 제공합니다. 기본적으로 애플리케이션별로 자격 증명이 격리되어 유지됩니다.

추가 보안 고려사항

  • 로그와 사용자 데이터에 대한 접근은 접근 제어 목록(ACL)으로 제한됩니다.
  • ApplicationMaster와 컨테이너 간의 통신도 토큰 기반으로 보호됩니다.
  • 클러스터 보안 기능을 완전히 활용하려면 운영체제 수준의 보안 설정과 함께 Kerberos 환경을 올바르게 구성해야 합니다.

더 알아보기 (Learn more)