

# MySQL에 대한 MariaDB 감사 플러그인 지원
<a name="Appendix.MySQL.Options.AuditPlugin"></a>

Amazon RDS는 오픈 소스 MariaDB 감사 플러그인을 기반으로 MySQL 데이터베이스 인스턴스용 감사 플러그인을 제공합니다. 자세한 내용은 [MySQL Server GitHub 리포지토리의 감사 플러그인](https://github.com/aws/audit-plugin-for-mysql)을 참조하세요.

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

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

## 감사 플러그인 옵션 설정
<a name="Appendix.MySQL.Options.AuditPlugin.Options"></a>

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


| 옵션 설정 | 유효한 값 | 기본값 | 설명 | 
| --- | --- | --- | --- | 
| `SERVER_AUDIT_FILE_PATH` | `/rdsdbdata/log/audit/` | `/rdsdbdata/log/audit/` |  로그 파일의 위치. 로그 파일에는 `SERVER_AUDIT_EVENTS`에서 지정된 활동 기록이 포함되어 있습니다. 자세한 내용은 [데이터베이스 로그 파일 보기 및 나열](USER_LogAccess.Procedural.Viewing.md) 및 [ MySQL 데이터베이스 로그 파일](USER_LogAccess.Concepts.MySQL.md) 단원을 참조하십시오.  | 
| `SERVER_AUDIT_FILE_ROTATE_SIZE` | 1–1000000000 | 1000000 |  도달 시 파일 로테이션을 초래하는 바이트 크기. 자세한 내용은 [RDS for MySQL 데이터베이스 로그 개요](USER_LogAccess.MySQL.LogFileSize.md) 섹션을 참조하세요.  | 
| `SERVER_AUDIT_FILE_ROTATIONS` | 0–100 | 9 |  `server_audit_output_type=file`일 경우 저장할 로그 교체 수입니다. 0으로 설정하면 로그 파일이 교체되지 않습니다. 자세한 내용은 [RDS for MySQL 데이터베이스 로그 개요](USER_LogAccess.MySQL.LogFileSize.md) 및 [데이터베이스 로그 파일 다운로드](USER_LogAccess.Procedural.Downloading.md)(을)를 참조하세요.  | 
| `SERVER_AUDIT_EVENTS` | `CONNECT`, `QUERY`, `QUERY_DDL`, `QUERY_DML`, `QUERY_DML_NO_SELECT`, `QUERY_DCL` | `CONNECT`, `QUERY` |  로그에 기록할 활동 유형. MariaDB 감사 플러그인 설치 자체가 로깅됩니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/Appendix.MySQL.Options.AuditPlugin.html) MySQL에서 `TABLE`이 지원되지 않습니다.  | 
| `SERVER_AUDIT_INCL_USERS` | 복수의 쉼표로 분리된 값 | 없음 |  지정된 사용자들의 활동만을 포함하십시오. 기본적으로 활동은 모든 사용자에 대해 기록됩니다. `SERVER_AUDIT_INCL_USERS` 및 `SERVER_AUDIT_EXCL_USERS`는 상호 배타적입니다. `SERVER_AUDIT_INCL_USERS`에 값을 추가하는 경우 `SERVER_AUDIT_EXCL_USERS`에 값이 추가되지 않았는지 확인합니다.  | 
| `SERVER_AUDIT_EXCL_USERS` | 복수의 쉼표로 분리된 값 | 없음 |  지정된 사용자들의 활동을 제외하십시오. 기본적으로 활동은 모든 사용자에 대해 기록됩니다. `SERVER_AUDIT_INCL_USERS` 및 `SERVER_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 감사 플러그인 제거하기](#Appendix.MySQL.Options.AuditPlugin.Remove) 섹션을 참조하세요.  | 
| `SERVER_AUDIT_QUERY_LOG_LIMIT` | 0–2147483647 | 1024 |  레코드에서 쿼리 문자열의 길이 제한.  | 

## MariaDB 감사 플러그인 추가하기
<a name="Appendix.MySQL.Options.AuditPlugin.Add"></a>

MariaDB 감사 플러그인을 DB 인스턴스에 추가하는 일반적인 프로세스는 다음과 같습니다.
+ 새 옵션 그룹을 생성하거나 기존 옵션 그룹을 복사 또는 수정합니다.
+ 옵션을 옵션 그룹에 추가합니다.
+ 옵션 그룹을 DB 인스턴스에 연동시킵니다.

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

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

**MariaDB 감사 플러그인을 추가하려면,**

1. 사용할 옵션 그룹을 결정합니다. 새 옵션 그룹을 생성하거나 기존 옵션 그룹을 사용합니다. 기존 옵션 그룹을 사용하려면 다음 단계로 건너뛰십시오. 그렇지 않다면 사용자 지정 DB 옵션 그룹을 생성합니다. **엔진**으로 **mysql**을 선택하고, **메이저 엔진 버전**으로 **5.7**, **8.0** 또는 **8.4**를 선택합니다. 자세한 내용은 [옵션 그룹 생성](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create) 섹션을 참조하세요.

1. **MARIADB\$1AUDIT\$1PLUGIN** 옵션을 옵션 그룹에 추가하고 옵션 설정을 구성하십시오. 옵션 추가에 대한 자세한 내용은 [옵션 그룹에 옵션 추가](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption) 섹션을 참조하세요. 각 설정에 대한 자세한 내용은 [감사 플러그인 옵션 설정](#Appendix.MySQL.Options.AuditPlugin.Options) 단원을 참조하십시오.

1. 옵션 그룹을 새 DB 인스턴스 또는 기존 DB 인스턴스에 적용합니다.
   + 새 DB 인스턴스의 경우, 인스턴스를 시작할 때 옵션 그룹을 적용합니다. 자세한 내용은 [Amazon RDS DB 인스턴스 생성](USER_CreateDBInstance.md) 섹션을 참조하세요.
   + 기존 DB 인스턴스의 경우, 해당 인스턴스를 수정하고 새 옵션 그룹을 연결하여 옵션 그룹을 적용합니다. 자세한 내용은 [Amazon RDS DB 인스턴스 수정](Overview.DBInstance.Modifying.md) 섹션을 참조하세요.

## 감사 로그 형식
<a name="Appendix.MySQL.Options.AuditPlugin.LogFormat"></a>

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

**작은 정보**  
로그 파일 항목은 순서대로 나열되지 않습니다. 항목의 순서를 정하려면 타임스탬프 값을 사용합니다. 최신 이벤트를 보기 위해 모든 로그 파일을 확인해야 하는 경우가 있을 수 있습니다. 로그 데이터를 보다 유연하게 정렬하고 검색하려면 CloudWatch에 감사 로그를 업로드하고 CloudWatch 인터페이스를 사용하여 보는 설정을 켜세요.  
 더 많은 유형의 필드와 JSON 형식의 출력이 있는 감사 데이터를 보기 위해 데이터베이스 활동 스트림 기능을 사용할 수도 있습니다. 자세한 내용은 [데이터베이스 활동 스트림을 사용하여 Amazon RDS 모니터링](DBActivityStreams.md) 섹션을 참조하세요.

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


| 필드 | 설명 | 
| --- | --- | 
|  timestamp  |  로깅된 이벤트의 `YYYYMMDD` 다음 `HH:MI:SS`(24시간 형식).  | 
|  serverhost  |  이벤트가 기록되는 인스턴스의 이름입니다.  | 
|  사용자 이름  |  사용자의 연결된 사용자 이름입니다.  | 
|  host  |  사용자가 연결한 호스트입니다.  | 
|  connectionid  |  기록된 작업의 연결 ID 번호입니다.  | 
|  queryid  |  관계형 테이블 이벤트 및 관련 쿼리를 검색하는 데 사용할 수 있는 쿼리 ID 번호입니다. `TABLE` 이벤트의 경우 여러 줄이 추가됩니다.  | 
|  작업을 통해 처리 속도를 높일 수 있습니다  |  기록된 작업 유형입니다. 가능한 값은 `CONNECT`, `QUERY`, `READ`, `WRITE`, `CREATE`, `ALTER`, `RENAME` 및 `DROP`입니다.  | 
|  데이터베이스  |  `USE` 명령에 의해 설정된 활성 데이터베이스입니다.  | 
|  객체  |  `QUERY` 이벤트의 경우 이 값은 데이터베이스에서 수행한 쿼리를 나타냅니다. `TABLE` 이벤트의 경우 이 값은 테이블 이름을 나타냅니다.  | 
|  retcode  |  기록된 작업의 반환 코드입니다.  | 
|  connection\$1type  |  서버 연결의 보안 상태입니다. 가능한 값은 다음과 같습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/Appendix.MySQL.Options.AuditPlugin.html)  | 

## MariaDB 감사 플러그인 로그 보기 및 다운로드
<a name="Appendix.MySQL.Options.AuditPlugin.Log"></a>

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

## MariaDB 감사 플러그인 설정 수정
<a name="Appendix.MySQL.Options.AuditPlugin.ModifySettings"></a>

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

## MariaDB 감사 플러그인 제거하기
<a name="Appendix.MySQL.Options.AuditPlugin.Remove"></a>

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

MariaDB 감사 플러그인을 DB 인스턴스에서 제거하려면 다음 중 하나를 실행하십시오.
+ MariaDB 감사 플러그인이 속한 옵션 그룹에서 MariaDB 감사 플러그인 옵션을 제거합니다. 이 변경은 해당 옵션 그룹을 사용하는 모든 DB 인스턴스에 영향을 미칩니다. 자세한 내용은 [옵션 그룹에서 옵션 제거](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption) 섹션을 참조하세요.
+ DB 인스턴스를 수정하고, 플러그인이 포함되지 않은 다른 옵션 그룹을 지정합니다. 이 변경은 단일 DB 인스턴스에 영향을 미칩니다. 기본(빈) 옵션 그룹을 지정하거나 다른 사용자 지정 옵션 그룹을 지정할 수 있습니다. 자세한 내용은 [Amazon RDS DB 인스턴스 수정](Overview.DBInstance.Modifying.md) 섹션을 참조하세요.