관리형 스토리지를 사용하여 Amazon EMR on EKS 로그 암호화
다음 섹션에서는 로그에 대한 암호화를 구성하는 방법을 보여줍니다.
Enable encryption
자체 KMS 키를 사용하여 관리형 스토리지에서 로그를 암호화하려면 작업 실행을 제출할 때 다음 구성을 사용합니다.
"monitoringConfiguration": { "managedLogs": { "allowAWSToRetainLogs":"ENABLED", "encryptionKeyArn":"KMS key arn" }, "persistentAppUI": "ENABLED" }
allowAWSToRetainLogs 구성을 통해 AWS는 네이티브 FGAC를 사용하여 작업을 실행할 때 시스템 네임스페이스 로그를 유지할 수 있습니다. persistentAppUI 구성을 통해 AWS는 Spark UI를 생성하는 데 사용되는 이벤트 로그를 저장할 수 있습니다. encryptionKeyArn은 AWS에 저장된 로그를 암호화하는 데 사용할 KMS 키 ARN을 지정하는 데 사용됩니다.
로그 암호화에 필요한 권한
작업을 제출하거나 Spark UI를 보는 사용자는 암호화 키에 대해 kms:DescribeKey, kms:GenerateDataKey 및 kms:Decrypt 작업을 허용해야 합니다. 이러한 권한은 키의 유효성을 확인하고 사용자에게 KMS 키로 암호화된 로그를 읽고 쓰는 데 필요한 권한이 있는지 확인하기 위한 용도로 사용됩니다. 작업을 제출하는 사용자에게 필요한 키 권한이 없는 경우 Amazon EMR on EKS는 작업 실행 제출을 거부합니다.
StartJobRun을 호출하는 데 사용되는 역할에 대한 IAM 정책 예제
또한 persistentappui.elasticmapreduce.amazonaws.com 및 elasticmapreduce.amazonaws.com 서비스 보안 주체가 kms:GenerateDataKey 및 kms:Decrypt를 허용하도록 KMS 키를 구성해야 합니다. 이 기능을 통해 EMR이 KMS 키로 암호화된 로그를 읽고 관리형 스토리지에 쓸 수 있습니다.
KMS 키 정책 예제
보안을 위해 kms:viaService, kms:EncryptionContext 및 aws:SourceArn 조건을 추가하는 것이 좋습니다. 이러한 조건은 키가 Amazon EMR on EKS에서만 사용되며 특정 가상 클러스터에서 실행되는 작업에서 생성된 로그에만 사용되도록 합니다.