데이터 보호 - Amazon EMR

데이터 보호

Amazon EMR Serverless에서 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 Serverless 암호화 옵션을 사용해 유휴 및 전송 중 데이터를 암호화합니다.

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

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

저장 중 암호화

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

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

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

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

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

참고

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

Amazon S3 서버 측 암호화

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

Amazon EMR Serverless에서 SSE를 지정하는 경우 다음 두 가지 키 관리 시스템 중에서 선택할 수 있습니다.

  • SSE-S3 - Amazon S3에서는 자동으로 키를 관리합니다. EMR Serverless에서는 추가 설정이 필요하지 않습니다.

  • SSE-KMS - AWS KMS key를 사용하여 Amazon EMR에 적합한 정책을 설정합니다. EMR Serverless에서는 추가 설정이 필요하지 않습니다.

Amazon S3에 쓰는 데이터에 대해 AWS KMS 암호화를 사용하려면 StartJobRun API를 사용할 때 두 가지 옵션이 있습니다. Amazon S3에 쓰는 모든 항목에 대해 암호화를 활성화하거나 특정 버킷에 쓰는 데이터에 대해 암호화를 활성화할 수 있습니다. StartJobRun API에 대한 자세한 내용은 EMR Serverless API 참조를 참조하세요.

Amazon S3에 쓰는 모든 데이터에 대해 AWS KMS 암호화를 설정하려면 StartJobRun API를 직접 호출할 때 다음 명령을 사용합니다.

--conf spark.hadoop.fs.s3.enableServerSideEncryption=true --conf spark.hadoop.fs.s3.serverSideEncryption.kms.keyId=<kms_id>

특정 버킷에 쓰는 데이터에 대한 AWS KMS 암호화를 설정하려면 StartJobRun API를 직접 호출할 때 다음 명령을 사용합니다.

--conf spark.hadoop.fs.s3.bucket.<amzn-s3-demo-bucket1>.enableServerSideEncryption=true --conf spark.hadoop.fs.s3.bucket.<amzn-s3-demo-bucket1>.serverSideEncryption.kms.keyId=<kms-id>

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

Amazon S3 클라이언트 측 암호화

Amazon S3 클라이언트 측 암호화를 사용하면 모든 Amazon EMR 릴리스에서 사용 가능한 EMRFS 클라이언트에서 Amazon S3 암호화 및 암호 해독이 수행됩니다. 객체는 Amazon S3에 업로드되기 전에 암호화되고 다운로드된 후 암호 해독됩니다. 지정하는 공급자는 클라이언트가 사용하는 암호화 키를 제공합니다. 클라이언트는 AWS KMS에서 제공하는 키(CSE-KMS) 또는 클라이언트 측 루트 키(CSE-C)를 제공하는 사용자 지정 Java 클래스를 사용할 수 있습니다. 암호화 세부 사항은 지정된 공급자 및 암호 해독되거나 암호화되는 객체의 메타데이터에 따라 CSE-KMS 및 CSE-C 간에 약간 다릅니다. Amazon S3 CSE를 고객 관리형 키와 함께 사용하는 경우 EMR Serverless 애플리케이션에서 작업을 실행하는 데 사용되는 실행 역할은 키에 대한 액세스를 보유해야 합니다. 추가 KMS 요금이 적용될 수 있습니다. 이러한 차이에 대한 자세한 내용은 Amazon Simple Storage Service 사용 설명서의 클라이언트 측 암호화를 사용하여 데이터 보호를 참조하세요.

로컬 디스크 암호화

임시 스토리지에 저장된 데이터는 업계 표준 AES-256 암호화 알고리즘을 사용하여 서비스 소유 키로 암호화됩니다.

키 관리

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

전송 중 암호화

Amazon EMR Serverless에서 다음과 같은 애플리케이션별 암호화 기능을 사용할 수 있습니다.

  • Spark

    • 기본적으로 Spark 드라이버와 실행기 간 통신은 인증되고 내부적으로 사용됩니다. 드라이버와 실행기 간 RPC 통신은 암호화됩니다.

  • Hive

    • AWS Glue 메타스토어와 EMR Serverless애플리케이션 간 통신은 TLS를 통해 수행됩니다.

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