본문 바로가기
IT 클라우드 정보

CloudTrail로 누가 언제 무엇을 바꿨는지 찾는 법, 이벤트 기록과 추적의 차이

by 킴스 클라우드 2026. 10. 7.

클라우드 계정을 여러 사람이 함께 쓰다 보면 "어제 밤에 이 인스턴스를 누가 껐지?", "보안 그룹 규칙이 언제 바뀌었지?" 같은 질문이 꼭 생깁니다. 콘솔 화면에는 지금 상태만 보이기 때문에, 바뀐 과정을 되짚으려면 별도의 기록이 필요합니다.

 

AWS CloudTrail은 계정에서 일어난 API 호출을 기록하는 서비스입니다. 콘솔에서 버튼을 누르든, AWS CLI나 SDK로 명령을 보내든 결국 AWS API 호출로 처리되기 때문에, CloudTrail 기록을 보면 누가, 언제, 어디서, 어떤 작업을 했는지 확인할 수 있습니다.

 

이 글에서는 따로 설정하지 않아도 볼 수 있는 이벤트 기록과 직접 만들어야 하는 추적(trail)의 차이, 관리 이벤트와 데이터 이벤트의 구분, 실제로 원인을 찾는 검색 방법, 그리고 요금 계산 방법을 정리합니다.

 

최근 90일의 관리 이벤트는 별도 설정 없이 무료로 조회할 수 있지만, 90일보다 오래 보관하거나 여러 리전을 한곳에 모으려면 추적을 만들어 S3에 저장해야 합니다. 관리 이벤트의 첫 번째 사본은 추적 요금이 없고, S3 보관 비용만 따로 생깁니다.

 

CloudTrail로 누가 언제 무엇을 바꿨는지 찾는 법, 이벤트 기록과 추적의 차이
CloudTrail로 누가 언제 무엇을 바꿨는지 찾는 법, 이벤트 기록과 추적의 차이

 

CloudTrail이 기록하는 것

CloudTrail의 기본 단위는 이벤트입니다. 이벤트 하나에는 호출한 사람(userIdentity), 시각(eventTime), 작업 이름(eventName), 요청이 들어온 IP 주소(sourceIPAddress), 리전(awsRegion), 요청 내용(requestParameters), 실패했다면 오류 코드(errorCode)가 함께 담깁니다.

 

이벤트는 성격에 따라 몇 가지로 나뉩니다. 이 중 처음 시작할 때 알아야 할 것은 관리 이벤트와 데이터 이벤트 두 가지입니다.

 

구분 무엇을 기록하나 예시 기본 기록 여부
관리 이벤트 리소스를 만들고, 바꾸고, 지우는 작업 RunInstances, StopInstances, DeleteBucket, ConsoleLogin 기록됨
데이터 이벤트 리소스 안의 데이터를 읽고 쓰는 작업 S3 GetObject·PutObject, Lambda Invoke 기록 안 됨(추적에서 직접 켜야 함)
Insights 이벤트 평소와 다른 호출량이나 오류율 짧은 시간에 IAM 작업이 급증 기록 안 됨(유료 기능)

 

데이터 이벤트는 S3 객체를 하나 읽을 때마다 생길 만큼 양이 많기 때문에 기본으로 꺼져 있습니다. 민감한 파일이 든 버킷처럼 꼭 필요한 대상에만 골라서 켜는 것이 일반적입니다.

 

이벤트 기록과 추적의 차이

CloudTrail은 계정을 만들면 자동으로 켜져 있고, 콘솔의 이벤트 기록 메뉴에서 최근 90일의 관리 이벤트를 바로 볼 수 있습니다. 이 기록은 수정하거나 지울 수 없고, 조회에 따로 요금이 붙지 않습니다. 다만 몇 가지 한계가 있습니다.

 

이벤트 기록과 추적, 무엇이 다를까 도식 — 최근 90일 관리 이벤트는 기본 제공되고, 그 이후 기록은 추적을 만들어야 남습니다
최근 90일 관리 이벤트는 기본 제공되고, 그 이후 기록은 추적을 만들어야 남습니다

 

구분 이벤트 기록 추적(trail)
설정 필요 없음(기본 제공) 직접 만들어야 함
보관 기간 최근 90일 S3에 저장하는 동안 계속
범위 리전 하나씩 따로 조회 여러 리전을 한 버킷에 모을 수 있음
이벤트 종류 관리 이벤트만 관리·데이터·Insights 이벤트 선택
검색 속성 하나와 기간으로만 필터 Athena·CloudTrail Lake 등으로 자유롭게 분석
요금 무료 관리 이벤트 첫 사본 무료, S3 저장 비용 별도

 

그래서 "최근에 무슨 일이 있었는지" 빠르게 확인할 때는 이벤트 기록으로 충분하지만, 감사 대응이나 사고 조사처럼 90일보다 오래된 기록이 필요할 수 있다면 처음부터 추적을 만들어 두어야 합니다. 이벤트 기록은 지나간 기록을 다시 채워 주지 않기 때문에, 문제가 생긴 뒤에 추적을 만들면 그 이전 기록은 90일이 지나는 순간 사라집니다.

 

이벤트 기록으로 원인을 찾는 방법

CloudTrail 콘솔의 이벤트 기록 화면에서는 속성 하나와 기간을 골라 검색합니다. 여러 조건을 한 번에 걸 수는 없으므로, 가장 좁혀지는 조건 하나를 고르는 것이 요령입니다. 자주 쓰는 조회 예시는 다음과 같습니다.

 

  1. 인스턴스를 누가 껐는지 확인하려면 이벤트 이름을 StopInstances로 두고, 결과에서 해당 인스턴스 ID가 포함된 항목을 찾습니다.
  2. 특정 리소스의 변경 이력은 리소스 이름 또는 리소스 유형으로 검색하면 그 리소스에 대한 생성·수정·삭제가 시간순으로 나옵니다.
  3. 콘솔 로그인 기록은 이벤트 이름 ConsoleLogin으로 찾고, 사용자 이름 열과 소스 IP 주소를 함께 확인합니다.
  4. 루트 사용자 활동은 사용자 이름 필터로 root를 찾아 봅니다. 평소 루트를 쓰지 않는 계정이라면 기록이 거의 없어야 정상입니다.
  5. 권한 오류를 추적할 때는 이벤트 상세의 errorCode가 AccessDenied인 항목을 보고, 어떤 작업에서 막혔는지 확인합니다.

 

이벤트 기록은 리전별로 따로 보관되므로, 서울 리전의 인스턴스를 조사한다면 콘솔 오른쪽 위 리전이 서울로 되어 있는지 먼저 확인해야 합니다. 원하는 기록이 보이지 않으면 작업이 일어났을 만한 다른 리전도 차례로 확인해 보세요. 검색 결과는 파일로 내려받을 수 있으며, 한 파일에 최대 20만 건까지 담깁니다.

 

추적 만들기와 요금 계산

추적은 CloudTrail 콘솔에서 추적 이름과 저장할 S3 버킷만 정하면 만들 수 있습니다. 콘솔에서 만든 추적은 모두 다중 리전 추적이라 계정에서 활성화된 모든 리전의 이벤트를 모으므로, 평소 쓰지 않는 리전에서 누군가 리소스를 만들어도 기록이 남습니다. 로그 파일 무결성 검증을 켜 두면 저장된 로그가 나중에 바뀌지 않았는지 확인할 수 있는 다이제스트 파일이 함께 만들어집니다.

 

항목 요금(2026년 9월 기준)
이벤트 기록 조회(최근 90일 관리 이벤트) 무료
관리 이벤트 첫 번째 사본을 S3로 전달 무료
관리 이벤트 추가 사본 10만 건당 2.00달러
데이터 이벤트 10만 건당 0.10달러
Insights(관리 이벤트 분석) 분석한 이벤트 10만 건당 0.35달러

 

예를 들어 추적 하나로 관리 이벤트를 저장하고, 중요한 버킷 하나에만 데이터 이벤트를 켰더니 한 달에 300만 건이 기록되었다고 해 보겠습니다. 관리 이벤트 첫 사본은 무료이고, 데이터 이벤트는 300만 ÷ 10만 × 0.10달러 = 3.00달러입니다. 여기에 로그가 쌓이는 S3 버킷의 저장 요금이 더해집니다. 같은 관리 이벤트를 두 번째 추적으로 또 저장하면 그때부터 추가 사본 요금이 붙으니, 추적을 여러 개 만들 때는 겹치지 않게 나누는 것이 좋습니다.

 

평소에 지켜볼 만한 이벤트

모든 이벤트를 매일 살펴볼 수는 없으니, 보안 사고와 바로 이어지는 몇 가지만 정해 두고 주기적으로 확인하는 것이 현실적입니다. 아래 이벤트는 정상 운영에서도 생길 수 있지만, 예상하지 못한 시각이나 사용자에게서 나타났다면 반드시 확인해야 합니다.

 

이벤트 이름 의미 확인할 점
ConsoleLogin(루트 사용자) 루트 계정으로 콘솔 로그인 평소 루트를 쓰지 않는다면 누가 왜 로그인했는지
CreateAccessKey 새 액세스 키 발급 키를 만든 사용자와 용도가 맞는지
AuthorizeSecurityGroupIngress 보안 그룹 인바운드 규칙 추가 0.0.0.0/0으로 관리용 포트가 열리지 않았는지
PutBucketPolicy S3 버킷 정책 변경 버킷이 외부에 공개되지 않았는지
StopLogging · DeleteTrail 추적 중지 또는 삭제 기록을 끄려는 시도가 아닌지

 

이런 이벤트를 매번 손으로 찾기 번거롭다면 추적을 CloudWatch Logs로도 보내고, 특정 이벤트 이름이 나타나면 알림을 받도록 지표 필터와 알람을 만들어 둘 수 있습니다.

 

한눈에 정리

CloudTrail은 AWS 계정의 API 호출을 기록하는 서비스이며, 최근 90일의 관리 이벤트는 이벤트 기록에서 무료로 조회할 수 있습니다. 이벤트 기록은 리전별로 조건 하나씩만 검색할 수 있고 90일이 지나면 사라지므로, 오래 보관하거나 여러 리전을 모으려면 추적을 만들어 S3에 저장합니다. 관리 이벤트의 첫 사본은 무료이고, 데이터 이벤트는 10만 건당 0.10달러, 추가 사본은 10만 건당 2.00달러가 부과됩니다.

 

자주 묻는 질문

방금 한 작업이 이벤트 기록에 바로 안 보여요.

CloudTrail은 API 호출 후 이벤트를 전달하기까지 몇 분 정도 걸릴 수 있습니다. 잠시 뒤 다시 검색하고, 그래도 없다면 콘솔 오른쪽 위의 리전이 작업한 리전과 같은지 확인하세요.

 

추적 로그가 쌓이는 S3 버킷은 어떻게 관리하나요?

로그 버킷은 퍼블릭 액세스 차단을 켜고, 수명 주기 정책으로 일정 기간이 지난 로그를 저렴한 스토리지 클래스로 옮기거나 삭제하면 비용을 줄일 수 있습니다. 보관 기간은 회사의 감사 기준에 맞춰 정합니다.

 

CloudTrail과 CloudWatch는 무엇이 다른가요?

CloudWatch는 CPU 사용률 같은 성능 지표와 애플리케이션 로그를 다루고, CloudTrail은 누가 어떤 API를 호출했는지를 기록합니다. "서버가 왜 느려졌나"는 CloudWatch, "누가 설정을 바꿨나"는 CloudTrail에서 찾는다고 기억하면 쉽습니다.

 

추적을 꺼 버리면 어떻게 되나요?

추적을 중지하면 그 이후의 이벤트는 S3에 저장되지 않지만, 이벤트 기록의 최근 90일 관리 이벤트는 그대로 조회할 수 있습니다. 추적을 중지한 기록 자체도 이벤트로 남습니다.

 

사고가 생긴 뒤 원인을 찾으려는 순간에 기록이 없으면 추측밖에 할 수 없습니다. CloudTrail은 계정을 만들 때부터 켜져 있지만, 90일 이후를 대비하는 추적은 사람이 직접 만들어야 한다는 점이 가장 자주 놓치는 부분입니다.

 

지금 사용하는 계정이 있다면 CloudTrail 콘솔의 추적 메뉴에 모든 리전에 적용된 추적이 하나 있는지부터 확인해 보세요. 없다면 로그 전용 S3 버킷을 만들어 추적을 연결해 두는 것만으로도, 나중에 생길 질문의 대부분에 답할 준비가 됩니다.

함께 읽으면 좋은 글: AWS 루트 계정 MFA와 IAM 권한 분리 / S3 퍼블릭 액세스 차단 설정

참고 자료: CloudTrail 이벤트 기록 사용, 데이터 이벤트 로깅, 로그 파일 무결성 검증, CloudTrail 요금

※ 본 글은 2026년 9월 기준 AWS CloudTrail 사용 설명서와 요금 페이지를 참고해 작성했으며, 요금과 기능은 변경될 수 있으니 최신 내용은 AWS 공식 문서에서 확인해 주세요.