brunch

You can make anything
by writing

- C.S.Lewis -

by Master Seo May 26. 2020

364 CloudWatch이벤트로 보안 그룹 모니터링법

목표

cloudwatch 이벤트로 보안 그룹에 대해 모니터링 하자.

보안 그룹이 수정되면  필터링해서 확인할 수 있도록 하자.

q-ok , r-ok



동작

1. sg 수정

2. api가 호출이 cloudtrail log에 쌓이고

3. cloudwatch event 가  주기적으로 sg변경에 대해 모니터링하다.  이벤트 발생

4. lambda 함수 실행 

5. 람다는 기존 코딩된 거와 다르면 cloudwatch log에 알림을 보낸다.


결국 cloud tail 로그를 cloudwatch event가 감지하는 것이다.

우리는 cloudwatch log에서 변경된 것을 찾아야 한다.




사전 작업

현재는 특정 보안 그룹에 대해서만 감시하므로, 보안 그룹을 수정할 수 있도록만 해야 한다. 

보안 그룹의 생성 권한은 제거한다.


작업 순서


<1>  Ec2에서 SG 확인

그룹 ID를  에버노트에 적어 놓는다.



<2>  Lambda  권한 확인.

admin 이므로 따로 신경 쓰지 않아도 된다.

일반적으로 , 람다 함수가 이벤트를 생성해서 logstream에 쓸 수 있도록 하는 권한이 있어야 한다.

EC2에 SG그룹에 대해 리스트업 하고, 쓸 수 있는 권한

CloudWatch log에 LOG를 생성할 수 있는 권한 필요.



<3> lambda에서 SG변경이 있는지 학인


1

lambda

name 

sg-change-lambda

python2.7

새 역할

생성


2

기능 코드

// 관련 코드를 입력한다.

기본 설정 세션

시간 초과 1분

저장



<4> cloud watch enevt 구성


cloudwatch >  event  > 시작

서비스 이름

EC2 선택

AWS API Call via Cloudtail 선택

특정 작업

편집

//  패턴 입력


코드 group을  sg-111111111로 대체한다.

저장


대상

기능 

awscvenet_lamdb_sg

세부사항

이름

rule-check1

규칙 만들기

// 보안 그룹이 변경될떄마다 람다를 호출하는 Cloud Watch event가 만들어졌다.



<5>  ec2 보안 그룹 수정하여 동작하는지 확인

ec2 > sg > inbount  icmp   >  0.0.0.0 /0  허용  



<6>  cloudwatch log에서  lambda  수행 작업 확인


1

cloudwatch  > log  > log 그룹  >  클릭 >  클릭  >  이벤트 필터 란에 

This permission must be

This permission must be revoked


로그에 추가한 포트가 제거되어야 함이  표시되어야 합니다.



<7>  삭제

lambda 삭제

cloudwatch  이벤트 삭제

cloudwatch log 삭제



<8> 기타

1. Cloudwatch log 필터링 결과를 메일로 받거나 하면 좋을 거 같다.

   수동으로 보려니 번거롭다.

2. 보안 그룹이 계속 수정되면 람다 실행됨. 비용은?

3. cloudwatch log 파일 저장 기간 설정하자.

4. Cloudwatch event가 발생되는데 비용이 많이 나가지 않을까?

5. 보안 그룹을 수정하기 위해 lambda 함수 수정할 수 가능하다.

authorizesecuritygroupingress() 및 revokesecurityGroupIngress를 호출해야 한다.


감사합니다.





매거진의 이전글 363. IoT 데이터, Redis 사용 관리

매거진 선택

키워드 선택 0 / 3 0
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari