보안 구성 생성 - Amazon EMR

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

보안 구성 생성

이 주제에서는 Amazon EMR 콘솔을 사용하여 보안 구성을 생성하는 일반적인 절차를 다루고 AWS CLI, 이어서 EMRFS의 암호화, 인증 및 IAM 역할을 구성하는 파라미터에 대한 참조를 다룹니다. 이 기능에 대한 자세한 내용은 다음 주제를 참조하세요.

콘솔을 사용하여 보안 구성을 생성하려면
  1. https://console.aws.amazon.com/emr 에서 아마존 EMR 콘솔을 엽니다.

  2. 탐색 창에서 보안 구성을 선택한 다음 보안 구성 생성을 선택합니다.

  3. 보안 구성의 이름을 입력합니다.

  4. 아래 섹션에서 설명한 대로, 암호화인증을 선택하고 생성을 선택합니다.

를 사용하여 보안 구성을 만들려면 AWS CLI
  • 다음 예와 같이 create-security-configuration 명령을 사용합니다.

    • SecConfig이름에 보안 구성의 이름을 지정합니다. 이 이름은 이 보안 구성을 사용하는 클러스터를 생성할 때 지정합니다.

    • SecConfigDef에서 인라인 JSON 구조 또는 로컬 JSON 파일에 대한 경로(예: file://MySecConfig.json)를 지정합니다. JSON 파라미터는 아래 섹션에서 설명한 대로, 암호화, Amazon S3에 대한 EMRFS 액세스를 위한 IAM 역할인증에 대한 옵션을 정의합니다.

    aws emr create-security-configuration --name "SecConfigName" --security-configuration SecConfigDef

데이터 암호화 구성

보안 구성에서 암호화를 구성하기 전에 암호화에 사용되는 키와 자격 증명을 생성합니다. 자세한 정보는 Amazon EMR에서 저장 데이터 암호화를 위한 키 제공Amazon EMR 암호화를 사용하여 전송 중 데이터 암호화에 대한 인증서 제공 섹션을 참조하세요.

보안 구성을 생성할 때 미사용 데이터 암호화 및 전송 중 데이터 암호화라는 두 가지 암호화 옵션 세트를 지정합니다. 미사용 데이터 암호화 옵션에는 EMRFS를 포함하는 Amazon S3와 로컬 디스크 암호화가 모두 포함됩니다. 전송 중 암호화 옵션에서는 TLS(전송 계층 보안)를 지원하는 특정 애플리케이션에 오픈 소스 암호화 기능을 사용할 수 있습니다. 미사용 데이터 암호화 옵션과 전송 중 데이터 암호화 옵션을 함께 활성화하거나 개별적으로 활성화할 수 있습니다. 자세한 정보는 저장 및 전송 중 데이터 암호화을 참조하세요.

참고

사용 AWS KMS시 암호화 키의 저장 및 사용에 대한 요금이 부과됩니다. 자세한 내용은 AWS KMS 요금을 참조하세요.

콘솔을 사용하여 암호화 옵션 지정

아래 지침에 따라 암호화에서 옵션을 선택합니다.

  • 미사용 데이터 암호화 아래에서 옵션을 선택하여 파일 시스템 내에 저장된 데이터를 암호화합니다.

    Amazon S3, 로컬 디스크 또는 둘 다에서 데이터를 암호화하도록 선택할 수 있습니다.

  • S3 데이터 암호화 아래의 암호화 모드에서 Amazon EMR이 EMRFS를 포함하는 Amazon S3 데이터를 암호화하는 방식을 결정하기 위해 값을 선택합니다.

    다음에 수행할 적업은 선택한 암호화 모드에 따라 다릅니다.

  • 로컬 디스크 암호화에서 키 공급자 유형의 값을 선택합니다.

    • AWS KMS key

      이 옵션을 선택하여 AWS KMS key를 지정합니다. AWS KMS key에서 키를 선택합니다. 키는 EMR 클러스터와 같은 리전에 있어야 합니다. 키 요구 사항에 대한 자세한 내용은 AWS KMS keys 암호화에 사용 단원을 참조하세요.

      EBS 암호화

      키 AWS KMS 제공자로 지정하면 EBS 암호화를 활성화하여 EBS 루트 디바이스 및 스토리지 볼륨을 암호화할 수 있습니다. 이 옵션을 활성화하려면 사용자가 지정한 AWS KMS key 를 사용할 권한을 Amazon EMR 서비스 역할 EMR_DefaultRole에 부여해야 합니다. 키 요구 사항에 대한 자세한 내용은 KMS 키에 대한 추가 권한을 제공하여 EBS 암호화 활성화 단원을 참조하세요.

    • 사용자 지정

      이 옵션을 선택하여 사용자 지정 키 공급자를 지정합니다. S3 객체에 사용자 지정 키 공급자 JAR 파일의 Amazon S3 내 위치 또는 Amazon S3 ARN을 입력합니다. 키 제공자 클래스의 경우 인터페이스를 구현하는 애플리케이션에 선언된 클래스의 전체 클래스 이름을 입력합니다. EncryptionMaterialsProvider 여기에 제공하는 클래스 이름은 CSE-Custom에 제공된 클래스 이름과 달라야 합니다.

  • 전송 중 데이터 암호화를 선택하여 전송 중 데이터에 대한 오픈 소스 TLS 암호화 기능을 활성화합니다. 다음 지침에 따라 인증서 공급자 유형을 선택합니다.

    • PEM

      이 옵션을 선택하여 zip 파일 내에 제공하는 PEM 파일을 사용합니다. zip 파일 내에는 privateKey.pem 및 certificateChain.pem이라는 두 개의 아티팩트가 필요합니다. 세 번째 파일인 trustedCertificates.pem은 선택 사항입니다. 세부 정보는 Amazon EMR 암호화를 사용하여 전송 중 데이터 암호화에 대한 인증서 제공를 참조하세요. S3 객체에서 Amazon S3 내 위치 또는 zip 파일 필드의 Amazon S3 ARN을 지정합니다.

    • 사용자 지정

      이 옵션을 선택하여 사용자 지정 인증서 제공업체를 지정하고 S3 객체에 사용자 지정 인증서 제공업체 JAR 파일의 Amazon S3 내 위치 또는 Amazon S3 ARN을 입력합니다. 키 제공자 클래스의 경우 ArtifactsProvider TLS 인터페이스를 구현하는 애플리케이션에 선언된 클래스의 전체 클래스 이름을 입력합니다.

를 사용하여 암호화 옵션을 지정합니다. AWS CLI

다음 단원에서는 샘플 시나리오를 사용하여 다른 구성 및 키 공급자에 대해 잘 구성된 --security-configuration JSON과 JSON 파라미터 및 해당 값에 대한 참조를 설명합니다.

전송 중 데이터 암호화 옵션 예제

아래 예제에서는 다음 시나리오를 설명합니다.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": false, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "PEM", "S3Object": "s3://MyConfigStore/artifacts/MyCerts.zip" } } } }'

아래 예제에서는 다음 시나리오를 설명합니다.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": false, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "Custom", "S3Object": "s3://MyConfig/artifacts/MyCerts.jar", "CertificateProviderClass": "com.mycompany.MyCertProvider" } } } }'

저장 데이터 암호화 옵션 예제

아래 예제에서는 다음 시나리오를 설명합니다.

  • 전송 중 데이터 암호화가 비활성화되고 미사용 데이터 암호화가 활성화됩니다.

  • SSE-S3가 Amazon S3 암호화에 사용됩니다.

  • 로컬 디스크 암호화는 키 AWS KMS 제공자로 사용됩니다.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": false, "EnableAtRestEncryption": true, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "SSE-S3" }, "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "AwsKms", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } } }'

아래 예제에서는 다음 시나리오를 설명합니다.

  • 전송 중 데이터 암호화가 활성화되고 ARN을 사용하여 Amazon S3에 PEM 인증서가 있는 zip 파일을 참조합니다.

  • SSE-KMS가 Amazon S3 암호화에 사용됩니다.

  • 로컬 디스크 암호화는 키 AWS KMS 제공자로 사용됩니다.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": true, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "PEM", "S3Object": "arn:aws:s3:::MyConfigStore/artifacts/MyCerts.zip" } }, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "SSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "AwsKms", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } } }'

아래 예제에서는 다음 시나리오를 설명합니다.

  • 전송 중 암호화가 활성화되고 Amazon S3에 PEM 인증서가 있는 zip 파일을 참조합니다.

  • CSE-KMS가 Amazon S3 암호화에 사용됩니다.

  • 로컬 디스크 암호화가 ARN으로 참조된 사용자 지정 키 공급자를 사용합니다.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": true, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "PEM", "S3Object": "s3://MyConfigStore/artifacts/MyCerts.zip" } }, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "CSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "Custom", "S3Object": "arn:aws:s3:::artifacts/MyKeyProvider.jar", "EncryptionKeyProviderClass": "com.mycompany.MyKeyProvider" } } } }'

아래 예제에서는 다음 시나리오를 설명합니다.

  • 사용자 지정 키 공급자를 사용하여 전송 중 데이터 암호화가 활성화됩니다.

  • CSE-Custom이 Amazon S3 데이터에 사용됩니다.

  • 로컬 디스크 암호화가 사용자 지정 키 공급자를 사용합니다.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": "true", "EnableAtRestEncryption": "true", "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "Custom", "S3Object": "s3://MyConfig/artifacts/MyCerts.jar", "CertificateProviderClass": "com.mycompany.MyCertProvider" } }, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "CSE-Custom", "S3Object": "s3://MyConfig/artifacts/MyCerts.jar", "EncryptionKeyProviderClass": "com.mycompany.MyKeyProvider" }, "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "Custom", "S3Object": "s3://MyConfig/artifacts/MyCerts.jar", "EncryptionKeyProviderClass": "com.mycompany.MyKeyProvider" } } } }'

아래 예제에서는 다음 시나리오를 설명합니다.

  • 전송 중 데이터 암호화가 비활성화되고 미사용 데이터 암호화가 활성화됩니다.

  • Amazon S3 암호화는 SSE-KMS를 통해 활성화됩니다.

  • 각 S3 버킷당 하나씩 여러 AWS KMS 키가 사용되며 이러한 개별 S3 버킷에는 암호화 예외가 적용됩니다.

  • 로컬 디스크 암호화가 비활성화됩니다.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "SSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012", "Overrides": [ { "BucketName": "sse-s3-bucket-name", "EncryptionMode": "SSE-S3" }, { "BucketName": "cse-kms-bucket-name", "EncryptionMode": "CSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, { "BucketName": "sse-kms-bucket-name", "EncryptionMode": "SSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } ] } }, "EnableInTransitEncryption": false, "EnableAtRestEncryption": true } }'

아래 예제에서는 다음 시나리오를 설명합니다.

  • 전송 중 데이터 암호화가 비활성화되고 미사용 데이터 암호화가 활성화됩니다.

  • Amazon S3 암호화가 SSE-S3로 활성화되고 로컬 디스크 암호화는 비활성화됩니다.

aws emr create-security-configuration --name "MyS3EncryptionConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": false, "EnableAtRestEncryption": true, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "SSE-S3" } } } }'

아래 예제에서는 다음 시나리오를 설명합니다.

  • 전송 중 데이터 암호화가 비활성화되고 미사용 데이터 암호화가 활성화됩니다.

  • 로컬 디스크 암호화는 키 AWS KMS 제공자로 활성화되고 Amazon S3 암호화는 비활성화됩니다.

aws emr create-security-configuration --name "MyLocalDiskEncryptionConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": false, "EnableAtRestEncryption": true, "AtRestEncryptionConfiguration": { "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "AwsKms", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } } }'

아래 예제에서는 다음 시나리오를 설명합니다.

  • 전송 중 데이터 암호화가 비활성화되고 미사용 데이터 암호화가 활성화됩니다.

  • 로컬 디스크 암호화는 키 AWS KMS 제공자로 활성화되고 Amazon S3 암호화는 비활성화됩니다.

  • EBS 암호화가 활성화됩니다.

aws emr create-security-configuration --name "MyLocalDiskEncryptionConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": false, "EnableAtRestEncryption": true, "AtRestEncryptionConfiguration": { "LocalDiskEncryptionConfiguration": { "EnableEbsEncryption": true, "EncryptionKeyProviderType": "AwsKms", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } } }'

아래 예제에서는 다음 시나리오를 설명합니다.

SSE-EMR-WAL은 EMR WAL 암호화에 사용됩니다.

aws emr create-security-configuration --name "MySecConfig" \ --security-configuration '{ "EncryptionConfiguration": { "EMRWALEncryptionConfiguration":{ }, "EnableInTransitEncryption":false, "EnableAtRestEncryption":false } }'

EnableInTransitEncryption관련 암호화를 EnableAtRestEncryption 활성화하고 싶다면 여전히 그럴 수 있습니다.

아래 예제에서는 다음 시나리오를 설명합니다.

  • SSE-KMS-WAL은 EMR WAL 암호화에 사용됩니다.

  • 서버 측 암호화를 키 제공자로 사용 AWS Key Management Service

aws emr create-security-configuration --name "MySecConfig" \ --security-configuration '{ "EncryptionConfiguration": { "EMRWALEncryptionConfiguration":{ "AwsKmsKey":"arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, "EnableInTransitEncryption":false, "EnableAtRestEncryption":false } }'

EnableInTransitEncryption관련 암호화를 활성화하려는 경우에도 마찬가지일 수 있습니다. EnableAtRestEncryption

암호화 설정을 위한 JSON 참조

다음 표에서는 암호화 설정을 위한 JSON 파라미터를 나열하고 각 파라미터에 허용 가능한 값을 설명합니다.

파라미터 설명
"EnableInTransitEncryption" : true | false true를 지정하여 전송 중 데이터 암호화를 활성화하고 false를 지정하여 비활성화합니다. 생략되면 false가 가정되고 전송 중 암호화가 비활성화됩니다.
"EnableAtRestEncryption": true | false true를 지정하여 미사용 데이터 암호화를 활성화하고 false를 지정하여 비활성화합니다. 생략되면 false가 가정되고 미사용 암호화가 비활성화됩니다.
전송 중 데이터 암호화 파라미터
"InTransitEncryptionConfiguration" : EnableInTransitEncryptiontrue일 때 전송 중 암호화를 구성하는 데 사용된 값의 집합을 지정합니다.
"CertificateProviderType": "PEM" | "Custom" 압축된 파일에 참조된 PEM 인증서를 사용할지 또는 Custom 인증서 공급자를 사용할지를 지정합니다. 를 지정하는 경우 PEM 인증서가 포함된 zip 파일의 Amazon S3 내 위치에 대한 S3Object 참조여야 합니다. 사용자 지정이 지정된 경우 JAR 파일의 Amazon S3 위치를 참조하고 그 뒤에 CertificateProviderClass 항목이 S3Object 와야 합니다.
"S3Object" : "ZipLocation" | "JarLocation" 지정된 경우 Amazon S3의 zip 파일에, 지정된 경우 PEM JAR 파일에 위치를 제공합니다. Custom 형식은 경로(예: s3://MyConfig/artifacts/CertFiles.zip) 또는 ARN(예: arn:aws:s3:::Code/MyCertProvider.jar))일 수 있습니다. zip 파일을 지정할 경우 정확히 privateKey.pemcertificateChain.pem이라는 이름의 파일이 포함되어야 합니다. trustedCertificates.pem이라는 이름의 파일은 선택 사항입니다.
"CertificateProviderClass" : "MyClassID" 를 위해 지정된 Custom 경우에만 필요합니다CertificateProviderType. MyClassIDTLS ArtifactsProvider 인터페이스를 구현하는 JAR 파일에 선언된 전체 클래스 이름을 지정합니다. 예를 들어 com.mycompany.MyCertProvider입니다.
미사용 데이터 암호화 파라미터
"AtRestEncryptionConfiguration" : Amazon S3 암호화 및 로컬 디스크 암호화를 포함하여 저장 시 EnableAtRestEncryption 암호화를 위한 값 모음을 지정합니다. true
Amazon S3 암호화 파라미터
"S3EncryptionConfiguration" : Amazon EMR 파일 시스템 (EMRFS) 을 사용한 Amazon S3 암호화에 사용되는 값 컬렉션을 지정합니다.
"EncryptionMode": "SSE-S3" | "SSE-KMS" | "CSE-KMS" | "CSE-Custom" 사용할 Amazon S3 암호화 유형을 지정합니다. 를 지정하면 SSE-S3 Amazon S3 암호화 값이 더 이상 필요하지 않습니다. SSE-KMS또는 CSE-KMS 를 지정하는 경우 AWS KMS key ARN을 값으로 지정해야 합니다. AwsKmsKey CSE-Custom을 지정할 경우 S3ObjectEncryptionKeyProviderClass 값을 지정해야 합니다.
"AwsKmsKey" : "MyKeyARN" EncryptionMode에 대해 SSE-KMS 또는 CSE-KMS를 지정한 경우에만 필요합니다. MyKeyARN은 키에 대해 전체 지정된 ARN(예: arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012)이어야 합니다.
"S3Object" : "JarLocation" CertificateProviderType 지정한 CSE-Custom 경우에만 필요합니다. JarLocationAmazon S3의 위치를 JAR 파일에 제공합니다. 형식은 경로(예: s3://MyConfig/artifacts/MyKeyProvider.jar) 또는 ARN(예: arn:aws:s3:::Code/MyKeyProvider.jar))일 수 있습니다.
"EncryptionKeyProviderClass" : "MyS3KeyClassID" CSE-Custom가 지정된 경우에만 필요합니다EncryptionMode. MyS3KeyClassID EncryptionMaterialsProvider인터페이스를 구현하는 응용 프로그램에 선언된 클래스의 전체 클래스 이름을 지정합니다 (예:). com.mycompany.MyS3KeyProvider
로컬 디스크 암호화 파라미터
"LocalDiskEncryptionConfiguration" 로컬 디스크 암호화에 사용할 키 공급자 및 해당 값을 지정합니다.
"EnableEbsEncryption": true | false EBS true 암호화를 활성화하도록 지정합니다. EBS 암호화는 EBS 루트 디바이스 볼륨과 연결된 스토리지 볼륨을 암호화합니다. EBS 암호화를 사용하려면 다음과 같이 지정해야 합니다. AwsKms EncryptionKeyProviderType
"EncryptionKeyProviderType": "AwsKms" | "Custom" 카 공급자를 지정합니다. 를 지정하는 AwsKms 경우 KMS 키 ARN을 값으로 AwsKmsKey 지정해야 합니다. Custom을 지정할 경우 S3ObjectEncryptionKeyProviderClass 값을 지정해야 합니다.
"AwsKmsKey : "MyKeyARN" 를 지정한 경우에만 AwsKms 필요합니다. Type MyKeyARN키에 완전히 지정된 ARN이어야 합니다 (예:). arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-456789012123
"S3Object" : "JarLocation" CertificateProviderType 지정한 CSE-Custom 경우에만 필요합니다. JarLocationAmazon S3의 위치를 JAR 파일에 제공합니다. 형식은 경로(예: s3://MyConfig/artifacts/MyKeyProvider.jar) 또는 ARN(예: arn:aws:s3:::Code/MyKeyProvider.jar))일 수 있습니다.

"EncryptionKeyProviderClass" : "MyLocalDiskKeyClassID"

Custom가 지정된 경우에만 필요합니다Type. MyLocalDiskKeyClassID EncryptionMaterialsProvider인터페이스를 구현하는 응용 프로그램에 선언된 클래스의 전체 클래스 이름을 지정합니다 (예:). com.mycompany.MyLocalDiskKeyProvider
EMR WAL 암호화 매개변수
"EMRWALEncryptionConfiguration" EMR WAL 암호화의 값을 지정합니다.
"AwsKmsKey" CMK 키 ID ARN을 지정합니다.

Kerberos 인증 구성

Kerberos 설정을 통한 보안 구성은 Kerberos 속성을 통해 생성된 클러스터에서만 사용할 수 있고, 그렇지 않을 경우 오류가 발생합니다. 자세한 정보는 Amazon EMR을 통한 인증에 Kerberos 사용을 참조하세요. Kerberos는 Amazon EMR 릴리스 버전 5.10.0 이상에서만 사용이 가능합니다.

콘솔을 사용하여 Kerberos 설정 지정

다음 지침에 따라 Kerberos 인증에서 옵션을 선택합니다.

파라미터 설명

Kerberos

이 보안 구성을 사용하는 클러스터에 대해 Kerberos가 활성화되도록 지정합니다. 클러스터에서 이 보안 구성을 사용하는 경우 클러스터에는 Kerberos 설정이 지정되어 있어야 하며 그렇지 않을 경우 오류가 발생합니다.

공급자

클러스터 전용 KDC

Amazon EMR이 이 보안 구성을 사용하는 클러스터의 프라이머리 노드에서 KDC를 생성하도록 지정합니다. 클러스터를 생성할 때 영역 이름과 KDC 관리자 암호를 지정합니다.

필요할 경우 다른 클러스터에서 이 KDC를 참조할 수 있습니다. 다른 보안 구성을 사용하여 클러스터를 생성하고, 외부 KDC를 지정하고, 클러스터 전용 KDC에 지정한 영역 이름과 KDC 관리자 암호를 사용하세요.

외부 KDC

Amazon EMR 5.20.0 이상에서만 사용할 수 있습니다. 이 보안 구성을 사용하는 클러스터가 클러스터 외부의 KDC 서버를 사용하여 Kerberos 보안 주체를 인증하도록 지정합니다. KDC는 클러스터에서 생성되지 않습니다. 클러스터를 생성할 때 외부 KDC의 영역 이름과 KDC 관리자 암호를 지정합니다.

티켓 수명

선택 사항입니다. 클러스터 전용 KDC에서 발급한 Kerberos 티켓이 이 보안 구성을 사용하는 클러스터에서 유효한 기간을 지정합니다.

보안 상의 이유로 티켓 사용 기간이 제한됩니다. 클러스터 애플리케이션 및 서비스는 기간이 만료된 티켓을 자동 갱신합니다. Kerberos 보안 인증을 사용하여 SSH를 통해 클러스터를 연결하는 사용자는 티켓이 만료된 후 프라이머리 노드 명령줄에서 kinit를 실행해야 합니다.

교차 영역 신뢰

이 보안 구성을 사용하는 클러스터에서 클러스터 전용 KDC와 다른 Kerberos 영역에서 KDC 간의 교차 신뢰도를 지정합니다.

다른 영역의 보안 주체(주로 사용자)가 이 구성을 사용하는 클러스터에 인증을 받습니다. 다른 Kerberos 영역에서 추가 구성이 필요합니다. 자세한 정보는 자습서: Active Directory 도메인과 교차 영역 신뢰 구성을 참조하세요.

교차 영역 신뢰 속성

영역

신뢰 관계에 있는 다른 영역의 Kerberos 영역 이름을 지정합니다. 규칙에 따라 Kerberos 영역 이름은 도메인 이름과 동일하고 모두 대문자입니다.

도메인

신뢰 관계에 있는 다른 영역의 도메인 이름을 지정합니다.

관리자 서버

신뢰 관계에 있는 다른 영역의 정규화된 도메인 이름(FQDN) 또는 IP 주소를 지정합니다. 관리자 서버와 KDC 서버는 일반적으로 동일 FQDN의 동일 시스템에서 실행되지만, 통신에는 서로 다른 포트를 이용합니다.

지정된 포트가 없으면 Kerberos 기본 설정인 포트 749 포트를 사용합니다. 아니면 포트를 지정해도 됩니다(예: domain.example.com:749).

KDC 서버

신뢰 관계의 다른 영역에 있는 KDC 서버의 정규화된 도메인 이름(FQDN) 또는 IP 주소를 지정합니다. KDC 서버와 관리자 서버는 일반적으로 동일 FQDN의 동일 시스템에서 실행되지만, 서로 다른 포트를 이용합니다.

지정된 포트가 없으면 Kerberos 기본 설정인 포트 88 포트를 사용합니다. 아니면 포트를 지정해도 됩니다(예: domain.example.com:88).

외부 KDC

클러스터에서 클러스터 외부 KDC 클러스터를 사용함을 지정합니다.

외부 KDC 속성

관리자 서버

외부 도메인 서버의 정규화된 도메인 이름(FQDN) 또는 IP 주소를 지정합니다. 관리자 서버와 KDC 서버는 일반적으로 동일 FQDN의 동일 시스템에서 실행되지만, 통신에는 서로 다른 포트를 이용합니다.

지정된 포트가 없으면 Kerberos 기본 설정인 포트 749 포트를 사용합니다. 아니면 포트를 지정해도 됩니다(예: domain.example.com:749).

KDC 서버

외부 KDC 서버의 정규화된 도메인 이름(FQDN)을 지정합니다. KDC 서버와 관리자 서버는 일반적으로 동일 FQDN의 동일 시스템에서 실행되지만, 서로 다른 포트를 이용합니다.

지정된 포트가 없으면 Kerberos 기본 설정인 포트 88 포트를 사용합니다. 아니면 포트를 지정해도 됩니다(예: domain.example.com:88).

Active Directory 통합

Kerberos 보안 주체 인증이 Microsoft Active Directory 도메인과 통합되도록 지정합니다.

Active Directory 통합 속성

Active Directory 영역

Active Directory 도메인의 Kerberos 영역 이름을 지정합니다. 규칙에 따라 Kerberos 영역 이름은 일반적으로 도메인 이름과 동일하고 모두 대문자입니다.

Active Directory 도메인

Active Directory 도메인 이름을 지정합니다.

Active Directory 서버

Microsoft Active Directory 도메인 컨트롤러의 정규화된 도메인 이름(FQDN)을 지정합니다.

를 사용하여 Kerberos 설정을 지정합니다. AWS CLI

다음 참조 테이블은 보안 구성의 Kerberos 설정에 대한 JSON 파라미터를 보여 줍니다. 구성에 대한 예시는 구성 예제 단원을 참조하세요.

파라미터 설명

"AuthenticationConfiguration": {

Kerberos에 필요합니다. 인증 구성이 이 보안 구성의 일부인지를 지정합니다.

"KerberosConfiguration": {

Kerberos에 필요합니다. Kerberos 구성 속성을 지정합니다.

"Provider": "ClusterDedicatedKdc",

또는

"Provider: "ExternalKdc",

ClusterDedicatedKdc는 Amazon EMR이 이 보안 구성을 사용하는 클러스터의 프라이머리 노드에 KDC를 생성하도록 지정합니다. 클러스터를 생성할 때 영역 이름과 KDC 관리자 암호를 지정합니다. 필요할 경우 다른 클러스터에서 이 KDC를 참조할 수 있습니다. 다른 보안 구성을 사용하여 클러스터를 생성하고, 외부 KDC를 지정하고, 클러스터 전용 KDC로 클러스터를 생성할 때 지정한 영역 이름과 KDC 관리자 암호를 사용하세요.

ExternalKdc에서는 클러스터가 외부 KDC를 사용하도록 지정합니다. Amazon EMR은 프라이머리 노드에서 KDC를 생성하지 않습니다. 이 보안 구성을 사용하는 클러스터는 외부 KDC의 관리자 암호와 영역 이름을 지정해야 합니다.

"ClusterDedicatedKdcConfiguration": {

ClusterDedicatedKdc를 지정한 경우 필수입니다.

"TicketLifetimeInHours": 24,

선택 사항입니다. 클러스터 전용 KDC에서 발급한 Kerberos 티켓이 이 보안 구성을 사용하는 클러스터에서 유효한 기간을 지정합니다.

보안 상의 이유로 티켓 사용 기간이 제한됩니다. 클러스터 애플리케이션 및 서비스는 기간이 만료된 티켓을 자동 갱신합니다. Kerberos 보안 인증을 사용하여 SSH를 통해 클러스터를 연결하는 사용자는 티켓이 만료된 후 프라이머리 노드 명령줄에서 kinit를 실행해야 합니다.

"CrossRealmTrustConfiguration": {

이 보안 구성을 사용하는 클러스터에서 클러스터 전용 KDC와 다른 Kerberos 영역에서 KDC 간의 교차 신뢰도를 지정합니다.

다른 영역의 보안 주체(주로 사용자)가 이 구성을 사용하는 클러스터에 인증을 받습니다. 다른 Kerberos 영역에서 추가 구성이 필요합니다. 자세한 정보는 자습서: Active Directory 도메인과 교차 영역 신뢰 구성을 참조하세요.

"Realm": "KDC2.COM",

신뢰 관계에 있는 다른 영역의 Kerberos 영역 이름을 지정합니다. 규칙에 따라 Kerberos 영역 이름은 도메인 이름과 동일하고 모두 대문자입니다.

"Domain": "kdc2.com",

신뢰 관계에 있는 다른 영역의 도메인 이름을 지정합니다.

"AdminServer": "kdc.com:749",

신뢰 관계에 있는 다른 영역의 정규화된 도메인 이름(FQDN) 또는 IP 주소를 지정합니다. 관리자 서버와 KDC 서버는 일반적으로 동일 FQDN의 동일 시스템에서 실행되지만, 통신에는 서로 다른 포트를 이용합니다.

지정된 포트가 없으면 Kerberos 기본 설정인 포트 749 포트를 사용합니다. 아니면 포트를 지정해도 됩니다(예: domain.example.com:749).

"KdcServer": "kdc.com:88"

신뢰 관계의 다른 영역에 있는 KDC 서버의 정규화된 도메인 이름(FQDN) 또는 IP 주소를 지정합니다. KDC 서버와 관리자 서버는 일반적으로 동일 FQDN의 동일 시스템에서 실행되지만, 서로 다른 포트를 이용합니다.

지정된 포트가 없으면 Kerberos 기본 설정인 포트 88 포트를 사용합니다. 아니면 포트를 지정해도 됩니다(예: domain.example.com:88).

}

}

“ExternalKdc구성”: {

ExternalKdc를 지정한 경우 필수입니다.

"TicketLifetimeInHours": 24,

선택 사항입니다. 클러스터 전용 KDC에서 발급한 Kerberos 티켓이 이 보안 구성을 사용하는 클러스터에서 유효한 기간을 지정합니다.

보안 상의 이유로 티켓 사용 기간이 제한됩니다. 클러스터 애플리케이션 및 서비스는 기간이 만료된 티켓을 자동 갱신합니다. Kerberos 보안 인증을 사용하여 SSH를 통해 클러스터를 연결하는 사용자는 티켓이 만료된 후 프라이머리 노드 명령줄에서 kinit를 실행해야 합니다.

"KdcServerType": "Single",

단일 KDC 서버를 참조하도록 지정합니다. 현재 지원되는 유일한 값은 Single입니다.

AdminServer““:" kdc.com:749 “,

외부 도메인 서버의 정규화된 도메인 이름(FQDN) 또는 IP 주소를 지정합니다. 관리자 서버와 KDC 서버는 일반적으로 동일 FQDN의 동일 시스템에서 실행되지만, 통신에는 서로 다른 포트를 이용합니다.

지정된 포트가 없으면 Kerberos 기본 설정인 포트 749 포트를 사용합니다. 아니면 포트를 지정해도 됩니다(예: domain.example.com:749).

“:" kdc.com:88 “, KdcServer

외부 KDC 서버의 정규화된 도메인 이름(FQDN)을 지정합니다. KDC 서버와 관리자 서버는 일반적으로 동일 FQDN의 동일 시스템에서 실행되지만, 서로 다른 포트를 이용합니다.

지정된 포트가 없으면 Kerberos 기본 설정인 포트 88 포트를 사용합니다. 아니면 포트를 지정해도 됩니다(예: domain.example.com:88).

"AdIntegrationConfiguration": {

Kerberos 보안 주체 인증이 Microsoft Active Directory 도메인과 통합되도록 지정합니다.

"AdRealm": "AD.DOMAIN.COM",

Active Directory 도메인의 Kerberos 영역 이름을 지정합니다. 규칙에 따라 Kerberos 영역 이름은 일반적으로 도메인 이름과 동일하고 모두 대문자입니다.

"AdDomain": "ad.domain.com"

Active Directory 도메인 이름을 지정합니다.

"AdServer": "ad.domain.com"

Microsoft Active Directory 도메인 컨트롤러의 정규화된 도메인 이름(FQDN)을 지정합니다.

}

}

}

}

Amazon S3에 대한 EMRFS 요청의 IAM 역할 구성

EMRFS의 IAM 역할을 사용하여 Amazon S3의 EMRFS 데이터에 대해 다른 권한을 제공할 수 있습니다. 액세스 요청에 지정한 식별자가 포함될 때 권한 부여에 사용되는 IAM 역할을 지정하는 매핑을 생성합니다. Hadoop 사용자, 역할 또는 Amazon S3 접두사가 식별자가 될 수 있습니다.

자세한 정보는 Amazon S3에 대한 EMRFS 요청의 IAM 역할 구성을 참조하세요.

를 사용하여 EMRFS의 IAM 역할을 지정합니다. AWS CLI

다음은 보안 구성에서 EMRFS에 대한 사용자 지정 IAM 역할을 지정하기 위한 예제 JSON 코드 조각입니다. 이 예제에서는 세 가지 식별자 유형에 대한 역할 매핑을 보여줍니다. 뒤이어 파라미터 참조가 나옵니다.

{ "AuthorizationConfiguration": { "EmrFsConfiguration": { "RoleMappings": [{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_for_user1", "IdentifierType": "User", "Identifiers": [ "user1" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_to_MyBuckets", "IdentifierType": "Prefix", "Identifiers": [ "s3://MyBucket/","s3://MyOtherBucket/" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_for_AdminGroup", "IdentifierType": "Group", "Identifiers": [ "AdminGroup" ] }] } } }
파라미터 설명

"AuthorizationConfiguration":

필수 사항입니다.

"EmrFsConfiguration":

필수 사항입니다. 역할 매핑을 포함합니다.

  "RoleMappings":

필수 사항입니다. 역할 매핑 정의를 하나 이상 포함. 역할 매핑은 표시되는 순서대로 위에서부터 아래로 평가됩니다. 역할 매핑이 Amazon S3 내 데이터에 대한 EMRFS 호출에 true로 평가되는 경우 역할 매핑은 추가로 평가되지 않으며 EMRFS가 해당 요청에 지정된 IAM 역할을 사용합니다. 역할 매핑은 다음과 같은 필수 파라미터로 구성됩니다.

   "Role":

IAM 역할의 ARN 식별자를 arn:aws:iam::account-id:role/role-name 형식으로 지정합니다. 이는 Amazon S3에 대한 EMRFS 요청이 지정된 Identifiers 중 하나와 일치하는 경우 Amazon EMR에서 수임하는 IAM 역할입니다.

   "IdentifierType":

다음 중 하나가 될 수 있습니다.

  • "User"는 식별자가 하나 이상의 Hadoop 사용자이도록 지정하는데, Linux 계정 사용자 또는 Kerberos 보안 주체일 수 있습니다. EMRFS 요청이 지정된 사용자로 시작하는 경우 IAM 역할이 수임됩니다.

  • "Prefix"에서는 식별자가 Amazon S3 위치가 되도록 지정합니다. 지정된 접두사가 있는 위치에 대한 호출에는 IAM 역할이 수임됩니다. 예를 들어 s3://mybucket/접두사는 s3://mybucket/mydir s3://mybucket/yetanotherdir과 일치합니다.

  • "Group"은 식별자가 한 개 이상의 하둡 그룹이 되도록 지정합니다. 요청이 지정된 그룹의 사용자에서 시작되는 경우 IAM 역할이 수임됩니다.

   "Identifiers":

해당 식별자 유형의 하나 이상의 식별자를 지정합니다. 공백 없이 콤마로 구분된 여러 개의 식별자.

Amazon EC2 인스턴스에 대한 메타데이터 서비스 요청 구성

인스턴스 메타데이터는 실행 중인 인스턴스를 구성 또는 관리하는 데 사용될 수 있는 인스턴스 관련 데이터입니다. 다음 방법 중 하나를 사용하여 실행 중인 인스턴스에서 인스턴스 메타데이터에 액세스할 수 있습니다.

  • 인스턴스 메타데이터 서비스 버전 1(IMDSv1) - 요청 및 응답 방법

  • 인스턴스 메타데이터 서비스 버전 2(IMDSv2) – 세션 중심 방법

Amazon EC2는 IMDSv1 및 IMDSv2를 모두 지원하는 반면, Amazon EMR은 Amazon EMR 5.23.1, 5.27.1, 5.32 이상 및 6.2 이상에서 IMDSv2를 지원합니다. 이번 릴리스에서 Amazon EMR 구성 요소는 모든 IMDS 직접 호출에 IMDSv2를 사용합니다. 애플리케이션 코드에서 IMDS를 직접 호출하는 경우, IMDSv1 및 IMDSv2를 모두 사용하거나, 추가 보안을 위해 IMDSv2만 사용하도록 IMDS를 구성할 수 있습니다. IMDSv2를 사용해야 하도록 지정하면 IMDSv1는 더 이상 작동하지 않습니다.

자세한 내용은 Amazon EC2 사용 설명서의 인스턴스 메타데이터 서비스 구성을 참조하십시오.

참고

이전 Amazon EMR 5.x 또는 6.x 릴리스에서는 IMDSv1을 끄면 Amazon EMR 구성 요소가 모든 IMDS 직접 호출에 IMDSv1을 사용하기 때문에 클러스터가 시작되지 않습니다. IMDSv1을 끄는 경우 IMDSv1을 활용하는 모든 사용자 지정 소프트웨어가 IMDSv2로 업데이트되었는지 확인하세요.

AWS CLI를 사용하여 인스턴스 메타데이터 서비스 구성 지정

다음은 보안 구성 내에서 Amazon EC2 인스턴스 메타데이터 서비스(IMDS)를 지정하는 JSON 스니펫 예제입니다. 사용자 지정 보안 구성 사용은 선택 사항입니다.

{ "InstanceMetadataServiceConfiguration" : { "MinimumInstanceMetadataServiceVersion": integer, "HttpPutResponseHopLimit": integer } }
파라미터 설명

"InstanceMetadataServiceConfiguration":

보안 구성 내에서 IMDS를 지정하지 않고 IMDSv1이 필요한 Amazon EMR 릴리스를 사용하는 경우, Amazon EMR은 기본적으로 IMDSv1을 최소 인스턴스 메타데이터 서비스 버전으로 사용합니다. 자체 구성을 사용하려면 다음 파라미터가 모두 필요합니다.

"MinimumInstanceMetadataServiceVersion":

필수 사항입니다. 1 또는 2을 지정합니다. 값이 1이면 IMDSv1 및 IMDSv2를 허용합니다. 값이 2이면 IMDSv2만 허용합니다.

"HttpPutResponseHopLimit":

필수 사항입니다. 인스턴스 메타데이터 요청에 대해 원하는 HTTP PUT 응답 홉 제한 숫자가 클수록 인스턴스 메타데이터 요청이 더 멀리 이동할 수 있습니다. 기본값: 1. 1에서 64까지의 정수를 지정합니다.

콘솔을 사용하여 인스턴스 메타데이터 서비스 구성 지정

Amazon EMR 콘솔에서 클러스터를 시작할 때 클러스터에서 IMDS를 사용하도록 구성할 수 있습니다.

콘솔을 사용하여 IMDS 사용을 구성하는 방법:
  1. 보안 구성 페이지에서 새 보안 구성을 생성할 때 EC2 인스턴스 메타데이터 서비스 설정에서 EC2 인스턴스 메타데이터 서비스 구성을 선택합니다. 이 구성은 Amazon EMR 5.23.1, 5.27.1, 5.32 이상 및 6.2 이상에서만 지원됩니다.

  2. 최소 인스턴스 메타데이터 서비스 버전 옵션의 경우 다음 중 하나를 선택합니다.

    • 이 클러스터에서 IMDSv2만 허용하려면 IMDSv1을 끄고 IMDSv2만 허용합니다. Amazon EC2 사용 설명서의 인스턴스 메타데이터 서비스 버전 2 사용으로 전환을 참조하십시오.

    • 이 클러스터에서 IMDSv1 및 세션 중심 IMDSv2를 허용하려면 클러스터에서 IMDSv1 및 IMDSv2를 모두 허용합니다.

  3. IMDSv2의 경우 HTTP put 응답 홉 제한1에서 64 사이의 정수로 설정하여 메타데이터 토큰의 네트워크 홉에 대해 허용 가능한 수를 구성할 수 있습니다.

자세한 내용은 Amazon EC2 사용 설명서의 인스턴스 메타데이터 서비스 구성을 참조하십시오.

Amazon EC2 사용 설명서의 인스턴스 세부 정보 구성 및 인스턴스 메타데이터 서비스 구성을 참조하십시오.