EMRFS 속성을 사용하여 Amazon S3 암호화 지정 - Amazon EMR

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

EMRFS 속성을 사용하여 Amazon S3 암호화 지정

중요

Amazon EMR 릴리스 버전 4.8.0부터 보안 구성을 사용하여 더 쉽게 더 많은 옵션을 통해 암호화 설정을 적용할 수 있습니다. 보안 구성을 사용하는 것이 좋습니다. 자세한 내용은 데이터 암호화 구성을 참조하세요. 이 단원에 설명되어 있는 콘솔 지침은 릴리스 버전 4.8.0 이하에서 사용이 가능합니다. AWS CLI 를 사용하여 클러스터 구성과 후속 버전의 보안 구성 모두에서 Amazon S3 암호화를 구성하는 경우 보안 구성이 클러스터 구성을 재정의합니다.

클러스터를 생성할 때 콘솔을 사용하거나 AWS CLI 또는 EMR SDK를 통해 emrfs-site 분류 속성을 사용하여 Amazon S3의 EMRFS 데이터에 대한 서버 측 암호화(SSE) 또는 클라이언트 측 암호화(CSE)를 지정할 수 있습니다. Amazon S3 SSE 및 CSE는 상호 배타적이므로 둘 중 하나를 선택할 수 있지만 둘 다 선택할 수는 없습니다.

AWS CLI 지침은 아래 암호화 유형에 해당하는 섹션을 참조하세요.

를 사용하여 EMRFS 암호화 옵션을 지정하려면 AWS Management Console
  1. 새 Amazon EMR 콘솔로 이동하고 측면 탐색에서 이전 콘솔로 전환을 선택합니다. 이전 콘솔로 전환할 때 예상되는 사항에 대한 자세한 내용은 이전 콘솔 사용을 참조하세요.

  2. 클러스터 생성Go to advanced options(고급 옵션으로 이동)를 선택합니다.

  3. 릴리스로 4.7.2 이전 버전을 선택합니다.

  4. Software and Steps(소프트웨어 및 단계)에서 애플리케이션에 적절한 다른 옵션을 선택하고 다음을 선택합니다.

  5. 하드웨어General Cluster Settings(일반 클러스터 설정) 창에서 애플리케이션에 적절한 설정을 선택합니다.

  6. 보안 창의 인증 및 암호화에서 사용하고 싶은 S3 Encryption (with EMRFS)(S3 암호화(EMRFS 사용)) 옵션을 선택합니다.

    참고

    Amazon EMR 릴리스 버전 4.4 이하를 사용할 때는 KMS 키 관리를 사용한 S3 서버 측 암호화(SSE-KMS)를 사용할 수 없습니다.

    • AWS Key Management를 사용하는 옵션을 선택할 경우 AWS KMS 키 ID를 선택합니다. 자세한 내용은 EMRFS 암호화 AWS KMS keys 에 사용 단원을 참조하십시오.

    • S3 client-side encryption with custom materials provider(사용자 지정 자료 공급자를 사용한 S3 클라이언트 측 암호화)를 선택한 경우에는 클래스 이름JAR location(JAR 위치)을 입력합니다. 자세한 내용은 Amazon S3 클라이언트 측 암호화 단원을 참조하십시오.

  7. 애플리케이션에 적절한 다른 옵션을 선택하고 클러스터 생성을 선택합니다.

EMRFS 암호화 AWS KMS keys 에 사용

AWS KMS 암호화 키는 Amazon EMR 클러스터 인스턴스 및 EMRFS와 함께 사용되는 Amazon S3 버킷과 동일한 리전에서 생성되어야 합니다. 지정하는 키가 클러스터를 구성하는 데 사용하는 계정이 아닌 다른 계정에 있는 경우 ARN을 사용하여 해당 키를 지정해야 합니다.

Amazon EC2 인스턴스 프로파일의 역할에는 사용자가 지정하는 CMK를 사용할 수 있는 권한이 있어야 합니다. Amazon EMR에 있는 인스턴스 프로파일의 기본 역할은 EMR_EC2_DefaultRole입니다. 인스턴스 프로파일에 다른 역할을 사용하거나 Amazon S3에 대한 EMRFS 요청에 IAM 역할을 사용하는 경우 각 역할이 키 사용자로 적절히 추가되도록 해야 합니다. 이렇게 하면 해당 역할에 KMS 키를 사용할 수 있는 권한이 부여됩니다. 자세한 내용은 AWS Key Management Service 개발자 안내서에서 Using Key PoliciesAmazon S3에 대한 EMRFS 요청의 IAM 역할 구성을 참조하세요.

AWS Management Console 를 사용하여 지정된 KMS 키의 키 사용자 목록에 인스턴스 프로파일 또는 EC2 인스턴스 프로파일을 추가하거나 AWS CLI 또는 AWS SDK를 사용하여 적절한 키 정책을 연결할 수 있습니다.

Amazon EMR은 대칭 KMS 키만 지원합니다. 비대칭 KMS 키를 사용하여 Amazon EMR 클러스터의 저장된 데이터를 암호화할 수 없습니다. KMS 키가 대칭인지 비대칭인지 확인하는 것과 관련된 도움말은 Identifying symmetric and asymmetric KMS keys를 참조하세요.

아래 절차에서는 AWS Management Console을 사용하여 기본 Amazon EMR 인스턴스 프로파일(EMR_EC2_DefaultRole)을 키 사용자로 추가하는 방법을 설명합니다. 이때 KMS 키를 이미 생성했다고 가정합니다. 새 KMS 키를 생성하려면 AWS Key Management Service 개발자 안내서에서 Creating Keys를 참조하세요.

Amazon EMR의 EC2 인스턴스 프로파일을 암호화 키 사용자 목록에 추가하는 방법
  1. 에 로그인 AWS Management Console 하고 https://console.aws.amazon.com/kms AWS Key Management Service (AWS KMS) 콘솔을 엽니다.

  2. 를 변경하려면 페이지 오른쪽 상단의 리전 선택기를 AWS 리전사용합니다.

  3. 수정할 KMS 키의 별칭을 선택합니다.

  4. 키 세부 정보 페이지의 Key Users(키 사용자)에서 Add(추가)를 선택합니다.

  5. Add key users(키 사용자 추가) 대화 상자에서 적절한 역할을 선택합니다. 기본 역할의 이름은 EMR_EC2_DefaultRole입니다.

  6. 추가를 선택합니다.

Amazon S3 서버 측 암호화

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

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

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

  • SSE-KMS - AWS KMS key 를 사용하여 Amazon EMR에 적합한 정책을 설정합니다. Amazon EMR의 키 요구 사항에 대한 자세한 내용은 암호화 AWS KMS keys 에 사용을 참조하세요.

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

를 사용하여 SSE-S3가 활성화된 클러스터를 생성하려면 AWS CLI
  • 다음 명령을 입력합니다.

    aws emr create-cluster --release-label emr-4.7.2 or earlier \ --instance-count 3 --instance-type m5.xlarge --emrfs Encryption=ServerSide

emrfs-site 속성에서 fs.s3.enableServerSideEncryption 속성을 true로 설정하여 SSE-S3을 활성화할 수도 있습니다. 아래의 SSE-KMS 예제를 참조하여 키 ID에 대한 속성을 생략하십시오.

를 사용하여 SSE-KMS가 활성화된 클러스터를 생성하려면 AWS CLI
참고

SSE-KMS는 Amazon EMR 릴리스 버전 4.5.0 이상에서만 사용이 가능합니다.

  • 다음 AWS CLI 명령을 입력하여 SSE-KMS로 클러스터를 생성합니다. 여기서 keyIDa4567b8-9900-12ab-1234-123a45678901 AWS KMS key과 같은 입니다.

    aws emr create-cluster --release-label emr-4.7.2 or earlier --instance-count 3 \ --instance-type m5.xlarge --use-default-roles \ --emrfs Encryption=ServerSide,Args=[fs.s3.serverSideEncryption.kms.keyId=keyId]

    --또는--

    emrfs-site 분류를 사용하여 다음 AWS CLI 명령을 입력하고 아래 예와 유사한 내용이 포함된 구성 JSON 파일을 제공합니다myConfig.json.

    aws emr create-cluster --release-label emr-4.7.2 or earlier --instance-count 3 --instance-type m5.xlarge --applications Name=Hadoop --configurations file://myConfig.json --use-default-roles

    다음은 myConfig.json 콘텐츠 예제입니다.

    [ { "Classification":"emrfs-site", "Properties": { "fs.s3.enableServerSideEncryption": "true", "fs.s3.serverSideEncryption.kms.keyId":"a4567b8-9900-12ab-1234-123a45678901" } } ]

SSE-S3 및 SSE-KMS의 구성 속성

emrfs-site 구성 분류를 사용하여 이들 속성을 구성할 수 있습니다. SSE-KMS는 Amazon EMR 릴리스 버전 4.5.0 이상에서만 사용이 가능합니다.

속성 기본값 설명
fs.s3.enableServerSideEncryption false

true로 설정할 경우 Amazon S3에 저장된 객체가 서버 측 암호화를 사용하여 암호화됩니다. 키를 지정하지 않으면 SSE-S3가 사용됩니다.

fs.s3.serverSideEncryption.kms.keyId n/a

AWS KMS 키 ID 또는 ARN을 지정합니다. 키를 지정하면 SSE-KMS가 사용됩니다.