

# Amazon Aurora MySQL DB 클러스터에서 고급 감사 사용
<a name="AuroraMySQL.Auditing"></a><a name="auditing"></a><a name="advanced_auditing"></a>

Amazon Aurora MySQL에서 고성능 고급 감사 기능을 사용하여 데이터베이스 활동을 감사할 수 있습니다. 이렇게 하려면 여러 DB 클러스터 파라미터를 설정하여 감사 로그 모음을 활성화합니다. 고급 감사가 활성화되면 이 기능을 사용하여 지원되는 이벤트의 모든 조합을 기록할 수 있습니다.

 감사 로그를 보거나 다운로드하여 한 번에 하나의 DB 인스턴스에 대한 감사 정보를 검토할 수 있습니다. 이를 위해 [Amazon Aurora 로그 파일 모니터링](USER_LogAccess.md)의 절차를 사용할 수 있습니다.

**작은 정보**  
 여러 DB 인스턴스가 포함된 Aurora DB 클러스터의 경우 클러스터의 모든 인스턴스에 대한 감사 로그를 검사하는 것이 더 편리할 수 있습니다. 이를 위해 CloudWatch Logs를 사용할 수 있습니다. 클러스터 수준에서 설정을 켜서 Aurora MySQL 감사 로그 데이터를 CloudWatch의 로그 그룹에 게시할 수 있습니다. 그런 다음 CloudWatch 인터페이스를 통해 감사 로그를 보고, 필터링하고, 검색할 수 있습니다. 자세한 내용은 [Amazon CloudWatch Logs에 Amazon Aurora MySQL 로그 게시](AuroraMySQL.Integrating.CloudWatch.md) 단원을 참조하십시오.

## 고급 감사 활성화
<a name="AuroraMySQL.Auditing.Enable"></a>

이 단원에서 설명하는 파라미터를 사용하여 DB 클러스터에 대해 고급 감사를 활성화하고 구성할 수 있습니다.

`server_audit_logging` 파라미터를 사용하여 감사 로그를 사용 설정하거나 사용 중지합니다.

`server_audit_events` 파라미터를 사용하여 로그할 이벤트를 지정합니다.

감사를 받을 사용자를 지정하려면 `server_audit_incl_users` 및 `server_audit_excl_users` 파라미터를 사용합니다. 기본적으로 모든 사용자가 감사됩니다. 하나 또는 둘 다 비어 있거나 둘 다에 동일한 사용자 이름이 지정된 경우 이러한 파라미터가 작동하는 방식에 대한 자세한 내용은 [server\$1audit\$1incl\$1users](#AuroraMySQL.Auditing.Enable.server_audit_incl_users) 및 [server\$1audit\$1excl\$1users](#AuroraMySQL.Auditing.Enable.server_audit_excl_users) 섹션을 참조하세요.

DB 클러스터가 사용하는 파라미터 그룹에서 다음 파라미터를 설정하여 고급 감사를 구성합니다. [Amazon Aurora에서 DB 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.Modifying.md) 단원에서 설명하는 절차에 따라 AWS Management Console을 사용하여 DB 클러스터 파라미터를 수정할 수 있습니다. [modify-db-cluster-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster-parameter-group.html) AWS CLI 명령 또는 [ModifyDBClusterParameterGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBClusterParameterGroup.html) Amazon RDS API 작업을 사용하여 DB 클러스터 파라미터를 프로그래밍 방식으로 수정할 수 있습니다.

파라미터 그룹이 클러스터와 이미 연결되어 있을 때 이들 파라미터를 수정할 때 DB 클러스터를 다시 시작할 필요가 없습니다. 파라미터 그룹을 클러스터와 처음 연결하는 경우 클러스터를 다시 시작해야 합니다.

**Topics**
+ [server\$1audit\$1logging](#AuroraMySQL.Auditing.Enable.server_audit_logging)
+ [server\$1audit\$1events](#AuroraMySQL.Auditing.Enable.server_audit_events)
+ [server\$1audit\$1incl\$1users](#AuroraMySQL.Auditing.Enable.server_audit_incl_users)
+ [server\$1audit\$1excl\$1users](#AuroraMySQL.Auditing.Enable.server_audit_excl_users)

### server\$1audit\$1logging
<a name="AuroraMySQL.Auditing.Enable.server_audit_logging"></a>

고급 감사를 활성화 또는 비활성화합니다. 이 파라미터는 OFF가 기본값입니다. 고급 감사를 활성화하려면 ON으로 설정합니다.

 `server_audit_events` 파라미터를 사용하여 감사할 이벤트 유형을 하나 이상 정의하지 않는 한 감사 데이터가 로그에 표시되지 않습니다.

 DB 인스턴스에 대한 감사 데이터가 기록되었는지 확인하려면 해당 인스턴스에 대한 일부 로그 파일의 이름이 `audit/audit.log.other_identifying_information` 형식인지 확인합니다. 로그 파일의 이름을 보려면 [데이터베이스 로그 파일 보기 및 나열](USER_LogAccess.Procedural.Viewing.md)의 절차를 따릅니다.

### server\$1audit\$1events
<a name="AuroraMySQL.Auditing.Enable.server_audit_events"></a>

기록할 이벤트의 쉼표로 구분된 목록을 포함합니다. 이벤트는 모두 대문자로 지정해야 하며 목록 항목 사이에 공백이 없어야 합니다. 예: `CONNECT,QUERY_DDL`. 이 파라미터는 빈 문자열이 기본값입니다.

다음 이벤트의 모든 조합을 기록할 수 있습니다.
+ CONNECT – 성공 및 실패한 연결을 모두 기록하고 연결 해제도 기록합니다. 이 이벤트는 사용자 정보를 포함합니다.
+ QUERY – 모든 쿼리를 일반 텍스트로 기록합니다(구문 또는 권한 오류로 인해 실패한 쿼리를 포함).
**작은 정보**  
 이 이벤트 유형을 설정하면 감사 데이터에는 Aurora가 자동으로 수행하는 지속적인 모니터링 및 상태 확인 정보가 포함됩니다. 특정 종류의 작업에만 관심이 있다면 보다 구체적인 종류의 이벤트를 사용할 수 있습니다. CloudWatch 인터페이스를 사용하여 로그에서 특정 데이터베이스, 테이블 또는 사용자와 관련된 이벤트를 검색할 수도 있습니다.
+ QUERY\$1DCL – 쿼리 이벤트와 유사하지만 데이터 제어 언어(DCL) 쿼리(GRANT, REVOKE 등)만 반환합니다.
+ QUERY\$1DDL – 쿼리 이벤트와 유사하지만 데이터 정의 언어(DDL) 쿼리(CREATE, ALTER 등)만 반환합니다.
+ Query\$1DML – 쿼리 이벤트와 유사하지만 데이터 조작 언어(DML) 쿼리(INSERT, UPDATE 등 및 SELECT)만 반환합니다.
+ TABLE – 쿼리 실행의 영향을 받은 테이블을 기록합니다.

**참고**  
Aurora에는 감사 로그에서 특정 쿼리를 제외하는 필터가 없습니다. `SELECT` 쿼리를 제외하려면 모든 DML 문을 제외해야 합니다.  
특정 사용자가 감사 로그에서 이러한 내부 `SELECT` 쿼리를 보고하는 경우, [server\$1audit\$1excl\$1users](#AuroraMySQL.Auditing.Enable.server_audit_excl_users) DB 클러스터 파라미터를 설정하여 해당 사용자를 제외할 수 있습니다. 그러나 해당 사용자가 다른 활동에도 사용되어 생략할 수 없는 경우에는 `SELECT` 쿼리를 제외할 수 있는 다른 옵션이 없습니다.

### server\$1audit\$1incl\$1users
<a name="AuroraMySQL.Auditing.Enable.server_audit_incl_users"></a>

활동이 기록된 사용자의 쉼표로 구분된 사용자 이름 목록을 포함합니다. 목록 항목 사이에 공백이 없어야 합니다. 예: `user_3,user_4`. 이 파라미터는 빈 문자열이 기본값입니다. 최대 길이는 1024자입니다. 지정된 사용자 이름이 `User` 테이블 내 `mysql.user` 열의 해당 이름과 일치해야 합니다. 사용자 이름에 대한 자세한 정보는 MySQL 설명서의 [계정 사용자 이름 및 암호를](https://dev.mysql.com/doc/refman/8.0/en/user-names.html) 참조하세요.

 `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` 모두에 사용자를 추가할 경우 해당 사용자가 감사됩니다. 동일한 사용자가 두 설정에 모두 나열되어 있는 경우 `server_audit_incl_users`의 우선순위가 높습니다.

Connect 및 Disconnect 이벤트는 이 변수의 영향을 받지 않습니다. 지정할 경우 이들 이벤트는 항상 기록됩니다. 사용자가 `server_audit_excl_users` 파라미터에도 지정되었더라도 `server_audit_incl_users`의 우선 순위가 더 높으므로 해당 사용자가 기록됩니다. 

### server\$1audit\$1excl\$1users
<a name="AuroraMySQL.Auditing.Enable.server_audit_excl_users"></a>

활동이 기록되지 않는 사용자의 쉼표로 구분된 사용자 이름 목록을 포함합니다. 목록 항목 사이에 공백이 없어야 합니다. 예: `rdsadmin,user_1,user_2`. 이 파라미터는 빈 문자열이 기본값입니다. 최대 길이는 1024자입니다. 지정된 사용자 이름이 `User` 테이블 내 `mysql.user` 열의 해당 이름과 일치해야 합니다. 사용자 이름에 대한 자세한 정보는 MySQL 설명서의 [계정 사용자 이름 및 암호를](https://dev.mysql.com/doc/refman/8.0/en/user-names.html) 참조하세요.

 `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` 모두에 사용자를 추가할 경우 해당 사용자가 감사됩니다. 동일한 사용자가 두 설정에 모두 나열되어 있는 경우 `server_audit_incl_users`의 우선순위가 높습니다.

Connect 및 Disconnect 이벤트는 이 변수의 영향을 받지 않습니다. 지정할 경우 이들 이벤트는 항상 기록됩니다. 사용자가 `server_audit_incl_users` 파라미터에도 지정된 경우 이 설정의 우선 순위가 `server_audit_excl_users`보다 높으므로 해당 사용자가 기록됩니다.

## 감사 로그 보기
<a name="AuroraMySQL.Auditing.View"></a>

 콘솔을 사용하여 감사 로그를 확인하고 다운로드할 수 있습니다. **Databases(데이터베이스)** 페이지에서 DB 인스턴스를 선택하여 세부 정보를 표시한 다음, **로그** 섹션으로 스크롤합니다. 고급 감사 기능에 의해 생성된 감사 로그는 `audit/audit.log.other_identifying_information` 형식의 이름을 갖습니다.

로그 파일을 다운로드하려면 **로그** 섹션에서 해당 파일을 선택한 다음 **다운로드**를 선택합니다.

또한 [describe-db-log-files](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-log-files.html) AWS CLI 명령을 사용하여 로그 파일 목록을 가져올 수 있습니다. [download-db-log-file-portion](https://docs.aws.amazon.com/cli/latest/reference/rds/download-db-log-file-portion.html) AWS CLI 명령을 사용하여 로그 파일의 내용을 다운로드할 수 있습니다. 자세한 내용은 [데이터베이스 로그 파일 보기 및 나열](USER_LogAccess.Procedural.Viewing.md) 및 [데이터베이스 로그 파일 다운로드](USER_LogAccess.Procedural.Downloading.md) 단원을 참조하십시오.

## 감사 로그 세부 정보
<a name="AuroraMySQL.Auditing.Logs"></a>

로그 파일은 UTF-8 형식의 쉼표로 구분된 변수(CSV) 파일로 표시됩니다. 쿼리는 작은따옴표(')로도 묶여 있습니다.

감사 로그는 각 Aurora MySQL DB 인스턴스의 로컬 스토리지에 별도로 저장됩니다. 각 인스턴스는 한 번에 4개의 로그 파일에 쓰기를 분산합니다. 최대 로그 파일 크기는 100MB입니다. 이 구성 불가능한 한도에 도달하면 Aurora는 파일을 교체하고 새 파일을 생성합니다.

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

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


| 필드 | 설명 | 
| --- | --- | 
|  타임스탬프  |  기록된 이벤트에 대한 Unix 타임스탬프(마이크로초 단위)입니다.  | 
|  serverhost  |  이벤트가 기록되는 인스턴스의 이름입니다.  | 
|  사용자 이름  |  사용자의 연결된 사용자 이름입니다.  | 
|  host  |  사용자가 연결한 호스트입니다.  | 
|  connectionid  |  기록된 작업의 연결 ID 번호입니다.  | 
|  queryid  |  관계형 테이블 이벤트 및 관련 쿼리를 검색하는 데 사용할 수 있는 쿼리 ID 번호입니다. `TABLE` 이벤트의 경우 여러 줄이 추가됩니다.  | 
|  작업을 통해 처리 속도를 높일 수 있습니다  |  기록된 작업 유형입니다. 가능한 값은 `CONNECT`, `QUERY`, `READ`, `WRITE`, `CREATE`, `ALTER`, `RENAME` 및 `DROP`입니다.  | 
|  데이터베이스  |  `USE` 명령에 의해 설정된 활성 데이터베이스입니다.  | 
|  객체  |  `QUERY` 이벤트의 경우 이 값은 데이터베이스에서 수행한 쿼리를 나타냅니다. `TABLE` 이벤트의 경우 이 값은 테이블 이름을 나타냅니다.  | 
|  retcode  |  기록된 작업의 반환 코드입니다.  | 