728x90
반응형
# Athena에서 CloudTrail 데이터 분석하기
1. CloudTrail의 추적을 생성하면 자동으로 S3에 해당 로그가 저장 되도록 구성한다.
2. 아래와 같이 Create trail 버튼을 클릭한다.
3. 추적 속성 선택정보 입력
4. S3에 쌓인 로그 파일을 Athena로 분석하기
클라우드 트레일에서 S3로 쌓운 데이터를 Athena에서 분석하자
일단 데이터가 어떤식으로 쌓이고 있는지 확인하면 아래와 같다.
클라우드 트레일에서 아래와 같이 전체 리전에 데이터를 쌓고 있다. 당연한 이야기지만 서울 리전에 데이터가 가장 많이 쌓일 것이다.
5. AWS 공식 문서에 나와 있는것처럼 아래의 내용을 AWS Athena에 입력하여 테이블을 생성하자 변경 되는 내용은 아래의 LOCATION일 것이다.
CREATE EXTERNAL TABLE cloudtrail_logs (
eventversion STRING,
useridentity STRUCT<
type:STRING,
principalid:STRING,
arn:STRING,
accountid:STRING,
invokedby:STRING,
accesskeyid:STRING,
userName:STRING,
sessioncontext:STRUCT<
attributes:STRUCT<
mfaauthenticated:STRING,
creationdate:STRING>,
sessionissuer:STRUCT<
type:STRING,
principalId:STRING,
arn:STRING,
accountId:STRING,
userName:STRING>>>,
eventtime STRING,
eventsource STRING,
eventname STRING,
awsregion STRING,
sourceipaddress STRING,
useragent STRING,
errorcode STRING,
errormessage STRING,
requestparameters STRING,
responseelements STRING,
additionaleventdata STRING,
requestid STRING,
eventid STRING,
resources ARRAY<STRUCT<
ARN:STRING,
accountId:STRING,
type:STRING>>,
eventtype STRING,
apiversion STRING,
readonly STRING,
recipientaccountid STRING,
serviceeventdetails STRING,
sharedeventid STRING
)
ROW FORMAT SERDE 'com.amazon.emr.hive.serde.CloudTrailSerde'
STORED AS INPUTFORMAT 'com.amazon.emr.cloudtrail.CloudTrailInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION 's3://auto-tagging-for-resources/AWSLogs/CloudTrail/ap-northeast-2/';
위의 코드를 유심히 보면 해당 버킷의 객체를 테이블의 원본 데이터로 지정 할 수 있다. 이는 매우 다양하게 데이터를 분석 가능하다는 의미이다. 결국 S3와 궁합이 잘 맞는다고 볼 수 있다.
- 공식문서는 아래의 링크를 통해 확인이 가능하다.
https://docs.aws.amazon.com/ko_kr/athena/latest/ug/cloudtrail-logs.html
6. AWS Athena에서 쿼리를 실행하자.
일단 쿼리가 저장될 S3 버킷을 지정한다.
일단 DataBase를 생성한다.
- 그 다음으로 위에서 작성한 쿼리를 실행한다.
CREATE DATABASE zzangguDB;
- 아래와 같이 테이블이 생성된 것을 확인 할 수 있다.
- 쿼리 결과는 아래와 같다.
- 쿼리문은 아래와 같다.
select * from "zzanggudb"."cloudtrail_logs"
7. 마지막으로, 조회 까지 되는건 알겠는데 저 useridentity 컬럼의 잔뜩 들어가있는 데이터를 어떻게 끄집어 내는가가 관건인거 같다.
- 끝 -
728x90
반응형
'⭐ AWS > Athena' 카테고리의 다른 글
Athena Case Statement (0) | 2023.07.20 |
---|---|
ALB Access 로그를 S3에 저장 후 Athena를 통한 분석 (0) | 2022.07.22 |
Athena와 람다를 활용한 데이터 분석 (0) | 2022.01.18 |
Athena 쿼리 예약 (0) | 2022.01.18 |
AWS Athena에서 추가로 CSV 컬럼 추가하기 (0) | 2022.01.05 |