0Pricing
AWS Security Academy · 강의

CloudTrail 데이터 위에 테이블 구축

감사 이벤트를 직접 조회할 수 있도록 스키마를 정의해 보세요.

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

테이블이 필요한 이유

Athena는 읽는 방법을 지정하기 전에는 원시 S3 파일을 쿼리할 수 없습니다. 테이블은 S3 버킷의 CloudTrail JSON 파일을 유형이 지정된 이름 있는 열에 매핑합니다. 테이블이 만들어지면 CloudTrail 이벤트의 풍부한 구조를 일반 SQL로 참조할 수 있습니다.

CloudTrail 로그 구조

CloudTrail은 JSON 형식으로 이벤트를 전달하며, 각 레코드는 userIdentity, eventName, sourceIPAddress, requestParameters와 같은 중첩 필드를 포함한 하나의 API 호출을 설명합니다. 테이블 스키마는 객체에 해당하는 구조체 유형을 포함하여 이러한 중첩 구조를 그대로 반영해야 하므로, userIdentity.arn과 같은 필드에 쿼리로 접근할 수 있습니다.

AWS 제공 DDL 사용

스키마를 직접 작성할 필요는 없습니다. AWS는 CloudTrail용 표준 CREATE TABLE 문을 제공하며, CloudTrail 콘솔과 Athena가 이를 대신 생성할 수도 있습니다. 제공된 DDL을 사용하면 깊이 중첩된 필드를 포함한 모든 필드가 올바르게 매핑되므로 쿼리에서 데이터를 누락하지 않습니다.

SerDe

SerDe(직렬화기/역직렬화기)는 Athena에 각 file을 파싱하는 방법을 알려 줍니다. CloudTrail 테이블은 CloudTrail JSON 레이아웃에 맞게 설계된 SerDe를 사용하며, 이 SerDe는 records 배열과 중첩 구조를 이해합니다. 올바른 SerDe를 선택하는 것이 필수적입니다. 잘못 선택하면 파싱 오류가 발생하거나 열이 null이 됩니다.

ROW FORMAT SERDE
  'com.amazon.emr.hive.serde.CloudTrailSerde'
STORED AS INPUTFORMAT
  'com.amazon.emr.cloudtrail.CloudTrailInputFormat'

S3 위치 지정

테이블의 LOCATION 절은 CloudTrail이 로그를 저장하는 S3 접두사를 가리키며, 일반적으로 계정 ID와 리전을 포함하는 경로입니다. 이 접두사를 올바르게 지정하는 것이 중요합니다. 범위가 너무 넓으면 관련 없는 데이터를 스캔하고, 너무 좁으면 조회하려던 이벤트를 놓치게 됩니다.

중첩 필드 조회

테이블을 만들고 나면 점 표기법을 사용해 중첩 필드를 조회할 수 있습니다. 예를 들어 userIdentity.arn 또는 requestParameters.bucketName과 같이 지정합니다. SQL 함수는 배열과 JSON 문자열을 풀어내는 데 도움을 줍니다. 바로 이 부분에서 Athena가 조사에 강점을 발휘합니다. 모든 API 호출의 이벤트 이름, 주체, 매개변수를 정밀하게 필터링할 수 있습니다.

대안으로 사용하는 Glue 크롤러

수동으로 DDL을 작성하는 대신 AWS Glue 크롤러가 S3 데이터를 스캔하고 스키마를 추론하여 데이터 카탈로그에 자동으로 저장할 수 있습니다. CloudTrail처럼 잘 알려진 형식에는 제공된 DDL이 대체로 더 깔끔하지만, 직접 스키마를 작성하고 싶지 않은 사용자 지정 또는 계속 변경되는 로그 형식에서는 크롤러가 유용합니다.

JSON 특성 처리

CloudTrail JSON에는 그 자체가 JSON 문자열인 필드가 있습니다. 서비스에 따라 값이 달라지는 requestParameters가 그 예입니다. 이러한 필드는 대개 조회 시점에 JSON 함수를 사용해 파싱합니다. 일부 열은 미리 구조화된 열이 아니라 파싱해야 하는 문자열이라는 점을 알고 있으면, 어떤 필드가 일반적인 열처럼 동작하지 않을 때 혼란을 피할 수 있습니다.

조직 추적 테이블

조직 추적에서는 모든 계정의 로그가 계정별 접두사가 포함된 하나의 버킷 아래에 저장됩니다. 전체 접두사를 대상으로 하나의 테이블을 만들어 모든 계정을 한 번에 조회하거나, 격리를 위해 계정별 테이블을 만들 수 있습니다. 통합 테이블을 사용하면 한 번의 조회로 조직 전체의 위협을 효과적으로 추적할 수 있습니다.

테이블 확인

테이블을 만든 후 작은 LIMIT과 함께 간단한 SELECT를 실행하여 행이 반환되고 열이 예상대로 채워지는지 확인합니다. 열이 null이면 SerDe, 위치 또는 스키마가 잘못되었을 가능성이 큽니다. 이 기본 확인을 수행하면 제대로 작동하지 않는 테이블을 기반으로 조사를 진행하는 일을 막을 수 있습니다.

테이블에서 조사로

CloudTrail 테이블이 올바르게 구성되면 기록된 전체 이력을 아우르는 조회 가능한 감사 추적 정보가 생깁니다. 모든 콘솔 로그인, API 호출, 오류가 이제 필터링하고 집계할 수 있는 하나의 행이 됩니다. 이 테이블은 다음에 작성할 사고 조사 조회의 기반입니다.

빠른 확인

테이블 작성 지식을 테스트해 보세요.

복습

Athena에서 CloudTrail을 조회하려면 JSON file을 열에 매핑하는 table을 만들고, AWS에서 제공하는 CREATE TABLE DDL, 올바른 SerDe, 적절한 S3 LOCATION을 사용해야 합니다. 중첩 필드는 점 표기법으로 조회하고, JSON 문자열 열은 조회 시점에 파싱하며, 작은 SELECT로 확인합니다. 조직 추적은 조직 전체의 위협 추적을 위한 하나의 테이블로 구성할 수 있습니다.

자주 묻는 질문

“CloudTrail 데이터 위에 테이블 구축” 강의는 무료인가요?

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

“CloudTrail 데이터 위에 테이블 구축”에서 뭘 배우나요?

감사 이벤트를 직접 조회할 수 있도록 스키마를 정의해 보세요. 브라우저에서 직접 실행하는 실습 코드로 AWS Security Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

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

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

“CloudTrail 데이터 위에 테이블 구축” 강의는 얼마나 걸리나요?

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

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

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

이 강의의 모든 강의

  1. Athena로 S3 로그 조회
  2. CloudTrail 데이터 위에 테이블 구축
  3. SQL 쿼리로 사고 조사
  4. 속도와 비용을 고려한 로그 파티셔닝
← AWS Security Academy(으)로 돌아가기