MySQL에 대한 MariaDB 감사 플러그인 지원 - Amazon Relational Database Service

MySQL에 대한 MariaDB 감사 플러그인 지원

Amazon RDS는 오픈 소스 MariaDB 감사 플러그인을 기반으로 MySQL 데이터베이스 인스턴스용 감사 플러그인을 제공합니다. 자세한 내용은 MySQL Server GitHub 리포지토리의 감사 플러그인을 참조하세요.

참고

MySQL용 감사 플러그인은 MariaDB 감사 플러그인을 기반으로 합니다. 이 문서에서는 이를 MariaDB 감사 플러그인이라고 합니다.

MariaDB 감사 플러그인은 사용자의 데이터베이스 로그온, 데이터베이스에 대해 실행되는 쿼리 등의 데이터베이스 활동을 기록합니다. 데이터베이스 활동 기록은 로그 파일에 저장됩니다.

참고

현재 MariaDB 감사 플러그인은 다음 RDS for MySQL 버전에만 지원됩니다.

  • MySQL 8.0.28 이상의 8.0 버전

  • 모든 MySQL 5.7 버전

감사 플러그인 옵션 설정

Amazon RDS는 MariaDB 감사 플러그인 옵션의 다음 설정을 지원합니다.

옵션 설정 유효한 값 기본값 설명

SERVER_AUDIT_FILE_PATH

/rdsdbdata/log/audit/

/rdsdbdata/log/audit/

로그 파일의 위치. 로그 파일에는 SERVER_AUDIT_EVENTS에서 지정된 활동 기록이 포함되어 있습니다. 자세한 내용은 데이터베이스 로그 파일 보기 및 나열MySQL 데이터베이스 로그 파일 단원을 참조하십시오.

SERVER_AUDIT_FILE_ROTATE_SIZE

1–1000000000

1000000

도달 시 파일 로테이션을 초래하는 바이트 크기. 자세한 내용은 RDS for MySQL 데이터베이스 로그 개요 섹션을 참조하세요.

SERVER_AUDIT_FILE_ROTATIONS

0–100

9

server_audit_output_type=file일 경우 저장할 로그 교체 수입니다. 0으로 설정하면 로그 파일이 교체되지 않습니다. 자세한 정보는 RDS for MySQL 데이터베이스 로그 개요데이터베이스 로그 파일 다운로드 섹션을 참조하세요.

SERVER_AUDIT_EVENTS

CONNECT, QUERY, QUERY_DDL, QUERY_DML, QUERY_DML_NO_SELECT, QUERY_DCL

CONNECT, QUERY

로그에 기록할 활동 유형. MariaDB 감사 플러그인 설치 자체가 로깅됩니다.

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

  • QUERY: 데이터베이스에 대해 실행된 모든 쿼리의 텍스트를 로깅합니다.

  • QUERY_DDL: QUERY 이벤트와 유사하지만 데이터 정의 언어(DDL) 쿼리(CREATE, ALTER 등)만 반환합니다.

  • QUERY_DML: QUERY 이벤트와 유사하지만 데이터 조작 언어(DML) 쿼리(INSERT, UPDATE 등과 SELECT)만 반환합니다.

  • QUERY_DML_NO_SELECT: QUERY_DML이벤트와 유사하지만 SELECT 쿼리를 로깅하지 않습니다.

    QUERY_DML_NO_SELECT 설정은 RDS for MySQL 5.7.34 이상 5.7 버전, 8.0.25 이상 8.0 버전에서만 사용할 수 있습니다.

  • QUERY_DCL: QUERY 이벤트와 유사하지만 데이터 제어 언어(DCL) 쿼리(GRANT, REVOKE 등)만 반환합니다.

MySQL에서 TABLE이 지원되지 않습니다.

SERVER_AUDIT_INCL_USERS

복수의 쉼표로 분리된 값

없음

지정된 사용자들의 활동만을 포함하십시오. 기본적으로 활동은 모든 사용자에 대해 기록됩니다. SERVER_AUDIT_INCL_USERSSERVER_AUDIT_EXCL_USERS는 상호 배타적입니다. SERVER_AUDIT_INCL_USERS에 값을 추가하는 경우 SERVER_AUDIT_EXCL_USERS에 값이 추가되지 않았는지 확인합니다.

SERVER_AUDIT_EXCL_USERS

복수의 쉼표로 분리된 값

없음

지정된 사용자들의 활동을 제외하십시오. 기본적으로 활동은 모든 사용자에 대해 기록됩니다. SERVER_AUDIT_INCL_USERSSERVER_AUDIT_EXCL_USERS는 상호 배타적입니다. SERVER_AUDIT_EXCL_USERS에 값을 추가하는 경우 SERVER_AUDIT_INCL_USERS에 값이 추가되지 않았는지 확인합니다.

rdsadmin 사용자는 데이터베이스 상태를 확인하기 위해 1초마다 데이터베이스에 쿼리를 요청합니다. 다른 설정에 따라 이 활동은 로그 파일의 크기를 아주 빨리 대폭 증가시킬 수 있습니다. 이 활동을 기록할 필요가 없는 경우, rdsadmin 사용자를 SERVER_AUDIT_EXCL_USERS 목록에 추가하십시오.

참고

CONNECT 활동은 해당 사용자가 이 옵션 설정에 지정되었다 해도 모든 사용자에 대해 기록됩니다.

SERVER_AUDIT_LOGGING

ON

ON

로깅이 활성화되었습니다. 유일한 유효 값은 ON입니다. Amazon RDS는 로깅 비활성화를 지원하지 않습니다. 로깅을 비활성화하려면 MariaDB 감사 플러그인을 제거하십시오. 자세한 내용은 MariaDB 감사 플러그인 제거하기 섹션을 참조하세요.

SERVER_AUDIT_QUERY_LOG_LIMIT

0–2147483647

1024

레코드에서 쿼리 문자열의 길이 제한.

MariaDB 감사 플러그인 추가하기

MariaDB 감사 플러그인을 DB 인스턴스에 추가하는 일반적인 프로세스는 다음과 같습니다.

  • 새 옵션 그룹을 생성하거나 기존 옵션 그룹을 복사 또는 수정합니다.

  • 옵션을 옵션 그룹에 추가합니다.

  • 옵션 그룹을 DB 인스턴스에 연동시킵니다.

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

중요

MariaDB 감사 플러그인을 DB 인스턴스에 추가하면 작동이 중단될 수 있습니다. 유지 관리 기간 또는 데이터베이스 워크로드가 적은 시간에 MariaDB 감사 플러그인을 추가하는 것이 좋습니다.

MariaDB 감사 플러그인을 추가하려면,
  1. 사용할 옵션 그룹을 결정합니다. 새 옵션 그룹을 생성하거나 기존 옵션 그룹을 사용합니다. 기존 옵션 그룹을 사용하려면 다음 단계로 건너뛰십시오. 그렇지 않다면 사용자 지정 DB 옵션 그룹을 생성합니다. 엔진(Engine)으로 mysql을 선택하고, 메이저 엔진 버전(Major engine version)으로 5.7 또는 8.0을 선택합니다. 자세한 내용은 옵션 그룹 생성 섹션을 참조하세요.

  2. MARIADB_AUDIT_PLUGIN 옵션을 옵션 그룹에 추가하고 옵션 설정을 구성하십시오. 옵션 추가에 대한 자세한 내용은 옵션 그룹에 옵션 추가 섹션을 참조하세요. 각 설정에 대한 자세한 내용은 감사 플러그인 옵션 설정 단원을 참조하십시오.

  3. 옵션 그룹을 새 DB 인스턴스 또는 기존 DB 인스턴스에 적용합니다.

    • 새 DB 인스턴스의 경우, 인스턴스를 시작할 때 옵션 그룹을 적용합니다. 자세한 내용은 Amazon RDS DB 인스턴스 생성 섹션을 참조하세요.

    • 기존 DB 인스턴스의 경우, 해당 인스턴스를 수정하고 새 옵션 그룹을 연결하여 옵션 그룹을 적용합니다. 자세한 내용은 Amazon RDS DB 인스턴스 수정 섹션을 참조하세요.

감사 로그 형식

로그 파일은 UTF-8 형식의 쉼표로 구분된 변수(CSV) 파일로 표시됩니다.

작은 정보

로그 파일 항목은 순서대로 나열되지 않습니다. 항목의 순서를 정하려면 타임스탬프 값을 사용합니다. 최신 이벤트를 보기 위해 모든 로그 파일을 확인해야 하는 경우가 있을 수 있습니다. 로그 데이터를 보다 유연하게 정렬하고 검색하려면 CloudWatch에 감사 로그를 업로드하고 CloudWatch 인터페이스를 사용하여 보는 설정을 켜세요.

더 많은 유형의 필드와 JSON 형식의 출력이 있는 감사 데이터를 보기 위해 데이터베이스 활동 스트림 기능을 사용할 수도 있습니다. 자세한 내용은 데이터베이스 활동 스트림을 사용하여 Amazon RDS 모니터링 섹션을 참조하세요.

감사 로그 파일은 지정된 순서대로 다음의 쉼표로 구분된 정보를 행에 포함합니다.

필드 설명

timestamp

로깅된 이벤트의 YYYYMMDD 다음 HH:MI:SS(24시간 형식).

serverhost

이벤트가 기록되는 인스턴스의 이름입니다.

사용자 이름

사용자의 연결된 사용자 이름입니다.

host

사용자가 연결한 호스트입니다.

connectionid

기록된 작업의 연결 ID 번호입니다.

queryid

관계형 테이블 이벤트 및 관련 쿼리를 검색하는 데 사용할 수 있는 쿼리 ID 번호입니다. TABLE 이벤트의 경우 여러 줄이 추가됩니다.

작업을 통해 처리 속도를 높일 수 있습니다

기록된 작업 유형입니다. 가능한 값은 CONNECT, QUERY, READ, WRITE, CREATE, ALTER, RENAMEDROP입니다.

데이터베이스

USE 명령에 의해 설정된 활성 데이터베이스입니다.

객체

QUERY 이벤트의 경우 이 값은 데이터베이스에서 수행한 쿼리를 나타냅니다. TABLE 이벤트의 경우 이 값은 테이블 이름을 나타냅니다.

retcode

기록된 작업의 반환 코드입니다.

connection_type

서버 연결의 보안 상태입니다. 가능한 값은 다음과 같습니다.

  • 0 - 정의되지 않음

  • 1 – TCP/IP

  • 2 – 소켓

  • 3 – 명명된 파이프

  • 4 – SSL/TLS

  • 5 – 공유 메모리

이 필드는 RDS for MySQL 버전 5.7.34 이상의 5.7 버전과 모든 8.0 버전의 경우에만 포함됩니다.

MariaDB 감사 플러그인 로그 보기 및 다운로드

MariaDB 감사 플러그인을 활성화한 후 다른 텍스트 기반 로그 파일에 액세스하는 것과 동일한 방식으로 로그 파일의 결과에 액세스할 수 있습니다. 감사 로그 파일은 /rdsdbdata/log/audit/에 있습니다. 콘솔에서 로그 파일 보기에 대한 자세한 내용은 데이터베이스 로그 파일 보기 및 나열을(를) 참조하십시오. 로그 파일 다운로드에 대한 자세한 내용은 데이터베이스 로그 파일 다운로드을(를) 참조하십시오.

MariaDB 감사 플러그인 설정 수정

MariaDB 감사 플러그인을 활성화한 후 설정을 수정할 수 있습니다. 옵션 설정을 변경하는 방법에 대한 자세한 내용은 옵션 설정 수정을(를) 참조하십시오. 각 설정에 대한 자세한 내용은 감사 플러그인 옵션 설정 단원을 참조하십시오.

MariaDB 감사 플러그인 제거하기

Amazon RDS는 MariaDB 감사 플러그인에서의 로깅 끄기를 지원하지 않습니다. 다만 DB 인스턴스에서 플러그인을 제거할 수는 있습니다. MariaDB 감사 플러그인을 제거할 때 DB 인스턴스가 자동으로 재시작하여 감사가 중지됩니다.

MariaDB 감사 플러그인을 DB 인스턴스에서 제거하려면 다음 중 하나를 실행하십시오.

  • MariaDB 감사 플러그인이 속한 옵션 그룹에서 MariaDB 감사 플러그인 옵션을 제거합니다. 이 변경은 해당 옵션 그룹을 사용하는 모든 DB 인스턴스에 영향을 미칩니다. 자세한 내용은 옵션 그룹에서 옵션 제거 섹션을 참조하세요.

  • DB 인스턴스를 수정하고, 플러그인이 포함되지 않은 다른 옵션 그룹을 지정합니다. 이 변경은 단일 DB 인스턴스에 영향을 미칩니다. 기본(빈) 옵션 그룹을 지정하거나 다른 사용자 지정 옵션 그룹을 지정할 수 있습니다. 자세한 내용은 Amazon RDS DB 인스턴스 수정 섹션을 참조하세요.