Amazon EMR의 보안 - Amazon EMR

Amazon EMR의 보안

보안과 규정 준수는 AWS와 고객의 공동 책임입니다. 이 책임 공유 모델을 통해 고객은 운영 부담을 덜 수 있습니다. AWS가 호스트 운영 체제 및 가상화 계층에서 EMR 클러스터가 운영하는 시설의 물리적 보안에 이르기까지 구성 요소를 운영, 관리, 제어하기 때문입니다. Amazon EMR 클러스터에 대한 책임, 관리 및 업데이트 그리고 애플리케이션 소프트웨어와 AWS에서 제공하는 보안 제어의 구성을 가정합니다. 이러한 책임의 차이를 일반적으로 클라우드 자체의 보안과 클라우드 내부의 보안이라고 합니다.

  • 클라우드의 보안 - AWS는 AWS에서 AWS 서비스를 실행하는 인프라를 보호할 책임이 있습니다. 또한 AWS는 안전하게 사용할 수 있는 서비스를 제공합니다. 서드 파티 감사원은 정기적으로 AWS규정 준수 프로그램의 일환으로 보안 효과를 테스트하고 검증합니다. Amazon EMR에 적용되는 규정 준수 프로그램에 대한 자세한 내용은 규정 준수 프로그램 제공 범위 내 AWS 서비스를 참조하세요.

  • 클라우드에서의 보안 - Amazon EMR 클러스터를 보안하는 데 필요한 모든 보안 구성 및 관리 작업도 수행할 책임이 있습니다. Amazon EMR 클러스터를 배포하는 고객은 인스턴스에 설치된 애플리케이션 소프트웨어를 관리하고 요구 사항, 관련 법률 및 규정에 따라 보안 그룹, 암호화 및 액세스 제어와 같은 AWS 제공 기능을 구성할 책임이 있습니다.

이 설명서는 Amazon EMR을 사용할 때 공동 책임 모델을 적용하는 방법을 이해하는 데 도움이 됩니다. 이 장의 각 주제에서는 Amazon EMR 구성 방법과 다른 AWS 서비스를 사용해 보안 및 규정 준수 목표를 충족하는 방법을 안내합니다.

네트워크 및 인프라 보안

관리형 서비스인 Amazon EMR은 Amazon Web Services: Overview of security processes 백서에 설명된 AWS 글로벌 네트워크 보안 절차로 보호됩니다. AWS 네트워크 및 인프라 보호 서비스는 호스트 및 네트워크 수준 경계 모두에서 세분화된 보호를 제공합니다. Amazon EMR은 네트워크 보호 및 규정 준수 요구 사항을 해결하는 AWS 서비스 및 애플리케이션 기능을 지원합니다.

  • Amazon EC2 보안 그룹은 Amazon EMR 클러스터 인스턴스에 대한 가상 방화벽의 역할을 수행하여 인바운드 및 아웃바운드 네트워크 트래픽을 제한합니다. 자세한 내용은 보안 그룹에서 네트워크 트래픽 제어를 참조하세요.

  • Amazon EMR 퍼블릭 액세스 차단(BPA)을 사용하면 클러스터에 포트의 퍼블릭 IP 주소로부터 들어오는 인바운드 트래픽을 허용하는 보안 구성이 있는 경우 퍼블릭 서브넷에서 클러스터를 시작할 수 없습니다. 자세한 내용은 Amazon EMR 퍼블릭 액세스 차단 사용을 참조하세요.

  • Secure Shell(SSH)을 통해 사용자는 클러스터 인스턴스의 명령줄에 안전하게 연결할 수 있습니다. SSH를 사용하여 클러스터의 마스터 노드에서 애플리케이션이 호스팅하는 웹 인터페이스를 볼 수도 있습니다. 자세한 내용은 SSH 자격 증명에 대해 EC2 키 페어 사용클러스터에 연결을 참조하세요.

Amazon EMR의 기본 Amazon Linux AMI에 대한 업데이트

중요

Amazon Linux 또는 Amazon Linux 2 Amazon Machine Image(AMI)를 실행하는 EMR 클러스터는 기본 Amazon Linux 동작을 사용하며, 재부팅이 필요한 중요한 핵심 커널 업데이트를 자동으로 다운로드하여 설치하지는 않습니다. 이는 기본 Amazon Linux AMI를 실행하는 다른 Amazon EC2 인스턴스와 동일한 동작입니다. Amazon EMR 릴리스가 출시된 후 재부팅이 필요한 새로운 Amazon Linux 소프트웨어 업데이트(예: 커널, NVIDIA, CUDA 업데이트)를 사용할 수 있게 되면 기본 AMI를 실행하는 EMR 클러스터 인스턴스는 해당 업데이트를 자동으로 다운로드하여 설치하지 않습니다. 커널 업데이트를 받으려면 최신 Amazon Linux AMI를 사용하도록 Amazon EMR AMI를 사용자 지정할 수 있습니다.

애플리케이션의 보안 상태 및 클러스터가 실행되는 기간에 따라 클러스터를 주기적으로 다시 부팅하여 보안 업데이트를 적용하거나 패키지 설치 및 업데이트를 사용자 지정하기 위한 부트스트랩 작업을 만들 수 있습니다. 실행 중인 클러스터 인스턴스에서 선택 보안 업데이트를 테스트하고 설치하도록 선택할 수도 있습니다. 자세한 내용은 Amazon EMR용 기본 Amazon Linux AMI 사용 단원을 참조하십시오. 네트워킹 구성은 Amazon S3에서 Linux 리포지토리로의 HTTP 및 HTTPS 송신을 허용해야 합니다. 그렇지 않으면 보안 업데이트에 실패합니다.

Amazon EMR과 AWS Identity and Access Management

AWS Identity and Access Management(IAM)은 관리자가 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있도록 지원하는 AWS 서비스입니다. IAM 관리자는 어떤 사용자가 Amazon EMR 리소스를 사용할 수 있도록 인증(로그인)되고 권한이 부여(권한 있음)될 수 있는지 제어합니다. IAM 자격 증명에 사용자, 그룹 및 역할이 포함됩니다. IAM 역할은 IAM 사용자와 유사하지만, 특정 사용자와 연결되어 있지 않으며 권한이 필요한 모든 사용자가 수임할 수 있습니다. 자세한 내용은 Amazon EMR에 대한 AWS Identity and Access Management를 참조하세요. Amazon EMR은 여러 IAM 역할을 사용하여 Amazon EMR 클러스터에 대한 액세스 제어를 구현하는 데 도움이 됩니다. IAM은 추가 비용 없이 사용할 수 있는 AWS 서비스입니다.

  • Amazon EMR에 대한 IAM 역할(EMR 역할) - Amazon EMR 클러스터가 시작될 때 Amazon EC2 인스턴스를 프로비저닝하는 등 Amazon EMR 서비스가 사용자를 대신하여 다른 AWS 서비스에 액세스할 수 있는 방법을 제어합니다. 자세한 내용은 AWS 서비스 및 리소스의 Amazon EMR 권한에 대한 IAM 역할 구성을 참조하세요.

  • 클러스터 EC2 인스턴스에 대한 IAM 역할(EC2 인스턴스 프로파일) - 인스턴스를 시작할 때 Amazon EMR 클러스터의 모든 EC2 인스턴스에 할당되는 역할. 클러스터에서 실행되는 애플리케이션 프로세스는 이 역할을 사용하여 Amazon S3와 같은 다른 AWS 서비스와 상호 작용합니다. 자세한 내용은 클러스터의 EC2 인스턴스에 대한 IAM 역할을 참조하세요.

  • 애플리케이션에 대한 IAM 역할(런타임 역할) - Amazon EMR 클러스터에 작업 또는 쿼리를 제출할 때 지정할 수 있는 IAM 역할. Amazon EMR 클러스터에 제출하는 작업 또는 쿼리는 런타임 역할을 사용하여 Amazon S3의 객체와 같은 AWS 리소스에 액세스합니다. Spark 및 Hive용 Amazon EMR 작업에서 런타임 역할을 지정할 수 있습니다. 런타임 역할을 통해 다른 IAM 역할을 사용하여 동일한 클러스터에서 실행되는 작업을 격리할 수 있습니다. 자세한 내용은 Amazon EMR에서 런타임 역할로 IAM 역할 사용을 참조하세요.

인력 자격 증명은 AWS에서 워크로드를 빌드하거나 운영하는 사용자를 나타냅니다. Amazon EMR은 다음과 같은 인력 자격 증명을 지원합니다.

  • AWS IAM Identity Center(Idc)는 AWS 리소스에 AWS 서비스 대한 사용자 액세스를 관리하는 데 권장됩니다. 한 곳에서 여러 AWS 계정 애플리케이션에 대한 일관된 액세스를 인력 자격 증명에 할당할 수 있습니다. Amazon EMR은 신뢰할 수 있는 자격 증명 전파를 통해 인력 자격 증명을 지원합니다. 신뢰할 수 있는 자격 증명 전파 기능을 사용하면 사용자가 애플리케이션에 로그인할 수 있으며 해당 애플리케이션은 데이터 또는 리소스에 대한 액세스를 승인하기 위해 사용자의 자격 증명을 다른 AWS 서비스에 전달할 수 있습니다. 자세한 내용은 Amazon EMR에서 AWS IAM Identity Center에 대한 지원 활성화를 참조하세요.

    Lightweight Directory Access Protocol(LDAP)은 네트워크를 통해 사용자, 시스템, 서비스 및 애플리케이션에 대한 정보에 액세스하고 해당 정보를 유지 관리하기 위한 개방형 제공업체 중립 산업 표준 애플리케이션 프로토콜입니다. LDAP는 일반적으로 Active Directory(AD) 및 OpenLDAP와 같은 기업 자격 증명 서버에 대해 사용자 인증에 사용됩니다. LDAP를 EMR 클러스터와 함께 활성화하면 사용자가 기존 자격 증명을 사용하여 클러스터를 인증하고 클러스터에 액세스할 수 있습니다. 자세한 내용은 Amazon EMR에서 LDAP에 대한 지원 활성화를 참조하세요.

    Kerberos는 보안 키 암호화를 사용하여 클라이언트/서버 애플리케이션에 강력한 인증을 제공하도록 설계된 네트워크 인증 프로토콜입니다. Kerberos를 사용하는 경우 Amazon EMR은 상호 인증이 가능하도록 클러스터의 애플리케이션, 구성 요소 및 서브시스템에 대해 Kerberos를 구성합니다. Kerberos가 구성된 클러스터에 액세스하려면 Kerberos 도메인 컨트롤러(KDC)에 Kerberos 위탁자가 있어야 합니다. 자세한 내용은 Amazon EMR에서 Kerberos에 대한 지원 활성화를 참조하세요.

단일 테넌트 및 다중 테넌트 클러스터

클러스터는 기본적으로 EC2 인스턴스 프로파일을 IAM 자격 증명으로 사용하는 단일 테넌시에 대해 구성됩니다. 단일 테넌트 클러스터에서 모든 작업은 클러스터에 대한 완전하고 전체 액세스 권한을 보유하며, 모든 AWS 서비스 및 리소스에 대해서는 EC2 인스턴스 프로파일을 기반으로 액세스합니다. 다중 테넌트 클러스터에서 테넌트는 서로 격리되고 테넌트는 클러스터 및 클러스터의 EC2 인스턴스에 대한 완전한 전체 액세스 권한을 보유하지 않습니다. 다중 테넌트 클러스터의 자격 증명은 런타임 역할 또는 인력 자격 증명입니다. 다중 테넌트 클러스터에서는 AWS Lake Formation 또는 Apache Ranger를 통해 세분화된 액세스 제어(FGAC)에 대한 지원을 활성화할 수도 있습니다. 런타임 역할 또는 FGAC가 활성화된 클러스터에서 iptables를 통해 EC2 인스턴스 프로파일에 대한 액세스도 비활성화할 수 있습니다.

중요

단일 테넌트 클러스터에 액세스할 수 있는 모든 사용자는 Linux 운영 체제(OS)에 소프트웨어를 설치하고, Amazon EMR에서 설치한 소프트웨어 구성 요소를 변경하거나 제거하며, 클러스터의 일부인 EC2 인스턴스에 영향을 미칠 수 있습니다. 사용자가 Amazon EMR 클러스터의 구성을 설치하거나 변경할 수 없도록 하려면 클러스터에 대해 다중 테넌시를 활성화하는 것이 좋습니다. 런타임 역할, AWS IAM Identity Center, Kerberos 또는 LDAP에 대한 지원을 활성화하여 클러스터에서 다중 테넌시를 활성화할 수 있습니다.

데이터 보호

AWS를 사용하면 AWS 서비스 및 도구를 사용하여 데이터 보안 방식과 데이터에 액세스할 수 있는 사용자를 확인함으로써 데이터를 제어할 수 있습니다. AWS Identity and Access Management(IAM)과 같은 서비스를 사용하면 AWS 서비스 및 리소스에 대한 액세스를 안전하게 관리할 수 있습니다. AWS CloudTrail을 사용하면 탐지 및 감사가 가능합니다. Amazon EMR을 사용하면 사용자가 완전히 관리하거나 AWS에서 관리하는 키를 사용하여 Amazon S3에 저장 데이터를 쉽게 암호화할 수 있습니다. Amazon EMR은 전송 중 데이터에 대한 암호화 활성화도 지원합니다. 자세한 내용은 저장 데이터 및 전송 중 데이터 암호화를 참조하세요.

데이터 액세스 제어

데이터 액세스 제어를 사용하면 IAM 자격 증명 또는 인력 자격 증명이 액세스할 수 있는 데이터를 제어할 수 있습니다. Amazon EMR은 다음과 같은 액세스 제어를 지원합니다.

  • IAM 자격 증명 기반 정책 - Amazon EMR에서 사용하는 IAM 역할에 대한 권한을 관리합니다. IAM 정책을 태그 지정과 결합하여 클러스터별로 액세스를 제어할 수 있습니다. 자세한 내용은 Amazon EMR에 대한 AWS Identity and Access Management를 참조하세요.

  • AWS Lake Formation은 데이터 권한 관리를 중앙 집중화하고 조직 전체와 외부에서 더 쉽게 공유할 수 있도록 지원합니다. Lake Formation을 사용하여 AWS Glue Data Catalog의 데이터베이스 및 테이블에 대한 세분화된 열 수준 액세스를 활성화할 수 있습니다. 자세한 내용은 Amazon EMR에서 AWS Lake Formation 사용을 참조하세요.

  • Amazon S3 Access Grants는 Active Directory 또는 AWS Identity and Access Management(IAM) 위탁자와 같은 디렉터리의 맵 ID를 S3의 데이터세트에 매핑합니다. 또한 S3 Access Grants는 AWS CloudTrail의 S3 데이터에 액세스하는 데 사용된 최종 사용자 ID와 애플리케이션을 로깅합니다. 자세한 내용은 Amazon EMR에서 Amazon S3 Access Grants 사용을 참조하세요.

  • Apache Ranger는 Hadoop 플랫폼 전반에서 포괄적인 데이터 보안을 지원, 모니터링 및 관리할 수 있는 프레임워크입니다. Amazon EMR은 Apache Hive 메타스토어 및 Amazon S3에 대해 Apache Ranger 기반 세분화된 액세스 제어를 지원합니다. 자세한 내용은 Amazon EMR과 Apache Ranger 통합을 참조하세요.