SSE-KMS 암호화를 적용하는 정책이 연결된 S3 버킷에서 Amazon EMR 클러스터 로그를 볼 수 없는 이유는 무엇입니까?

2분 분량
0

Amazon EMR 클러스터 로그가 지정한 Amazon Simple Storage Service(Amazon S3) 버킷에 보관되지 않습니다. S3 버킷에는 AWS Key Management Service(SSE-KMS)를 사용한 서버 측 암호화를 적용하는 정책이 연결되어 있습니다. 다음과 유사한 403 오류가 발생하여 로그 쓰기가 실패합니다. 2020-01-15 04:01:25,247 INFO logspusher-6: Failed to upload 126 logs: USE: /emr/instance-state/instance-state.log-2020-01-14-20-15.gz reason: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: 8B99FE94D1678AAB)

간략한 설명

Amazon EMR 클러스터에 대해 로깅을 활성화하면 LogPusher 서비스가 클러스터 로그를 지정된 S3 버킷에 보관합니다. LogPusher는 SSE-KMS가 아닌 AES-256 암호화를 사용하여 로그를 작성합니다. SSE-KMS 암호화 정책이 있는 S3 버킷에 로그를 쓰려면 sync 명령을 사용하여 파일을 수동으로 업로드합니다.

참고: AWS CLI 명령을 실행할 때 오류가 발생하는 경우 최신 버전의 AWS CLI를 사용하고 있는지 확인하세요.

해결 방법

참고: Amazon EMR 5.30.0 이상 버전(Amazon EMR 6.0.0 제외)인 경우, AWS KMS 고객 관리형 키를 사용하여 Amazon S3에 저장된 로그 파일을 암호화할 수 있습니다.

1.    SSH를 사용하여 마스터 노드에 연결합니다.

2.    복사할 로그 파일을 찾습니다. 예를 들어 단계 로그는 마스터 노드의 /mnt/var/log/hadoop/steps에 저장됩니다.

3.    로그 파일을 S3 버킷에 복사하려면 -sse-kms-key-id 필드와 함께 sync 명령을 실행합니다. 예:

aws s3 sync /mnt/var/log/hadoop/steps/ s3://awsexamplebucket/elasticmapreduce/${cluster_id}/steps/ --sse aws:kms --sse-kms-key-id 17246c74-6ff4-4adb-86e5-76f7f1603f00

cron 작업을 사용하여 sync 명령을 자동화할 수 있습니다. Cron 작업을 구성하려면 Amazon EMR 클러스터를 시작할 때 모든 노드에서 사용자 지정 부트스트랩 작업을 실행합니다.


관련 정보

AWS Key Management Service에 저장된 AWS KMS 키로 서버 측 암호화를 사용하여 데이터 보호

Amazon S3 버킷에서 AWS KMS로 기본 암호화를 활성화하면 새로운 객체나 기존 객체는 어떻게 됩니까?

AWS 공식
AWS 공식업데이트됨 3년 전