시작 시 전송 중 암호화에 대한 Amazon EMR 클러스터 모니터링 - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

시작 시 전송 중 암호화에 대한 Amazon EMR 클러스터 모니터링

작성자: Susanne Kangnoh(AWS)

환경: 프로덕션

기술: 분석, 빅 데이터 CloudNative, 보안, 자격 증명, 규정 준수

워크로드: 오픈 소스

AWS 서비스: Amazon EMR, Amazon SNS, AWS CloudTrail, Amazon CloudWatch

요약

이 패턴은 시작 시 Amazon EMR 클러스터를 모니터링하고 전송 중 암호화가 활성화되지 않은 경우 알림을 보내는 보안 제어를 제공합니다. 

AmazonEMR은 Apache Hadoop과 같은 빅 데이터 프레임워크를 쉽게 실행하여 데이터를 처리하고 분석할 수 있는 웹 서비스입니다. Amazon을 EMR 사용하면 매핑을 실행하고 단계를 동시에 줄여 비용 효율적인 방식으로 방대한 양의 데이터를 처리할 수 있습니다.

데이터 암호화는 권한이 없는 사용자가 저장 데이터 또는 전송 중 데이터에 액세스하거나 읽는 것을 방지합니다. 저장 데이터는 Amazon Simple Storage Service(Amazon S3)를 통해 각 노드의 로컬 파일 시스템, Hadoop 분산 파일 시스템(HDFS) 또는 EMR 파일 시스템(EMRFS)과 같은 미디어에 저장되는 데이터를 나타냅니다. 전송 중인 데이터는 네트워크를 통해 이동하며 작업 간에 이동하는 데이터를 말합니다. 전송 중 암호화는 Apache Spark, Apache TEZ, Apache Hadoop, Apache HBase및 Presto에 대한 오픈 소스 암호화 기능을 지원합니다. AWS 명령줄 인터페이스(AWS CLI), 콘솔 또는 AWS 에서 보안 구성을 생성하고 데이터 암호화 설정을 SDKs지정하여 암호화를 활성화합니다. 다음 두 가지 방법으로 전송 중 암호화를 위한 암호화 아티팩트를 제공할 수 있습니다.

  • Amazon S3로 인증서 압축 파일을 업로드합니다.

  • 암호화 아티팩트를 제공하는 사용자 정의 Java 클래스를 참조합니다.

이 패턴에 포함된 보안 제어는 API 호출을 모니터링하고 RunJobFlow작업에 대한 Amazon CloudWatch Events 이벤트를 생성합니다. 이벤트는 Python 스크립트를 실행하는 AWS Lambda 함수를 호출합니다. 함수는 이벤트 JSON 입력에서 EMR 클러스터 ID를 가져오고 다음 검사를 수행하여 보안 위반이 있는지 확인합니다.

  • EMR 클러스터에 AmazonEMR별 보안 구성이 있는지 확인합니다.

  • 클러스터에 보안 구성이 있는 경우 전송 중 암호화가 활성화되어 있는지 확인하세요.

  • 클러스터에 보안 구성이 없는 경우 는 Amazon Simple Notification Service(Amazon)를 사용하여 제공한 이메일 주소로 알림을 보냅니다SNS. 알림은 EMR 클러스터 이름, 위반 세부 정보, AWS 리전 및 계정 정보, 알림이 소싱되는 AWS LambdaARN(Amazon 리소스 이름)를 지정합니다.

사전 조건 및 제한 사항

사전 조건 

  • 활성 상태의 AWS 계정.

  • 이 패턴과 함께 제공되는 Lambda 코드를 업로드하기 위한 S3 버킷입니다.

  • 위반 알림을 받으려는 이메일 주소입니다.

  • Amazon EMR 로깅이 활성화되어 모든 API 로그에 액세스할 수 있습니다.

제한 사항

  • 이 탐지 제어는 리전이며 모니터링하려는 각 AWS 리전에 배포되어야 합니다.

제품 버전

  • Amazon EMR 릴리스 4.8.0 이상.

아키텍처

워크플로 아키텍처

API 호출을 모니터링하고 RunJobFlow 작업에 대한 이벤트를 생성하는 아키텍처입니다.

자동화 및 규모 조정

  • AWS Organizations를 사용하는 경우 AWS Cloudformation StackSets을 사용하여 모니터링하려는 여러 계정에 템플릿을 배포할 수 있습니다.

도구

AWS 서비스

  • Amazon EMR – AmazonEMR은 Apache Hadoop 및 Apache Spark와 같은 빅 데이터 프레임워크 실행을 간소화AWS하여 방대한 양의 데이터를 처리하고 분석하는 관리형 클러스터 플랫폼입니다. 이러한 프레임워크 및 관련 오픈 소스 프로젝트를 사용하면 분석 목적 및 비즈니스 인텔리전스 워크로드용 데이터를 처리할 수 있습니다. 또한 AmazonEMR을 사용하여 Amazon S3 및 Amazon DynamoDB와 같은 다른 AWS 데이터 스토어 및 데이터베이스로 대량의 데이터를 변환하고 이동할 수 있습니다.

  • AWS Cloudformation - AWS 리소스를 AWS CloudFormation 모델링 및 설정하고, 리소스를 빠르고 일관되게 프로비저닝하고, 수명 주기 내내 관리할 수 있습니다. 템플릿을 사용하여 리소스와 해당 종속성을 설명하고 리소스를 개별적으로 관리하는 대신 스택으로 함께 시작 및 구성할 수 있습니다. 여러 AWS 계정 및 AWS 리전에서 스택을 관리하고 프로비저닝할 수 있습니다.

  • AWS Cloudwatch Events - Amazon CloudWatch Events는 AWS 리소스의 변경 사항을 설명하는 시스템 이벤트의 거의 실시간 스트림을 제공합니다. CloudWatch 이벤트는 발생하는 운영 변경 사항을 인지하고 필요에 따라 환경에 응답하기 위한 메시지를 보내고, 함수를 활성화하고, 변경을 수행하고, 상태 정보를 캡처하여 수정 조치를 취합니다.

  • AWS Lambda - AWS Lambda는 서버를 프로비저닝하거나 관리하지 않고도 실행 중인 코드를 지원하는 컴퓨팅 서비스입니다. Lambda는 필요 시에만 코드를 실행하며, 일일 몇 개의 요청에서 초당 수천 개의 요청까지 자동으로 확장이 가능합니다. 사용한 컴퓨팅 시간만큼만 비용을 지불하고, 코드가 실행되지 않을 때는 요금이 부과되지 않습니다.

  • AWS SNS – Amazon Simple Notification Service(Amazon SNS)는 웹 서버 및 이메일 주소를 포함하여 게시자와 클라이언트 간의 메시지 전송을 조정하고 관리합니다. 구독자는 구독하는 주제에 게시된 모든 메시지를 수신하며 주제에 대한 모든 구독자는 동일한 메시지를 수신합니다.

코드

이 패턴에는 두 개의 파일이 포함된 첨부 파일이 포함됩니다.

  • EMRInTransitEncryption.zip은(는) 보안 제어(Lambda 코드)가 포함된 압축 파일입니다.

  • EMRInTransitEncryption.yml 는 보안 제어를 배포하는 CloudFormation 템플릿입니다.

이러한 파일을 사용하는 방법에 대한 자세한 내용은 에픽 섹션을 참조하세요.

에픽

작업설명필요한 기술

코드를 S3 버킷에 업로드합니다.

새 S3 버킷을 생성하거나 기존 S3 버킷을 사용하여 첨부된 EMRInTransitEncryption.zip 파일(Lambda 코드)을 업로드합니다. 이 버킷은 평가하려는 CloudFormation 템플릿 및 리소스와 동일한 AWS 리전에 있어야 합니다.

클라우드 아키텍트

CloudFormation 템플릿을 배포합니다.

S3 버킷과 동일한 AWS 리전에서 Cloudformation 콘솔을 열고 첨부 파일에 제공된 EMRInTransitEncryption.yml 파일을 배포합니다. 다음 에픽에서 템플릿 파라미터에 대한 값을 입력합니다.

클라우드 아키텍트,
작업설명필요한 기술

S3 버킷 이름을 제공합니다.

첫 번째 에픽에서 생성하거나 선택한 S3 버킷의 이름을 입력합니다. 이 S3 버킷에는 Lambda 코드에 대한 .zip 파일이 포함되어 있으며 CloudFormation 템플릿 및 평가할 리소스와 동일한 AWS 리전에 있어야 합니다.

클라우드 아키텍트

S3 키를 입력합니다.

S3 버킷에 있는 Lambda 코드 .zip 파일의 위치를 앞에 슬래시 없이 지정합니다(예: EMRInTransitEncryption.zip 또는 controls/EMRInTransitEncryption.zip).

클라우드 아키텍트

이메일 주소를 입력합니다.

위반 알림을 받을 사용 중인 이메일 주소를 지정합니다. 

클라우드 아키텍트

로깅 수준을 지정합니다.

Lambda 로그에 대한 로깅 수준 및 상세 정보를 지정합니다. Info는 애플리케이션 진행 상황에 대한 자세한 정보 메시지를 지정하며 디버깅용으로만 사용해야 합니다. Error는 애플리케이션을 계속 실행할 수 있는 오류 이벤트를 지정합니다. Warning은 잠재적으로 유해한 상황을 지정합니다.

클라우드 아키텍트
작업설명필요한 기술

이메일 구독을 확인합니다.

CloudFormation 템플릿이 성공적으로 배포되면 제공한 이메일 주소로 구독 이메일 메시지를 보냅니다. 알림을 받으려면 이 이메일 구독을 확인해야 합니다.                                                     

클라우드 아키텍트

관련 리소스

첨부

이 문서와 관련된 추가 콘텐츠에 액세스하려면 attachment.zip 파일의 압축을 풉니다.