본문 바로가기

AWS Lambda ƛ/⚡ 자동태깅

CloudTrail의 Resource 정보를 EventBridge에서 수신하는 방법

# CloudTrail의 특정 Resource 정보를 EventBridge에서 수신 후 다음 스텝을 실행하는 방법

1. 클라우드 트레일의 리소스 정보를 살펴보기

- 클라우드 트레일에서 리소스 정보가 어떤 방식으로 저장되는지 보면 아래와 같다.

일단 json 형태로 저장이 되는 것을 확인 할 수 있다. 일부 정보를 확인하면 아래와 같다.

         "eventTime":"2023-08-04T04:37:21Z",
         "eventSource":"ec2.amazonaws.com",
         "eventName":"DescribeVolumes",
         "awsRegion":"ap-northeast-2",
         "sourceIPAddress":"config.amazonaws.com",
         "userAgent":"config.amazonaws.com",
         "requestParameters":{
            "maxResults":1000,
            "volumeSet":{
               
            },
            "filterSet":{
               
            }
         },

위의 정보를 보면 이벤트 이름, 리전정보 등의 정보를 확인 할 수 있다.

위의 정보를 기반으로 이벤트 브릿지에서 해당 서비스를 호출하고 람다에서는 개발이 가능하다.

클라우드 트레일에는 위와 같은 json으로 구성된 리소스 정보들이 각 리전별 존재하고, 해당 정보는 S3에 별도로 저장하여 관리가 가능하다. (전체 리전, 전체 리소스에 대한 정보를 가져오므로 데이터는 상당히 방대하다고 볼 수 있다.)

2. EventBridge에서 API 정보를 구별하는 방법은 아래와 같다.

- 일단 이벤트 브릿지의 규칙을 생성할때 주요 설정값을 알아보면 아래와 같다.

일단 이벤트 브릿지는 규칙기반형과 일정 기반형으로 나눌수 있다.

이벤트 패턴이 있는 규칙은 이벤트 브릿지에 설정한 규칙과 패턴이 일치하면 실행이 되는 구조이고, 일정은 Crontab 기반의 일정으로 특정 일시에 실행되는 것을 말한다.

한마디로 일정은 배치 스케줄과 같다고 보면 되고, 이벤트 패턴은 특정 이벤트가 발생 시 실행되는 구조라고 볼 수 있다.

- 보통은 람다에서 트리거 형태로 이벤트 브릿지를 실행하는데 실행 환경 설정을 보면 아래와 같다.

- CloudTrail에 RunInstances 이벤트 기록을 보면 아래와 같이 확인이 가능하다.

해당 이벤트가 CloudTrail에서 발생 시 위에서 설정한 이벤트 브릿지가 동작한다고 볼 수있다.

- 람다 프로세스를 보면 아래와 같다.

User Instance 생성 CloudTrail (RunInstances) EventBridge Lambda Function 실행 인스턴스 생성 시 태깅 부여

3. 결  론

- 결론을 내자면 아래와 같다.

AWS 리소스가 생성 및 변경 삭제 될때 어떤 작업을 해야한다면 이벤트 브릿지와 람다 함수를 같이 연계하여 작업을 수행 할 수 있다.

위의 방법이 정답은 아니고, 다른 더좋은 AWS 서비스가 존재 한다면 해당 서비스와 연계하여 구성이 가능하다.

위의 방법은 단지 하나의 솔루션일 뿐이다.

 

- 끝 -