[typescript] 타입스크립트와 AWS CloudTrail 로그 관리하기

이번에는 TypeScript로 AWS CloudTrail 로그를 관리하는 방법에 대해 알아보겠습니다.

AWS CloudTrail이란?

AWS CloudTrail은 AWS 계정에 대한 활동을 기록하고 모니터링할 수 있는 서비스입니다. 이 서비스를 사용하면 API 호출, 콘솔 로그인, 계정 활동 등이 기록되어 보관되므로 보안 및 규정 준수에 도움이 됩니다.

TypeScript로 AWS CloudTrail 로그 조회하기

먼저 TypeScript로 AWS SDK를 사용하여 CloudTrail 로그를 조회해보겠습니다. 아래는 AWS SDK를 사용하여 CloudTrail 로그를 조회하는 예제 코드입니다.

import * as AWS from 'aws-sdk';

const cloudTrail = new AWS.CloudTrail();

const params = {
  StartTime: new Date('2022-01-01'),
  EndTime: new Date('2022-01-31'),
  MaxResults: 100
};

cloudTrail.lookupEvents(params, (err, data) => {
  if (err) {
    console.error(err, err.stack);
  } else {
    console.log(data.Events);
  }
});

위 예제 코드는 AWS SDK를 사용하여 CloudTrail의 이벤트를 조회하는 방법을 보여줍니다. StartTimeEndTime을 지정하여 원하는 시간 범위의 이벤트를 조회할 수 있습니다.

TypeScript로 AWS CloudTrail 이벤트 분석하기

이제 TypeScript를 사용하여 CloudTrail 이벤트를 분석하는 방법을 알아보겠습니다. AWS CloudTrail 이벤트는 JSON 형식으로 제공되며, TypeScript를 사용하여 해당 JSON 파일을 쉽게 분석할 수 있습니다.

interface CloudTrailEvent {
  eventVersion: string;
  userIdentity: {
    type: string;
    principalId: string;
    arn: string;
    accountId: string;
    userName: string;
  };
  eventTime: string;
  eventSource: string;
  eventName: string;
  awsRegion: string;
  userAgent: string;
  sourceIPAddress: string;
  errorCode: string;
  errorMessage: string;
  requestParameters: Record<string, unknown>;
  responseElements: Record<string, unknown>;
  additionalEventData: Record<string, unknown>;
}

const eventJson: string = '{"eventVersion": "1.05", ...}'; // CloudTrail 이벤트 JSON

const cloudTrailEvent: CloudTrailEvent = JSON.parse(eventJson);
console.log(cloudTrailEvent.eventName);

위 코드에서는 CloudTrailEvent 인터페이스를 사용하여 CloudTrail 이벤트의 형식을 정의하고, JSON.parse를 사용하여 CloudTrail 이벤트 JSON을 TypeScript 객체로 변환합니다. 이를 통해 TypeScript로 AWS CloudTrail 이벤트를 쉽게 분석할 수 있습니다.

결론

이렇게 TypeScript를 사용하여 AWS CloudTrail 로그를 조회하고 분석하는 방법에 대해 알아보았습니다. TypeScript를 활용하여 AWS 환경에서의 로그 관리를 보다 효과적으로 수행할 수 있습니다. AWS CloudTrail과 TypeScript를 함께 사용하여 보다 안전하고 효율적인 AWS 환경을 구축해보세요.

더 자세한 내용은 AWS CloudTrail 문서를 참고하실 수 있습니다.