0Pricing
AWS Solutions Architect · 강의

CloudTrail Insights 및 로그 파일 무결성

CloudTrail Insights를 활성화해 비정상적인 API 활동을 탐지하고, 다이제스트 파일로 포렌식 분석을 위한 로그 파일 무결성을 검증합니다.

CloudTrail Insights 및 로그 파일 무결성은(는) CoddyKit의 무료 AWS Solutions Architect 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AWS Solutions Architect 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AWS Solutions Architect 강의에는 총 4개의 강의가 포함되어 있습니다.

CloudTrail Insights란 무엇입니까?

CloudTrail Insights는 기계 학습을 사용하여 AWS 계정의 비정상적인 API 활동을 자동으로 감지하는 선택적 기능입니다. 각 API의 정상적인 API 호출률과 쓰기 관리 이벤트 양을 기준으로 설정한 다음, 활동이 해당 기준에서 크게 벗어나면 알려 줍니다. Insights 이벤트는 Trail 로그와 동일한 S3 버킷으로 전달되며, 자동 대응을 위한 EventBridge 규칙을 트리거할 수도 있습니다.

CloudTrail Insights 활성화

CloudTrail Insights는 Trail별로 활성화합니다. API 호출률 이상(초당 쓰기 관리 이벤트 수의 비정상적인 증가) 또는 API 오류율 이상(액세스 거부 또는 조절 오류의 비정상적인 증가)을 감지하도록 선택할 수 있습니다. Insights를 사용하려면 관리 이벤트가 활성화된 활성 Trail이 필요합니다. AWS는 일반적인 Trail 이벤트 요금과 별도로 Insights 이벤트에 요금을 부과합니다. Insights는 이상을 감지하기 전에 초기 기준을 설정하는 데 24~36시간이 걸립니다.

# Enable CloudTrail Insights for API call rate and error rate anomalies
aws cloudtrail put-insight-selectors \
  --trail-name OrgAuditTrail \
  --insight-selectors \
    InsightType=ApiCallRateInsight \
    InsightType=ApiErrorRateInsight

# Verify insights configuration
aws cloudtrail get-insight-selectors \
  --trail-name OrgAuditTrail

Insights 이벤트 이해하기

Insights 이벤트에는 시작 이벤트와 종료 이벤트가 있습니다. 시작 이벤트는 이상 현상이 시작될 때 발생합니다. 예를 들어 TerminateInstances 호출이 비정상적으로 급증하는 경우입니다. 종료 이벤트는 API 호출률이 정상으로 돌아올 때 발생합니다. 각 Insights 이벤트에는 영향을 받은 API, 정상 기준률, 관찰된 최고 호출률, 지속 시간이 포함됩니다. 이를 통해 이상 현상이 지속적인 공격이었는지 짧은 시간 동안 발생한 급증이었는지 파악할 수 있습니다.

# Search for Insights events in the last 30 days
aws cloudtrail lookup-events \
  --lookup-attributes AttributeKey=EventCategory,AttributeValue=insight \
  --start-time $(date -u -d '30 days ago' +%Y-%m-%dT%H:%M:%SZ) \
  --query 'Events[].{Time:EventTime,Name:EventName,Source:EventSource}' \
  --output table

실제 환경에서 Insights가 감지하는 항목

CloudTrail Insights가 표시하는 일반적인 이상 현상은 다음과 같습니다. 공격자가 탈취한 키를 사용하여 모든 S3 버킷을 빠른 속도로 열거하는 자격 증명 탈취, 반복문으로 EC2 API를 수천 번 호출하는 잘못 구성된 배포 스크립트, 평소보다 빠르게 리소스를 삭제하는 내부자 위협, Lambda 함수가 갑자기 비정상적인 STS 호출을 수행하는 공급망 공격입니다. Insights를 사용하면 CloudTrail 로그를 직접 검토하는 것보다 더 빠르게 감지할 수 있습니다.

자동 대응을 위한 EventBridge 통합

CloudTrail Insights 이벤트는 Amazon EventBridge로 자동 전달되므로 자동 대응을 구현할 수 있습니다. Insights 이벤트가 감지되면 Lambda 함수를 실행하는 EventBridge 규칙을 만들 수 있습니다. 예를 들어 Slack 메시지를 보내거나 Jira 티켓을 생성하거나, 이상 현상이 알려진 공격 패턴과 일치할 때 IAM 사용자의 액세스 키를 자동으로 폐기할 수도 있습니다. 이를 통해 Insights 결과를 중심으로 실시간 보안 자동화 파이프라인을 구축할 수 있습니다.

# EventBridge rule to trigger Lambda when a CloudTrail Insights event fires
aws events put-rule \
  --name CloudTrailInsightsAlert \
  --event-pattern '{
    "source": ["aws.cloudtrail"],
    "detail-type": ["AWS Insight via CloudTrail"]
  }' \
  --state ENABLED

# Add Lambda as the target
aws events put-targets \
  --rule CloudTrailInsightsAlert \
  --targets Id=LambdaTarget,Arn=arn:aws:lambda:us-east-1:111122223333:function:SecurityResponder

로그 파일 무결성 검증

로그 파일 무결성 검증은 CloudTrail 로그 파일이 S3로 전달된 후 수정, 삭제 또는 위조되지 않았는지 확인합니다. 이 기능을 활성화하면(--enable-log-file-validation) CloudTrail은 매시간 해당 시간에 전달된 모든 로그 파일의 SHA-256 해시와 이전 다이제스트의 해시가 포함된 다이제스트 파일을 생성합니다. 다이제스트 파일 자체는 CloudTrail의 프라이빗 키로 서명됩니다. AWS CLI의 validate-logs 명령을 사용하여 로그를 검증할 수 있습니다.

# Enable log file validation when creating or updating a trail
aws cloudtrail update-trail \
  --name OrgAuditTrail \
  --enable-log-file-validation

# Validate log file integrity for a specific time range
aws cloudtrail validate-logs \
  --trail-arn arn:aws:cloudtrail:us-east-1:111122223333:trail/OrgAuditTrail \
  --start-time 2024-01-01T00:00:00Z \
  --end-time 2024-01-02T00:00:00Z \
  --verbose

다이제스트 파일 작동 방식

CloudTrail은 매시간 로그 파일과 별도의 경로에 있는 S3 위치(s3://bucket/CloudTrail-Digest/...)로 다이제스트 파일을 전달합니다. 다이제스트에는 지난 한 시간 동안 전달된 각 로그 파일의 SHA-256 해시, 각 파일의 S3 URI, 그리고 이전 다이제스트의 해시가 포함되어 해시 체인을 구성합니다. 공격자가 전달된 후 로그 파일을 수정하면 다이제스트의 해시와 더 이상 일치하지 않으므로 검증이 실패하고 변조된 파일이 무엇인지 보고합니다.

# View the structure of a CloudTrail digest file (JSON)
# {
#   "digestStartTime": "2024-01-01T00:00:00Z",
#   "digestEndTime": "2024-01-01T01:00:00Z",
#   "logFiles": [
#     {
#       "s3Bucket": "my-cloudtrail-logs",
#       "s3Object": "AWSLogs/.../CloudTrail/.../2024/01/01/file.json.gz",
#       "hashValue": "sha256:abc123...",
#       "hashAlgorithm": "SHA-256"
#     }
#   ],
#   "previousDigestHashValue": "sha256:xyz789..."
# }

변조로부터 감사 추적 보호하기

로그 파일 무결성은 다이제스트 파일과 로그 파일 자체가 보호될 때만 유용합니다. 권장 사항은 다음과 같습니다. CloudTrail 버킷에서 S3 MFA Delete를 활성화하여 MFA 없이는 파일을 삭제할 수 없게 하고, 어떤 주체도 객체를 삭제하지 못하도록 삭제 거부 버킷 정책을 적용하며, 변경할 수 없는 로그 보존을 위해 S3 Object Lock(Compliance 모드)을 활성화하십시오. 또한 구성원 계정에서 logging을 비활성화할 수 없도록 조직 Trail을 사용하십시오. 이러한 제어를 함께 적용하면 내부자가 감사 증거를 삭제하기가 거의 불가능해집니다.

# Deny-delete policy on the CloudTrail S3 bucket
# {
#   "Sid": "DenyDeleteCloudTrailLogs",
#   "Effect": "Deny",
#   "Principal": {"AWS": "*"},
#   "Action": [
#     "s3:DeleteObject",
#     "s3:DeleteObjectVersion"
#   ],
#   "Resource": "arn:aws:s3:::my-cloudtrail-logs-111122223333/*"
# }

Insights와 GuardDuty: 상호 보완적인 서비스

CloudTrail Insights와 Amazon GuardDuty는 중복되는 서비스가 아니라 서로 보완하는 서비스입니다. Insights는 특정 관리 API 호출이 갑자기 증가하는 API 호출량 이상에 집중합니다. GuardDuty는 CloudTrail 이벤트, VPC Flow Logs, DNS 로그를 비롯한 더 광범위한 데이터 원본을 분석하여 손상된 자격 증명, 암호화폐 채굴, 데이터 유출, 알려진 악성 IP와 같은 위협 패턴을 감지합니다. 심층 방어를 위해 두 서비스 모두 활성화하십시오. Insights는 호출량 기반 이상을, GuardDuty는 위협 인텔리전스 기반 탐지를 담당합니다.

CloudTrail 콘솔에서 Insights 보기

CloudTrail 콘솔의 Insights 탭에는 감지된 모든 이상 현상과 시작 및 종료 시간, API 이름, 이상 현상 동안의 기준 호출률과 관찰된 호출률을 비교하는 그래프가 표시됩니다. Insights 이벤트를 클릭하면 같은 시간 범위의 관련 관리 이벤트가 이벤트 기록에 바로 연결됩니다. 이를 통해 '이상 현상이 있었다'는 사실과 '이를 발생시킨 구체적인 API 호출은 다음과 같다'는 내용을 서로 연관 지을 수 있습니다. 이러한 상세 분석 기능 덕분에 Insights를 실제 대응에 활용할 수 있습니다.

규정 준수 사용 사례

로그 파일 무결성 검증은 여러 규정 준수 프레임워크에서 요구됩니다. PCI-DSS는 감사 로그가 변경되지 않았다는 증거를 요구하고, HIPAA는 의료 데이터에 대해 변조 감지 감사 제어를 의무화하며, SOC 2는 보안 로그에 대한 무결성 제어를 요구합니다. CloudTrail 로그 파일 검증, S3 Object Lock, 조직 Trail을 함께 사용하면 이러한 요구 사항을 충족할 수 있으며 AWS 규정 준수 문서에서도 일반적으로 이 조합을 제시합니다. 시험 문제에서 '로그가 변조되지 않았음을 증명하라'고 하면 로그 파일 무결성 검증이 정답입니다.

빠른 확인

이 단원에서 배운 AWS Solutions Architect(SAA-C03) 개념을 이해했는지 확인해 보십시오.

단원 요약

이 단원에서는 다음을 배웠습니다. CloudTrail Insights는 시작 및 종료 이벤트와 함께 비정상적인 API 호출률 및 오류율 이상을 감지하기 위해 ML을 사용합니다. 로그 파일 무결성 검증은 해시 체인의 SHA-256 다이제스트 파일을 사용하여 로그 파일의 변조나 삭제를 감지합니다. 또한 삭제 거부 정책과 결합한 S3 Object Lock은 감사 추적의 무결성을 보호합니다. 다음으로 AWS Config Rules와 자동 수정 기능을 살펴보겠습니다.

자주 묻는 질문

“CloudTrail Insights 및 로그 파일 무결성” 강의는 무료인가요?

네 — “CloudTrail Insights 및 로그 파일 무결성” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AWS Solutions Architect 강의 전체를 잠금 해제할 수 있습니다. AWS Solutions Architect 강의에는 총 4개의 강의가 포함되어 있습니다.

“CloudTrail Insights 및 로그 파일 무결성”에서 뭘 배우나요?

CloudTrail Insights를 활성화해 비정상적인 API 활동을 탐지하고, 다이제스트 파일로 포렌식 분석을 위한 로그 파일 무결성을 검증합니다. 브라우저에서 직접 실행하는 실습 코드로 AWS Solutions Architect을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

AWS Solutions Architect을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 AWS Solutions Architect은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“CloudTrail Insights 및 로그 파일 무결성” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 AWS Solutions Architect 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 AWS Solutions Architect 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. CloudTrail 추적 및 이벤트 기록
  2. CloudTrail Insights 및 로그 파일 무결성
  3. AWS Config 규칙 및 문제 해결
  4. Conformance Packs 및 조직 추적
← AWS Solutions Architect(으)로 돌아가기