관리형 스토리지를 사용하여 Amazon EMR on EKS 로그 암호화 - Amazon EMR

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

관리형 스토리지를 사용하여 Amazon EMR on EKS 로그 암호화

다음 섹션에서는 로그에 대한 암호화를 구성하는 방법을 보여줍니다.

암호화 활성화

자체 KMS 키로 관리형 스토리지의 로그를 암호화하려면 작업 실행을 제출할 때 다음 구성을 사용합니다.

"monitoringConfiguration": { "managedLogs": { "allowAWSToRetainLogs":"ENABLED", "encryptionKeyArn":"KMS key arn" }, "persistentAppUI": "ENABLED" }

allowAWSToRetainLogs 구성을 통해는 네이티브 FGAC AWS 를 사용하여 작업을 실행할 때 시스템 네임스페이스 로그를 유지할 수 있습니다. persistentAppUI 구성을 통해는 Spark UI AWS 를 생성하는 데 사용되는 이벤트 로그를 저장할 수 있습니다. encryptionKeyArn는에서 저장된 로그를 암호화하는 데 사용할 KMS 키 ARN을 지정하는 데 사용됩니다 AWS.

로그 암호화에 필요한 권한

작업을 제출하거나 Spark UI를 보는 사용자는 암호화 키에 kms:Decrypt 대해 kms:DescribeKeykms:GenerateDataKey, 및 작업을 허용해야 합니다. 이러한 권한은 키의 유효성을 확인하고 사용자에게 KMS 키로 암호화된 로그를 읽고 쓰는 데 필요한 권한이 있는지 확인하는 데 사용됩니다. 작업을 제출하는 사용자에게 필요한 키 권한이 없는 경우 Amazon EMR on EKS는 작업 실행 제출을 거부합니다.

StartJobRun을 호출하는 데 사용되는 역할에 대한 IAM 정책 예제

JSON
{ "Version": "2012-10-17", "Statement": [ { "Action": "emr-containers:StartJobRun", "Resource": "*", "Effect": "Allow" }, { "Action": [ "kms:DescribeKey", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "KMS key ARN", "Effect": "Allow" } ] }

또한 persistentappui.elasticmapreduce.amazonaws.com.rproxy.govskope.caelasticmapreduce.amazonaws.com 서비스 보안 주체가 kms:GenerateDataKey 및를 허용하도록 KMS 키를 구성해야 합니다kms:Decrypt. 이를 통해 EMR은 KMS 키로 암호화된 로그를 관리형 스토리지에 읽고 쓸 수 있습니다.

KMS 키 정책 예제

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "IAM role ARN used to call StartJobRun" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringLike": { "kms:viaService": "emr-containers.us-east-1.amazonaws.com" } } }, { "Effect": "Allow", "Principal": { "AWS": "IAM role ARN used to call StartJobRun" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:viaService": "emr-containers.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:emr-containers:virtualClusterId": "virtual cluster id" } } }, { "Effect": "Allow", "Principal": { "Service": [ "persistentappui.elasticmapreduce.amazonaws.com", "elasticmapreduce.amazonaws.com" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:emr-containers:virtualClusterId": "virtual cluster id", "aws:SourceArn": "virtual cluster ARN" } } } ] }

보안 모범 사례로 , kms:viaService kms:EncryptionContextaws:SourceArn 조건을 추가하는 것이 좋습니다. 이러한 조건은 키가 Amazon EMR on EKS에서만 사용되고 특정 가상 클러스터에서 실행되는 작업에서 생성된 로그에만 사용되도록 하는 데 도움이 됩니다.