Search

CloudTrail

CloudTrail
관리형 이벤트 추적 / 감사 도구
AWS 계정에 대한 이벤트 추적 / 감사
AWS 리소스 API에 대한 이벤트 추적 / 기록
단일 리전 추적 / 모든 리전 추적
AWS Athena 를 통한 로그 분석 지원
기본적으로 확성화는 되어있지만 최대 90일밖에 저장하지 않음
AWS Console, CLI, SDK 및 API에서 수행한 작업을 CloudTrail의 이벤트(event)라는 것으로 기록된다.
각 이벤트는 거의 15분 안에 CloudTrail에 기록된다.
로그는 90일간 저장된다.

CloudTrail로 얻을 수 있는 Log 종류

1.
Management events (관리 이벤트) ...유저의 로그인, EC2의 작성 등
EC2 인스턴스를 작성 및 조작
S3 버킷 작성
IAM 리소스의 작성과 관리
Routing Table 규칙 작성
2.
Data events (데이터 이벤트) ...S3 Object에 관한 조작, Lambda 함수의 실행 등
S3 object-level의 API 활동
S3 object를 지우거나 가져오는 명령어 (DeleteOject, GetObject, PutObject)
Lambda 함수의 실행 (InvokeFunction API)
Amazo DynamoDB table에 관한 API 실행
3.
Insight events (인사이트 이벤트) ... 평소와 다른 조작
관리 이벤트(Management events)의 분석
비정상적인 활동을 감지하고 검출
CloudTrail의 로그는Trail(트레일)에 등록함으로써 S3 버킷에 저장할 수 있다.
S3 버킷에 저장하면 90일이 지나도 로그를 보관할 수 있다.

Event History

기록된 로그에는 다음과 같은 정보를 포함한다.
각 이벤트는 날짜나 누가 API를 요청했는지 등에 따라서 필터링 가능하다.
이벤트 정보(Event Information)
EventName : 수행된 AWS 작업의 이름.
EventTime : 작업이 수행된 시간과 날짜.
EventSource : 작업을 실행한 AWS 서비스의 이름.
기타 등등
AWS 계정 (AWS Account)
Username : 작업을 수행한 IAM 사용자 또는 Role의 이름 또는
클라이언트 정보 (Client)
UserAgent : API 호출한 클라이언트 애플리케이션의 정보.
SourceIPAddress : API 호출한 클라이언트의 IP 주소.
리소스 정보(Resource Information)
ResourceType : 작업의 대상이 되는 AWS 리소스의 유형.
ResourceName : 작업이 수행된 AWS 리소스의 이름 또는 식별자.
요청 및 응답 정보(Request and Response Information)
RequestMethod : API 호출에 사용된 HTTP 요청 메서드(GET, POST 등).
기타 등등

분석

CloudTrail 로그에 대한 Athena 활용 분석 혹은 CloudTrail Lake를 사용할 수 있음

CloudTrail Insights

CloudTrail에서 기록한 로그를 AWS측에서 기계학습을 시켜서, 평소와 다른 Unusual API Activities(비정상인 API 활동)를 탐지하여 검출해주는 기능이다.
예를 들어, CloudTrail Insights는 나의 계정에서 평소와 달리 많은 EC2 인스턴스가 기동 된 것을 탐지해 준다.

Trails (추적) S3 버킷에 저장

CloudTrail의 로그는 "Trails" 등록함으로써 S3 버킷에 저장할 수 있다.
S3 버킷에 로그를 저장하면 90일을 초과하여 CloudTrail 로그를 보관할 수 있다.
아래는 Trails 등록 화면이다.
S3 버킷을 선택한다.
Management events, Insights event 및 Data event에 대해서는 기록할지 여부를 선택한다.
S3에 저장되는 로그의 내용은 JSON 형식으로 출력되며, gz 형식으로 압축된다.
저장할 때는 Amazon KMS(Key Management Service)를 이용해 암호화하는 것도 가능하다.

CloudWatch Logs 등록

CloudTrail에서 CloudWatch Logs로 로그 송신을 활성화하면 CloudTrail 이벤트 로그를 CloudWatch Logs에 보낼 수 있다.
이렇게 하면 AWS 리소스에서 발생한 API 호출을 실시간으로 모니터링하고, CloudWatch에서 로그 분석이나 알림 설정을 통해 더 효율적으로 관리할 수 있다.