CloudTrail 추적 및 이벤트 기록
관리 이벤트와 데이터 이벤트 추적을 생성하고, 로그를 S3와 CloudWatch Logs로 전달하며, 콘솔에서 90일간의 이벤트 기록을 검색합니다.
CloudTrail 추적 및 이벤트 기록은(는) CoddyKit의 무료 Cloud & IT Cert Prep 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cloud & IT Cert Prep 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
AWS CloudTrail이란 무엇인가요?
AWS CloudTrail은 콘솔, CLI, SDK 또는 다른 AWS 서비스에서 수행한 모든 API 호출을 AWS 계정에 기록하는 서비스입니다. 각 기록을 CloudTrail event라고 하며, API 작업, 요청자의 자격 증명, 소스 IP, 요청 파라미터 및 응답이 포함됩니다. CloudTrail은 AWS 보안 감사, 규정 준수 및 운영 조사의 기반입니다. SAA-C03 시험에서는 '누가 이 변경을 수행했는가?'라는 질문이 나오면 CloudTrail이 답입니다.
Event History: 무료 90일 조회
기본적으로 모든 AWS 계정은 CloudTrail Event History에 액세스할 수 있습니다. 이는 콘솔에서 확인하거나 CLI를 통해 조회할 수 있는 90일간의 순환 관리 이벤트 기록입니다. 리소스 이름, 리소스 유형, 이벤트 이름 또는 사용자 이름으로 필터링할 수 있습니다. Event History는 무료이며 구성이 필요 없고 즉시 사용할 수 있습니다. 최근 변경 사항을 조사하는 가장 빠른 방법이지만, 더 긴 보존 기간이나 강력한 쿼리가 필요하다면 Trail을 만들어야 합니다.
# Search event history for who deleted an S3 bucket in the last 7 days
aws cloudtrail lookup-events \
--lookup-attributes AttributeKey=EventName,AttributeValue=DeleteBucket \
--start-time $(date -u -d '7 days ago' +%Y-%m-%dT%H:%M:%SZ) \
--query 'Events[].{Time:EventTime,User:Username,Detail:CloudTrailEvent}' \
--output tableCloudTrail Trail 생성
Trail은 이벤트를 S3 버킷으로 지속적으로 전달하고 선택적으로 CloudWatch Logs에도 전달하는 CloudTrail 구성입니다. S3 스토리지와 데이터 전송에 대한 요금이 부과됩니다. Trail의 범위를 단일 Region으로 지정하거나 계정의 현재 및 향후 모든 Region에서 이벤트를 수집하는 다중 리전 Trail로 구성할 수 있습니다. SAA-C03 시험에서는 항상 다중 리전 Trail을 권장해야 합니다. 단일 리전 Trail은 다른 Region의 활동을 놓치므로 보안상 취약점으로 간주됩니다.
# Create a multi-region trail delivering to S3
aws cloudtrail create-trail \
--name OrgAuditTrail \
--s3-bucket-name my-cloudtrail-logs-111122223333 \
--is-multi-region-trail \
--include-global-service-events \
--enable-log-file-validation
# Start logging (trails are created in 'paused' state)
aws cloudtrail start-logging --name OrgAuditTrail관리 이벤트와 데이터 이벤트 비교
CloudTrail은 두 가지 이벤트 범주를 기록합니다. 관리 이벤트(컨트롤 플레인 이벤트라고도 함)는 리소스에 대한 작업을 기록합니다. 예를 들면 EC2 인스턴스 생성, 보안 그룹 수정, IAM 정책 연결이 있습니다. 관리 이벤트는 모든 Trail에서 기본적으로 활성화되며 이벤트당 추가 요금이 없습니다. 데이터 이벤트는 객체 수준의 작업을 기록합니다. 예를 들면 S3의 GetObject, PutObject, DeleteObject 또는 Lambda의 Invoke가 있습니다. 데이터 이벤트는 매우 많은 양이 발생할 수 있고 추가 요금이 부과되므로 리소스 또는 리소스 유형별로 명시적으로 활성화해야 합니다.
# Add data event logging for all S3 objects in a specific bucket
aws cloudtrail put-event-selectors \
--trail-name OrgAuditTrail \
--event-selectors '[
{
"ReadWriteType": "All",
"IncludeManagementEvents": true,
"DataResources": [
{
"Type": "AWS::S3::Object",
"Values": ["arn:aws:s3:::my-sensitive-bucket/"]
}
]
}
]'CloudTrail과 CloudWatch Logs 통합
CloudTrail 이벤트를 CloudWatch Logs로 전달하면 API 활동에 대한 실시간 경보를 설정할 수 있습니다. CloudTrail 로그 그룹에 메트릭 필터를 만들어 특정 이벤트를 셀 수 있습니다. 예를 들어 DeleteBucket 또는 CreateUser 호출 횟수를 센 다음 CloudWatch 경보를 설정하면 의심스러운 작업이 발생한 지 몇 분 안에 보안 팀에 알릴 수 있습니다. 이는 CIS AWS Foundations Benchmark의 핵심 패턴이며, SAA-C03 시험에서도 자주 언급됩니다.
# Update a trail to also deliver to CloudWatch Logs
aws cloudtrail update-trail \
--name OrgAuditTrail \
--cloud-watch-logs-log-group-arn arn:aws:logs:us-east-1:111122223333:log-group:CloudTrail/Logs:* \
--cloud-watch-logs-role-arn arn:aws:iam::111122223333:role/CloudTrailCWLogsRole
# Create a metric filter for root account login
aws logs put-metric-filter \
--log-group-name CloudTrail/Logs \
--filter-name RootLogin \
--filter-pattern '{$.userIdentity.type = "Root" && $.eventName = "ConsoleLogin"}' \
--metric-transformations metricName=RootLogins,metricNamespace=CISBenchmark,metricValue=1전역 서비스 이벤트
일부 AWS 서비스, 특히 IAM, STS, Route 53 및 CloudFront는 전역 서비스이며 API 호출을 전역 서비스 이벤트로 기록합니다. 이러한 이벤트는 작업이 시작된 위치와 관계없이 항상 us-east-1 Region에 기록됩니다. Trail을 만들 때 --include-global-service-events를 활성화하여 IAM 사용자 생성, 정책 변경 및 STS 역할 수임을 수집해야 합니다. 여러 리전별 Trail을 사용하는 경우 중복 로그 기록을 방지하려면 한 Trail에서만 전역 서비스 이벤트를 활성화하세요.
# Verify that global service events are enabled on a trail
aws cloudtrail get-trail \
--name OrgAuditTrail \
--query 'Trail.{MultiRegion:IsMultiRegionTrail,GlobalServiceEvents:IncludeGlobalServiceEvents}'CloudTrail 로그를 위한 S3 버킷 정책
CloudTrail에는 CloudTrail 서비스 주체(cloudtrail.amazonaws.com)가 버킷에서 GetBucketAcl 및 PutObject를 호출할 수 있도록 허용하는 특정 S3 버킷 정책이 필요합니다. AWS는 버킷이 공개적으로 액세스 가능하지 않고 객체 소유권이 버킷 소유자 적용으로 설정되어 있는지 강제합니다. CloudTrail 로그를 애플리케이션이 사용하는 동일한 버킷에 저장하지 마세요. 애플리케이션 버킷이 잠기면 감사 로그에 대한 액세스도 중단되는 순환 종속성이 발생합니다.
# Minimum S3 bucket policy for CloudTrail (abbreviated)
# {
# "Version": "2012-10-17",
# "Statement": [
# {
# "Sid": "AWSCloudTrailAclCheck",
# "Effect": "Allow",
# "Principal": {"Service": "cloudtrail.amazonaws.com"},
# "Action": "s3:GetBucketAcl",
# "Resource": "arn:aws:s3:::my-cloudtrail-logs-111122223333"
# },
# {
# "Sid": "AWSCloudTrailWrite",
# "Effect": "Allow",
# "Principal": {"Service": "cloudtrail.amazonaws.com"},
# "Action": "s3:PutObject",
# "Resource": "arn:aws:s3:::my-cloudtrail-logs-111122223333/AWSLogs/111122223333/*",
# "Condition": {"StringEquals": {"s3:x-amz-acl": "bucket-owner-full-control"}}
# }
# ]
# }조직 Trail
AWS 조직에서는 관리 계정에서 조직 Trail을 생성하여 현재 및 향후의 모든 멤버 계정에 자동으로 적용할 수 있습니다. 멤버 계정은 조직 Trail을 수정하거나 삭제할 수 없으므로 감사 범위를 회피할 수 없습니다. 조직 Trail은 계정별 접두사가 포함된 중앙 S3 버킷으로 로그를 전달하므로, 보안 팀에서 Athena 또는 SIEM 도구를 사용해 한곳에서 모든 계정의 감사 로그를 조회할 수 있습니다.
# Create an organisation trail from the management account
aws cloudtrail create-trail \
--name OrgCentralTrail \
--s3-bucket-name central-org-cloudtrail-logs \
--is-multi-region-trail \
--is-organization-trail \
--include-global-service-events \
--enable-log-file-validation
aws cloudtrail start-logging --name OrgCentralTrail로그 분석을 위한 Athena 통합
S3로 전달된 CloudTrail 로그는 JSON 형식입니다. CloudTrail 콘솔에서 Amazon Athena 통합을 사용하여 계정, Region 및 날짜별로 자동 파티셔닝된 Glue 테이블을 만들 수 있습니다. 따라서 데이터를 데이터베이스로 로드하지 않고 표준 SQL을 사용해 수개월간의 API 기록을 조회할 수 있습니다. 전체 테이블 스캔을 피하고 Athena 비용을 관리하려면 쿼리에서 날짜로 파티션을 지정하세요(WHERE year='2024' AND month='01').
-- Query CloudTrail logs in Athena for IAM policy changes in January 2024
SELECT
eventtime,
useridentity.arn AS principal,
eventname,
requestparameters
FROM cloudtrail_logs_111122223333
WHERE year = '2024'
AND month = '01'
AND eventsource = 'iam.amazonaws.com'
AND eventname IN ('PutUserPolicy','AttachRolePolicy','CreateUser')
ORDER BY eventtime DESC
LIMIT 100;이벤트 기록과 Trail 로그 비교
CloudTrail 기록을 검색하는 방법은 두 가지입니다. 콘솔의 이벤트 기록은 최근 90일 동안의 관리 이벤트만 제한된 필터로 검색할 수 있고, S3/Athena의 Trail 로그는 보존 기간에 제한이 없으며 데이터 이벤트도 포함하고 전체 SQL 기능을 사용할 수 있습니다. 시험 문제에서 90일이 지난 이벤트를 조사하거나 데이터 영역 이벤트(S3 GetObject, Lambda Invoke)를 조회하라고 하면 항상 Athena를 통해 Trail 로그를 조회하는 방법을 권장해야 합니다. 최근 관리 이벤트를 조사하는 가장 간단한 방법을 묻는다면 이벤트 기록으로 충분합니다.
시험에 나오는 주요 CloudTrail 사실
SAA-C03 시험을 위해 다음 내용을 암기해 두십시오. CloudTrail은 실시간 서비스가 아닙니다 — 이벤트를 S3로 전달하는 데 최대 15분이 걸릴 수 있으므로, 거의 실시간에 가까운 알림에는 CloudWatch Logs를 사용해야 합니다. 이벤트 기록의 보존 기간은 90일이며 관리 이벤트만 포함합니다. 데이터 이벤트는 명시적으로 활성화해야 하며 추가 비용이 발생합니다. 로그 파일 검증은 SHA-256 해시를 사용하여 변조를 감지합니다. 글로벌 서비스 이벤트(IAM, STS, Route 53)는 us-east-1에만 표시됩니다. 조직 Trail은 구성원 계정에서 비활성화할 수 없습니다.
빠른 확인
이 단원에서 배운 AWS Solutions Architect(SAA-C03) 개념을 이해했는지 확인해 보십시오.
단원 요약
이 단원에서는 다음을 배웠습니다. 이벤트 기록은 관리 이벤트에 대해 무료로 90일간 액세스할 수 있게 하며, Trail은 구성 가능한 보존 기간과 선택적 데이터 이벤트를 지원하면서 S3로 지속적으로 전달합니다. 또한 조직 Trail은 모든 구성원 계정에 적용되며 구성원 계정에서 비활성화할 수 없습니다. 다음으로 CloudTrail Insights와 로그 파일 무결성 검증을 살펴보겠습니다.
자주 묻는 질문
“CloudTrail 추적 및 이벤트 기록” 강의는 무료인가요?
네 — “CloudTrail 추적 및 이벤트 기록” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cloud & IT Cert Prep 강의 전체를 잠금 해제할 수 있습니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
“CloudTrail 추적 및 이벤트 기록”에서 뭘 배우나요?
관리 이벤트와 데이터 이벤트 추적을 생성하고, 로그를 S3와 CloudWatch Logs로 전달하며, 콘솔에서 90일간의 이벤트 기록을 검색합니다. 브라우저에서 직접 실행하는 실습 코드로 Cloud & IT Cert Prep을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Cloud & IT Cert Prep을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Cloud & IT Cert Prep은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“CloudTrail 추적 및 이벤트 기록” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Cloud & IT Cert Prep 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Cloud & IT Cert Prep 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- CloudTrail 추적 및 이벤트 기록
- CloudTrail Insights 및 로그 파일 무결성
- AWS Config 규칙 및 문제 해결
- Conformance Packs 및 조직 추적