로그 암호화 - Amazon EMR

로그 암호화

관리형 스토리지를 사용하는 EMR Serverless 로그 암호화

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

{ "monitoringConfiguration": { "managedPersistenceMonitoringConfiguration" : { "encryptionKeyArn": "key-arn" } } }

Amazon S3 버킷을 사용하는 EMR Serverless 로그 암호화

자체 KMS 키를 사용하여 Amazon S3 버킷에서 로그를 암호화하려면 작업 실행을 제출할 때 s3MonitoringConfiguration 구성을 사용합니다.

{ "monitoringConfiguration": { "s3MonitoringConfiguration": { "logUri": "s3://amzn-s3-demo-logging-bucket/logs/", "encryptionKeyArn": "key-arn" } } }

Amazon CloudWatch를 사용하는 EMR Serverless 로그 암호화

자체 KMS 키로 Amazon CloudWatch에서 로그를 암호화하려면 작업 실행을 제출할 때 cloudWatchLoggingConfiguration 구성을 사용합니다.

{ "monitoringConfiguration": { "cloudWatchLoggingConfiguration": { "enabled": true, "encryptionKeyArn": "key-arn" } } }

로그 암호화에 필요한 권한

필요한 사용자 권한

작업을 제출하거나 로그 또는 애플리케이션 UI를 보는 사용자는 키를 사용할 권한이 있어야 합니다. 사용자, 그룹 또는 역할에 대한 IAM 정책 또는 KMS 키 정책에서 권한을 지정할 수 있습니다. 작업을 제출하는 사용자에게 KMS 키 권한이 없는 경우 EMR Serverless는 작업 실행 제출을 거부합니다.

예제 키 정책

다음 키 정책에서는 kms:GenerateDataKeykms:Decrypt에 대한 권한을 제공합니다.

{ "Effect": "Allow", "Principal":{ "AWS": "arn:aws:iam::111122223333:user/user-name" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" }

IAM 정책 예제

다음 IAM 정책은 kms:GenerateDataKeykms:Decrypt에 대한 권한을 제공합니다.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "key-arn" } }

Spark 또는 Tez UI를 시작하려면 사용자, 그룹 또는 역할에 다음과 같이 emr-serverless:GetDashboardForJobRun API에 액세스할 수 있는 권한을 부여해야 합니다.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "emr-serverless:GetDashboardForJobRun" ] } }

Amazon S3 및 관리형 스토리지에 대한 암호화 키 권한

관리형 스토리지 또는 S3 버킷에서 자체 암호화 키로 로그를 암호화하는 경우 다음과 같이 KMS 키 권한을 구성해야 합니다.

emr-serverless.amazonaws.com 위탁자는 KMS 키에 대한 정책에 다음 권한이 있어야 합니다.

{ "Effect": "Allow", "Principal":{ "Service": "emr-serverless.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:emr-serverless:region:aws-account-id:/applications/application-id" } } }

보안 모범 사례로 aws:SourceArn 조건 키를 KMS 키 정책에 추가하는 것이 좋습니다. IAM 전역 조건 키 aws:SourceArn은 EMR Serverless가 애플리케이션 ARN에 대해서만 KMS 키를 사용하도록 하는 데 도움이 됩니다.

작업 런타임 역할에는 IAM 정책에 다음 권한이 있어야 합니다.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "key-arn" } }

Amazon CloudWatch에 대한 암호화 키 권한

KMS 키 ARN을 로그 그룹에 연결하려면 작업 런타임 역할에 대해 다음 IAM 정책을 사용합니다.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "logs:AssociateKmsKey" ], "Resource": [ "arn:aws:logs:AWS 리전:111122223333:log-group:my-log-group-name:*" ] } }

Amazon CloudWatch에 KMS 권한을 부여하도록 KMS 키 정책을 구성합니다.

{ "Version": "2012-10-17", "Id": "key-default-1", "Statement": { "Effect": "Allow", "Principal": { "Service": "logs.AWS 리전.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", ], "Resource": "*", "Condition": { "ArnLike": { "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:AWS 리전:111122223333:*" } } } }