본문 바로가기

Cloud

[AWS] RDS MySQL Audit Log 설정 (옵션 그룹, CloudWatch)

반응형

 

 


 

 

로그 중 Error Log, General Log, Slow Query Log 는 AWS RDS Management Console 내  [파라미터 그룹] 에서 설정이 가능하지만,

Audit Log 는 [옵션 그룹] 에서 설정이 가능하다.

 

[옵션 그룹] 을 통해 감사 로그를 설정해보자.

 

(1) 옵션 그룹 선택

RDS Management Console 에서 [RDS] -> [옵션 그룹] 을 선택한다.

 

(2) 옵션 그룹 생성

원하는 엔진과 버전을 선택하여 옵션 그룹을 생성해준다.

 

(3) 옵션 추가 선택

생성한 옵션 그룹 선택 후, [옵션 추가] 를 선택한다.

 

(4) 감사로그 설정

MARIADB_AUDIT_PLUGIN 옵션을 통해 원하는 조건을 설정하여 감사 로그를 설정해준다.

 *AWS RDS for MySQL 은 MariaDB 감사 플러그인 사용을 지원한다.

   (MySQL 5.7, MySQL 8.0.25 및, 8.0 버전 이상만 지원)

 

< 감사 플러그인 옵션 설정 > 

ㆍ SERVER_AUDIT_EVENTS : 로그에 기록할 활동 유형을 설정하여 제한한다. 기본 값은 CONNECT, QUERY 이다.

 - CONNECT: 성공/실패한 데이터베이스 연결과 연결해제를 로깅한다.

 - QUERY: 실행된 모든 쿼리를 로깅한다.

 - QUERY_DDL: DDL (CREATE, ALTER 등) 쿼리만 로깅한다.

 - QUERY_DML: DML (INSERT, UPDATE, DELETE 등과 SELECT) 쿼리만 로깅한다.

 - QUERY_DML_NO_SELECT: SELECT 를 제외한 DML (INSERT, UPDATE 등과 SELECT) 쿼리만 로깅한다.

 - QUERY_DCL: DCL (GRANT, REVOKE 등) 쿼리만 로깅한다.

ㆍ SERVER_AUDIT_EXCL_USERS : 로깅을 제외하려는 사용자들을 지정한다.

ㆍ SERVER_AUDIT_FILE_ROTATE_SIZE : 로그 파일 크기를 설정한다. (1–1000000000) 최대 1GB이며, 기본값은 1000000 이다.

SERVER_AUDIT_FILE_ROTATIONS : 저장할 로그 로테이션 수를 지정한다. (0-100) 기본값은 9 개이다.

SERVER_AUDIT_INCL_USERS : 로깅을 원하는 사용자들을 지정한다. 지정한 사용자 없을 시 모든 사용자를 로깅한다.

SERVER_AUDIT_LOGGING : 로깅 활성화 상태이며, 현재 ON 만 지원한다. 로깅을 비활성화하려면 MariaDB 감사 플러그인 제거를 통해 비활성화 할 수 있다.

SERVER_AUDIT_QUERY_LOG_LIMIT : 쿼리 문자열의 길이 제한한다. (0–2147483647) 기본값은 1024 이다.

 

 

 

옵션 설정 후, 즉시 적용을 통하여 옵션 추가를 해주면 감사 로그가 적용이 된다.

*MariaDB 감사 플러그인을 추가한 후 DB 인스턴스를 재시작할 필요 없다. 옵션 그룹이 활성화되자마자 감사가 즉시 시작된다.

*원하는 DB 인스턴스의 옵션 그룹이 추가해준 옵션 그룹으로 설정되어 있는지 확인이 필요하며, 설정되어 있지 않다면 반드시 설정해준다. (그래야 감사로그가 로깅됩니다.)

 

 

(5) 로그에서 감사 로그 확인

 

(6) CloudWatch 에서 감사 로그 확인 (CloudWatch 내보내기 설정 시에만 확인 가능)

https://console.aws.amazon.com/cloudwatch/ 에서 CloudWatch 콘솔을 연 후,

[로그] -> [로그 그룹] 을 선택하면 추가한 감사로그를 확인 할 수 있다.

 

 

끝! 감사합니다!

 

 

반응형