AWS S3 커넥터 문제 해결
AWS(Amazon Web Services) S3 커넥터를 사용하면 AWS S3 버킷에 수집된 AWS 서비스 로그를 Microsoft Sentinel로 수집할 수 있습니다. 현재 지원하는 로그 유형은 AWS CloudTrail, VPC 흐름 로그 및 AWS GuardDuty입니다.
이 문서에서는 문제를 해결하는 데 필요한 단계를 찾을 수 있도록 AWS S3 커넥터에서 발생하는 문제의 원인을 빠르게 식별하는 방법을 설명합니다.
Microsoft Sentinel을 Amazon Web Services에 연결하여 AWS 서비스 로그 데이터를 수집하는 방법을 알아보세요.
Microsoft Sentinel에서 Amazon Web Services S3 커넥터 또는 해당 데이터 형식 중 하나로부터 데이터를 받지 않음
AWS S3 커넥터(또는 해당 데이터 형식 중 하나)에 대한 로그는 커넥터가 연결된 후 30분 넘게 Microsoft Sentinel 작업 영역에 표시되지 않습니다.
원인과 해결 방법을 찾으려면 먼저 다음 고려 사항을 검토하세요.
- 커넥터가 연결된 순간부터 데이터가 작업 영역에 수집될 때까지 약 20-30분 정도 걸릴 수 있습니다.
- 커넥터의 연결 상태는 컬렉션 규칙이 있음을 나타내며, 데이터가 수집된 것을 나타내지는 않습니다. Amazon Web Services S3 커넥터의 상태가 녹색이면 데이터 형식 중 하나에 대한 수집 규칙이 있지만 여전히 데이터는 없습니다.
문제의 원인 파악
이 섹션에서는 다음과 같은 원인을 다룹니다.
- AWS S3 커넥터 권한 정책이 제대로 설정되지 않습니다.
- 데이터가 AWS의 S3 버킷에 수집되지 않습니다.
- AWS 클라우드의 Amazon SQS(Simple Queue Service)에서 S3 버킷으로부터 알림을 받지 않습니다.
- AWS 클라우드의 SQS/S3에서 데이터를 읽을 수 없습니다. GuardDuty 로그를 사용하면 잘못된 KMS 권한으로 인해 문제가 발생합니다.
원인 1: AWS S3 커넥터 권한 정책이 제대로 설정되지 않음
이 문제는 AWS 환경에서 잘못된 권한으로 인해 발생합니다.
권한 정책 만들기
AWS S3 데이터 커넥터를 배포하려면 권한 정책이 필요합니다. 필요한 권한을 검토하고 관련 권한을 설정합니다.
원인 2: 관련 데이터가 S3 버킷에 없음
관련 로그가 S3 버킷에 없습니다.
해결 방법: 로그 검색 및 필요한 경우 로그 내보내기
- AWS에서 S3 버킷을 열고, 필요한 로그에 따라 관련 폴더를 검색하여 로그 파일이해당 폴더 내에 있는지 확인합니다.
- 데이터가 없으면 AWS 구성 관련 문제가 있는 것입니다. 이 경우 로그를 S3 버킷으로 내보내도록 AWS 서비스를 구성해야 합니다.
원인 3: S3 데이터가 SQS에 도착하지 않았음
데이터가 S3에서 SQS로 성공적으로 전송되지 않았습니다.
해결 방법: 데이터가 도착했는지 확인하고 이벤트 알림을 구성함
- AWS에서 관련 SQS를 엽니다.
- 모니터링 탭에서 전송된 메시지 수 위젯에 트래픽이 표시되어야 합니다. 트래픽이 SQS에 없으면 AWS 구성 문제가 있는 것입니다.
- SQS에 대한 이벤트 알림 정의에 올바른 데이터 필터(접두사 및 접미사)가 포함되어 있는지 확인합니다.
- 이벤트 알림을 보려면 S3 버킷에서 속성 탭을 선택하고 이벤트 알림 섹션을 찾습니다.
- 이 섹션이 보이지 않으면 새로 만듭니다.
- SQS에 S3 버킷에서 데이터를 가져오는 관련 정책이 있는지 확인합니다. SQS는 액세스 정책 탭에 이 정책을 포함해야 합니다.
원인 4: SQS에서 데이터를 읽지 않았음
SQS에서 S3 데이터를 성공적으로 읽지 못했습니다.
해결 방법: SQS에서 데이터를 읽는지 확인
AWS에서 관련 SQS를 엽니다.
모니터링 탭에서 삭제된 메시지 수 및 수신된 메시지 수 위젯에 트래픽이 표시되어야 합니다.
한 번의 데이터 급증만으로는 충분하지 않습니다. 충분한 데이터(여러 스파이크)가 있을 때까지 기다린 다음, 문제를 확인합니다.
마침내 위젯 중 하나 이상이 비어 있으면 다음 쿼리를 실행하여 상태 로그를 확인합니다.
SentinelHealth | where TimeGenerated > ago(1d) | where SentinelResourceKind in ('AmazonWebServicesCloudTrail', 'AmazonWebServicesS3') | where OperationName == 'Data fetch failure summary' | mv-expand TypeOfFailureDuringHour = ExtendedProperties["FailureSummary"] | extend StatusCode = TypeOfFailureDuringHour["StatusCode"] | extend StatusMessage = TypeOfFailureDuringHour["StatusMessage"] | project SentinelResourceKind, SentinelResourceName, StatusCode, StatusMessage, SentinelResourceId, TypeOfFailureDuringHour, ExtendedProperties
상태 기능이 사용하도록 설정되어 있는지 확인합니다.
SentinelHealth | take 20
상태 기능이 사용하도록 설정되어 있지 않으면 사용하도록 설정합니다.
AWS S3 커넥터(또는 해당 데이터 형식 중 하나)의 데이터가 30분 넘게 지연되어 Microsoft Sentinel에 표시됩니다.
일반적으로 Microsoft에서 S3 폴더의 파일을 읽을 수 없는 경우 이 문제가 발생합니다. 파일이 암호화되었거나 잘못된 형식이므로 Microsoft에서 파일을 읽을 수 없습니다. 이러한 경우 많은 다시 시도는 결국 수집 지연을 유발합니다.
문제의 원인 파악
이 섹션에서는 다음과 같은 원인을 다룹니다.
- 로그 암호화가 올바르게 설정되지 않습니다.
- 이벤트 알림이 올바르게 정의되지 않습니다.
- 상태 오류 또는 상태가 사용하지 않도록 설정되어 있습니다.
원인 1: 로그 암호화가 올바르게 설정되지 않음
로그가 KMS(키 관리 서비스)에서 전체 또는 부분적으로 암호화되면 이 KMS에서 대한 파일의 암호를 해독할 수 있는 권한이 Microsoft Sentinel에 없을 수 있습니다.
해결 방법: 로그 암호화 확인
이 KMS에서 파일의 암호를 해독할 수 있는 권한이 Microsoft Sentinel에 있는지 확인합니다. GuardDuty 및 CloudTrail 로그에 대한 필요한 KMS 권한을 검토합니다.
원인 2: 이벤트 알림이 올바르게 구성되지 않음
Amazon S3 이벤트 알림을 구성하는 경우 Amazon S3에서 알림을 보내야 하는 지원되는 이벤트 유형을 지정해야 합니다. 지정하지 않은 이벤트 유형이 Amazon S3 버킷에 있으면 Amazon S3에서 알림을 보내지 않습니다.
해결 방법: 이벤트 알림이 올바르게 정의되어 있는지 확인
S3에서 SQS로의 이벤트 알림이 올바르게 정의되어 있는지 확인하려면 다음을 확인합니다.
- 알림은 버킷이 포함된 기본 폴더가 아니라 로그가 포함된 특정 폴더에서 정의됩니다.
- 알림은 .gz 접미사로 정의됩니다. 예시:
원인 3: 상태 오류 또는 상태가 사용하지 않도록 설정됨
상태 로그에 오류가 있거나 상태 기능이 사용하도록 설정되지 않았을 수 있습니다.
해결 방법: 상태 로그에 오류가 없는지 확인하고 상태를 사용하도록 설정함
다음 쿼리를 실행하여 상태 로그에 오류가 없는지 확인합니다.
SentinelHealth | where TimeGenerated between (ago(startTime)..ago(endTime)) | where SentinelResourceKind == "AmazonWebServicesS3" | where Status != "Success" | distinct TimeGenerated, OperationName, SentinelResourceName, Status, Description
상태 기능이 사용하도록 설정되어 있는지 확인합니다.
SentinelHealth | take 20
상태 기능이 사용하도록 설정되어 있지 않으면 사용하도록 설정합니다.
다음 단계
이 문서에서는 AWS S3 커넥터와 관련된 일반적인 문제의 원인을 빠르게 식별하고 해결하는 방법을 알아보았습니다.
피드백, 제안, 기능 요청, 버그 보고 또는 개선 및 추가 사항은 언제든지 환영합니다. Microsoft Sentinel GitHub 리포지토리로 이동하여 문제를 작성하거나, 포크하거나, 기여 자료를 업로드합니다.