데이터 보호 - Amazon EMR

데이터 보호

Amazon EMR on EKS에서 데이터 보호에 AWS 공동 책임 모델이 적용됩니다. 이 모델에서 설명하는 것처럼 AWS은(는) 모든 AWS 클라우드를 실행하는 글로벌 인프라를 보호할 책임이 있습니다. 이 인프라에서 호스팅되는 콘텐츠에 대한 통제를 유지하는 것은 사용자의 책임입니다. 이 콘텐츠에는 사용하는 AWS 서비스에 대한 보안 구성 및 관리 작업이 포함됩니다. 데이터 프라이버시에 대한 자세한 내용은 데이터 프라이버시 FAQ를 참조하세요. 유럽의 데이터 보호에 대한 자세한 내용은 AWS 보안 블로그에서 AWS Shared Responsibility Model and GDPR 블로그 게시물을 참조하세요.

데이터를 보호하려면 AWS 계정 보안 인증을 보호하고 AWS Identity and Access Management(IAM)를 사용해 개별 사용자 계정을 설정하는 것이 좋습니다. 이러한 방식에서는 각 사용자에게 자신의 직무를 충실히 이행하는 데 필요한 권한만 부여됩니다. 또한 다음과 같은 방법으로 데이터를 보호하는 것이 좋습니다.

  • 각 계정에 멀티 팩터 인증 설정(MFA)을 사용하세요.

  • SSL/TLS를 사용하여 AWS 리소스와 통신합니다. TLS 1.2 이상을 권장합니다.

  • AWS CloudTrail로 API 및 사용자 활동 로깅을 설정합니다.

  • AWS 암호화 솔루션을 AWS 서비스 내의 모든 기본 보안 컨트롤과 함께 사용합니다.

  • Amazon S3에 저장된 개인 데이터를 검색하고 보호하는 데 도움이 되는 Amazon Macie와 같은 고급 관리형 보안 서비스를 사용합니다.

  • Amazon EMR on EKS 암호화 옵션을 사용해 유휴 및 전송 중 데이터를 암호화합니다.

  • 명령행 인터페이스 또는 API를 통해 AWS에 액세스할 때 FIPS 140-2 검증된 암호화 모듈이 필요한 경우, FIPS 엔드포인트를 사용합니다. 사용 가능한 FIPS 엔드포인트에 대한 자세한 내용은 Federal Information Processing Standard(FIPS) 140-2 섹션을 참조하세요.

명칭 필드와 같은 자유 형식 필드에 고객 계정 번호와 같은 중요 식별 정보를 절대 입력하지 마세요. 여기에는 Amazon EMR on EKS 또는 기타 AWS 서비스에서 콘솔, API, AWS CLI 또는 AWS SDK를 사용하여 작업하는 경우가 포함됩니다. Amazon EMR on EKS 또는 기타 서비스에 입력하는 모든 데이터를 진단 로그에 포함할 수 있습니다. 외부 서버에 URL을 제공할 때 해당 서버에 대한 요청을 검증하기 위해 보안 인증 정보를 URL에 포함시키지 마세요.

저장 중 암호화

데이터 암호화는 권한 없는 사용자가 클러스터 및 관련 데이터 스토리지 시스템에서 데이터를 읽는 것을 방지하는 데 도움이 됩니다. 여기에는 영구 미디어에 저장된 데이터인 유휴 데이터와 네트워크를 이동하는 동안 가로챌 수 있는 데이터인 전송 중 데이터가 포함됩니다.

데이터 암호화에는 키와 인증서가 필요합니다. AWS Key Management Service에서 관리하는 키, Amazon S3에서 관리하는 키, 사용자가 제공하는 사용자 지정 제공업체의 키 및 인증서 등 여러 가지 옵션을 선택할 수 있습니다. AWS KMS를 키 공급자로 사용할 경우 스토리지 및 암호화 키 사용에 요금이 적용됩니다. 자세한 내용은 AWS KMS 요금을 참조하십시오.

암호화 옵션을 지정하기 전에 사용할 키 및 인증서 관리 시스템을 결정합니다. 그런 다음 암호화 설정의 일부로 지정하는 사용자 지정 제공업체에 대한 키와 인증서를 생성합니다.

Amazon S3에서 EMRFS 데이터에 대한 유휴 데이터 암호화

Amazon S3 암호화는 Amazon S3에서 읽고 쓰는 EMR 파일 시스템(EMRFS) 객체와 함께 작동합니다. 유휴 데이터 암호화를 활성화할 때 Amazon S3 서버 측 암호화(SSE) 또는 클라이언트 측 암호화(CSE)를 기본 암호화 모드로 지정합니다. 선택적으로 버킷별 암호화 재정의를 사용하여 개별 버킷에 서로 다른 암호화 방법을 지정할 수 있습니다. Amazon S3 암호화가 활성화되어 있는지 여부와 상관없이 전송 계층 보안(TLS)은 EMR 클러스터 노드 및 Amazon S3 간에 전송 중인 EMRFS 객체를 암호화합니다. Amazon S3 암호화에 대한 자세한 내용은 Amazon Simple Storage Service 사용 설명서에서 암호화를 사용하여 데이터 보호를 참조하세요.

참고

AWS KMS를 사용할 때는 스토리지와 암호화 키 사용에 요금이 적용됩니다. 자세한 내용은 AWS KMS 요금을 참조하세요.

Amazon S3 서버 측 암호화

Amazon S3 서버 측 암호화를 설정하면 Amazon S3에서 데이터를 디스크에 쓸 때 객체 수준에서 데이터를 암호화하고 데이터에 액세스할 때 데이터의 암호를 해독합니다. 자세한 내용은 Amazon Simple Storage Service 개발자 안내서에서 서버 측 암호화를 사용하여 데이터 보호를 참조하세요.

Amazon EMR on EKS에서 SSE를 지정할 때 다음 두 가지 키 관리 시스템 중에서 선택할 수 있습니다.

  • SSE-S3 - Amazon S3에서는 자동으로 키를 관리합니다.

  • SSE-KMS - AWS KMS key를 사용하여 Amazon EMR on EKS에 적합한 정책을 설정합니다.

고객 제공 키를 사용하는 SSE(SSE-C)는 Amazon EMR on EKS에서 사용할 수 없습니다.

Amazon S3 클라이언트 측 암호화

Amazon S3 클라이언트 측 암호화를 사용하면 클러스터의 EMRFS 클라이언트에서 Amazon S3 암호화 및 암호 해독이 수행됩니다. 객체는 Amazon S3에 업로드되기 전에 암호화되고 다운로드된 후 암호 해독됩니다. 지정하는 공급자는 클라이언트가 사용하는 암호화 키를 제공합니다. 클라이언트는 AWS KMS에서 제공하는 키(CSE-KMS) 또는 클라이언트 측 루트 키(CSE-C)를 제공하는 사용자 지정 Java 클래스를 사용할 수 있습니다. 암호화 세부 사항은 지정된 공급자 및 암호 해독되거나 암호화되는 객체의 메타데이터에 따라 CSE-KMS 및 CSE-C 간에 약간 다릅니다. 이러한 차이에 대한 자세한 내용은 Amazon Simple Storage Service 사용 설명서에서 클라이언트 측 암호화를 사용하여 데이터 보호를 참조하세요.

참고

Amazon S3 CSE는 Amazon S3와 교환하는 EMRFS 데이터만 암호화하며, 클러스터 인스턴스 볼륨에 있는 모든 데이터를 암호화하지는 않습니다. 뿐만 아니라, Hue에서 EMRFS가 사용되지 않으므로 Hue S3 파일 검색기를 사용하여 Amazon S3에 작성된 객체는 암호화되지 않습니다.

로컬 디스크 암호화

Apache Spark는 로컬 디스크에 기록된 임시 데이터 암호화를 지원합니다. 여기에는 셔플 파일, 셔플 뷰출, 캐싱 및 브로드캐스트 변수 모두에 대해 디스크에 저장된 데이터 블록이 포함됩니다. 또는 saveAsHadoopFile 또는 saveAsTable 같은 API를 사용하여 애플리케이션에서 생성된 출력 데이터를 암호화하는 방법은 다루지 않습니다. 또한 사용자가 명시적으로 생성한 임시 파일은 여기에 포함되지 않을 수 있습니다. 자세한 내용은 Spark 설명서에서 Local Storage Encryption을 참조하세요. Spark는 데이터가 메모리에 맞지 않을 때 실행기 프로세스가 로컬 디스크에 쓰는 중간 데이터와 같이 로컬 디스크에서 암호화된 데이터를 지원하지 않습니다. 디스크에서 지속되는 데이터의 범위는 작업 런타임으로 제한되며, 데이터를 암호화하는 데 사용되는 키는 Spark에서 작업이 실행될 때마다 동적으로 생성됩니다. Spark 작업이 종료되면 다른 프로세스에서 데이터를 해독할 수 없습니다.

드라이버 및 실행기 포드의 경우 마운트된 볼륨에서 지속되는 저장 데이터를 암호화합니다. Kubernetes에서 함께 사용할 수 있는 EBS, EFS, FSx for Lustre와 같은 세 가지 AWS 기본 스토리지 옵션이 있습니다. 세 가지 모두 서비스 관리형 키 또는 AWS KMS key를 사용하여 저장 데이터 암호화를 제공합니다. 자세한 내용은 EKS Best Practices Guide를 참조하세요. 이 접근 방식을 사용하면 마운트된 볼륨에 유지되는 모든 데이터가 암호화됩니다.

키 관리

KMS 키를 자동으로 로테이션하도록 KMS를 구성할 수 있습니다. 이렇게 하면 1년에 한 번 키가 로테이션되고 이전 키는 무기한 저장되므로 데이터를 계속 해독할 수 있습니다. 자세한 내용은 AWS KMS keys 교체를 참조하세요.

전송 중 암호화

전송 중 데이터 암호화와 함께 여러 가지 암호화 메커니즘이 활성화됩니다. 이러한 메커니즘은 오픈 소스 기능이고, 애플리케이션에 특정하며, Amazon EMR on EKS 릴리스에 따라 다를 수 있습니다. Amazon EMR on EKS에서 다음과 같은 애플리케이션별 암호화 기능을 활성화할 수 있습니다.

  • Spark

    • Amazon EMR 버전 5.9.0 이상에서는 블록 전송 서비스, 외부 셔플 서비스 등 Spark 구성 요소 간에 이루어지는 내부 RPC 통신을 AES-256 암호로 암호화합니다. 그 이전 릴리스에서는 SASL과 DIGEST-MD5 암호를 사용하여 내부 RPC 통신을 암호화합니다.

    • Spark 기록 서버 및 HTTPS 지원 파일 서버 등 사용자 인터페이스와의 HTTP 프로토콜 통신은 Spark의 SSL 구성으로 암호화됩니다. 자세한 내용은 Spark 설명서의 SSL 구성을 읽어 보십시오.

    자세한 내용은 Spark security settings를 참조하세요.

  • Amazon S3 버킷 IAM 정책에 aws:SecureTransport 조건을 사용하여 HTTPS(TLS)를 통해 암호화된 연결만 허용해야 합니다.

  • JDBC 또는 ODBC 클라이언트로 스트리밍하는 쿼리 결과는 TLS를 사용하여 암호화됩니다.