AWS CloudTrail 로그 내보내는 방법

AWS CloudTrail 로그 내보내는 방법

SOC Prime Team
SOC Prime Team linkedin icon 팔로우

지난 90일 간의 관리 이벤트는 CloudTrail 콘솔(을) 사용합니다. (이벤트 기록 → 이벤트 다운로드 → JSON) 또는 aws cloudtrail lookup-events를 사용하세요. 더 오래된 데이터나 S3 객체 읽기와 같은 데이터 이벤트의 경우 S3의 추적 로그 파일을 읽으십시오. s3://<버킷>/AWSLogs/<계정-id>/CloudTrail/<지역>/YYYY/MM/DD/ 아래에 위치합니다.

CloudTrail은 AWS 제어 플레인의 감사 로그입니다: 모든 콘솔 로그인, 모든 API 호출, 모든 역할 전환. 클라우드 사건에서는 항상 가장 먼저 요청하는 것입니다. Prime Core에는 262개의 CloudTrail 탐지 규칙이 있으며, 177개의 MITRE ATT&CK 기법에 매핑됩니다. 그 중에는 클라우드 계정 남용 (T1078.004), 클라우드 로깅 비활성화 (T1562.008), 클라우드 저장소에서 데이터 절도 (T1530)가 포함됩니다.

시작하기 전에

이벤트 기록과 추적은 다른 것들입니다. 이벤트 기록은 항상 켜져 있고 무료입니다. 지역당 90일 간의 관리 이벤트를 유지합니다. 추적은 설정해야 하는 것: S3에 기록, 원하는 기간만큼 로그를 유지하며 데이터 이벤트를 포함할 수 있습니다. 어떤 것이 있는지 확인하십시오:

aws cloudtrail describe-trails

aws cloudtrail get-trail-status --name <trail-name>

로그가 실행 중이어야 하는 추적에서 IsLogging: false인 경우 그 자체로 발견입니다.

지역이 중요합니다. 이벤트 기록은 지역별이며, IAM과 같은 글로벌 서비스 이벤트는 보통 us-east-1에 기록됩니다. eu-west-1에서 CreateUser 호출을 찾고 있다면 찾을 수 없습니다.

권한. 이벤트 기록에 대해 cloudtrail:LookupEvents. 추적 파일에는 s3:ListBucket 및 s3:GetObject에 버킷에 대한 권한, 그리고 KMS 키로 암호화된 경우 kms:Decrypt가 필요합니다.

옵션 1: 콘솔 다운로드

CloudTrail을 열고 이벤트 기록으로 이동하여시간 범위와 모든 필터(이벤트 이름, 사용자, 리소스)를 설정한 다음 이벤트 다운로드 → JSON을 선택하세요.다운로드는 필터를 반영하므로 먼저 확인하십시오. 현재 지역에만 해당됩니다.

옵션 2: CLI에서 lookup-events

aws cloudtrail lookup-events --region us-east-1 

  --start-time 2026-10-19T00:00:00Z --end-time 2026-10-20T00:00:00Z

  --output json > ct_use1_1019.json

알아야 할 두 가지. 첫째, 각 결과는 JSON으로 이벤트를 래핑합니다. 문자열 로 CloudTrailEvent 내에서. 각 줄에 하나의 깔끔한 이벤트로 풀어내십시오:

jq -c '.Events[].CloudTrailEvent | fromjson' ct_use1_1019.json > ct_use1_1019.jsonl

둘째, lookup-events는 계정 및 지역당 속도 제한되며, 호출당 하나의 –lookup-attributes 필터만 허용합니다. 시간 창이 넓으면 시간이 걸리므로 가능한 좁히십시오. 모든 지역을 커버하려면 aws ec2 describe-regions –query ‘Regions[].RegionName’ –output text를 루프하세요.

옵션 3: S3의 추적 파일

90일 이상의 기록 및 데이터 이벤트의 경로는 다음과 같습니다:

aws s3 cp s3://my-trail-bucket/AWSLogs/123456789012/CloudTrail/eu-west-1/2026/10/19/ ./ct/ --recursive

gunzip ./ct/*.json.gz

jq -c '.Records[]' ./ct/*.json > ct_euw1_1019.jsonl

각 파일은 Records 배열을 포함하고 있으며, jq 줄은 각각 한 줄에 하나의 이벤트로 평탄화합니다. 조직적 추적은 경로에 조직 ID를 추가합니다: AWSLogs/<org-id>/<account-id>/CloudTrail/…. CloudTrail Lake를 사용하는 경우, 이벤트를 SQL로 실행하고 결과를 저장할 수 있습니다.

찾아야 할 것

이벤트왜 중요한가
ConsoleLogin추가 이벤트 데이터.MFA 사용 여부, 알 수 없는 실패 및 소스 IP를 확인하세요.
CreateUser, CreateAccessKey, AttachUserPolicy새로운 정체성과 키: 전형적인 지속성 및 권한 상승
StopLogging, DeleteTrail, PutEventSelectorsCloudTrail이 보는 것을 줄이는 누군가
이상한 출처에서의 AssumeRole역할 및 계정 간의 횡축 이동
AccessDenied 오류 코드 급증도난된 자격 증명을 사용한 정찰
GetSecretValue, GetObject 급증데이터 액세스; S3 데이터 이벤트가 켜져 있는 경우에만 GetObject가 나타납니다.

LogTotal에서 업로드, 정제 및 검토

  1. 업로드. 열기 logtotal.com 을 통해 .jsonl(또는 .json 파일)을 드롭하세요.
  2. 정제. [what gets masked: account IDs, ARNs, IPs, access key IDs, usernames]. Look it over before you continue.
  3. 검토. 

문제가 발생할 때

증상가능성 있는 원인Fix
lookup-events가 아무것도 반환하지 않음잘못된 지역; IAM 이벤트는 보통 us-east-1에 살고 있습니다.us-east-1에 쿼리하거나 모든 지역을 루프하세요
90일보다 오래된 데이터 없음이벤트 기록 보유S3의 추적 파일을 사용하세요
GetObject 이벤트 없음추적에서 S3 데이터 이벤트가 활성화되지 않음예상됨; 앞으로 사용할 수 있도록 활성화하세요
추적 파일을 읽을 때 AccessDeniedkms:Decrypt가 없거나 버킷 정책IAM 또는 버킷 정책 수정
ThrottlingExceptionlookup-events 속도 제한작은 창; CLI 재시도 허용

FAQ

이벤트 기록에 데이터 이벤트가 포함됩니까?

아니요. 관리 이벤트만 포함됩니다. 데이터 이벤트는 추적 또는 이벤트 데이터 저장소가 기록되도록 설정된 경우에만 존재합니다.

이벤트는 얼마나 빨리 표시됩니까?

보통 API 호출 직후 몇 분 내에 표시됩니다. S3의 추적 파일은 배치로 도착하므로, 매우 최근의 이벤트는 파일에 아직 포함되지 않을 수 있습니다.

SOC Prime의 Detection as Code 플랫폼에 가입하세요 귀사의 비즈니스에 가장 중요한 위협에 대한 가시성을 개선하세요. 시작을 돕고 즉각적인 가치를 제공하기 위해 지금 SOC Prime 전문가와의 회의를 예약하세요.