Amazon Aurora MySQL DB 클러스터에서 고급 감사 사용 - Amazon Aurora

Amazon Aurora MySQL DB 클러스터에서 고급 감사 사용

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

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

작은 정보

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

고급 감사 활성화

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

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

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

감사를 받을 사용자를 지정하려면 server_audit_incl_usersserver_audit_excl_users 파라미터를 사용합니다. 기본적으로 모든 사용자가 감사됩니다. 하나 또는 둘 다 비어 있거나 둘 다에 동일한 사용자 이름이 지정된 경우 이러한 파라미터가 작동하는 방식에 대한 자세한 내용은 server_audit_incl_usersserver_audit_excl_users 섹션을 참조하세요.

DB 클러스터가 사용하는 파라미터 그룹에서 다음 파라미터를 설정하여 고급 감사를 구성합니다. Amazon Aurora에서 DB 파라미터 그룹의 파라미터 수정 단원에서 설명하는 절차에 따라 AWS Management Console을 사용하여 DB 클러스터 파라미터를 수정할 수 있습니다. modify-db-cluster-parameter-group AWS CLI 명령 또는 ModifyDBClusterParameterGroup Amazon RDS API 작업을 사용하여 DB 클러스터 파라미터를 프로그래밍 방식으로 수정할 수 있습니다.

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

server_audit_logging

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

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

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

server_audit_events

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

다음 이벤트의 모든 조합을 기록할 수 있습니다.

  • CONNECT – 성공 및 실패한 연결을 모두 기록하고 연결 해제도 기록합니다. 이 이벤트는 사용자 정보를 포함합니다.

  • QUERY – 모든 쿼리를 일반 텍스트로 기록합니다(구문 또는 권한 오류로 인해 실패한 쿼리를 포함).

    작은 정보

    이 이벤트 유형을 설정하면 감사 데이터에는 Aurora가 자동으로 수행하는 지속적인 모니터링 및 상태 확인 정보가 포함됩니다. 특정 종류의 작업에만 관심이 있다면 보다 구체적인 종류의 이벤트를 사용할 수 있습니다. CloudWatch 인터페이스를 사용하여 로그에서 특정 데이터베이스, 테이블 또는 사용자와 관련된 이벤트를 검색할 수도 있습니다.

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

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

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

  • TABLE – 쿼리 실행의 영향을 받은 테이블을 기록합니다.

참고

Aurora에는 감사 로그에서 특정 쿼리를 제외하는 필터가 없습니다. SELECT 쿼리를 제외하려면 모든 DML 문을 제외해야 합니다.

특정 사용자가 감사 로그에서 이러한 내부 SELECT 쿼리를 보고하는 경우, server_audit_excl_users DB 클러스터 파라미터를 설정하여 해당 사용자를 제외할 수 있습니다. 그러나 해당 사용자가 다른 활동에도 사용되어 생략할 수 없는 경우에는 SELECT 쿼리를 제외할 수 있는 다른 옵션이 없습니다.

server_audit_incl_users

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

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

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

server_audit_excl_users

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

server_audit_incl_usersserver_audit_excl_users가 모두 비어 있는 경우(기본값) 모든 사용자가 감사됩니다.

server_audit_excl_users에 사용자를 추가하고 server_audit_incl_users는 비워둘 경우 server_audit_excl_users에 나열하는 해당 사용자만 제외하고 다른 모든 사용자가 감사됩니다.

server_audit_excl_usersserver_audit_incl_users 모두에 사용자를 추가할 경우 해당 사용자가 감사됩니다. 동일한 사용자가 두 설정에 모두 나열되어 있는 경우 server_audit_incl_users의 우선순위가 높습니다.

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

감사 로그 보기

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

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

또한 describe-db-log-files AWS CLI 명령을 사용하여 로그 파일 목록을 가져올 수 있습니다. download-db-log-file-portion AWS CLI 명령을 사용하여 로그 파일의 내용을 다운로드할 수 있습니다. 자세한 내용은 데이터베이스 로그 파일 보기 및 나열데이터베이스 로그 파일 다운로드 단원을 참조하십시오.

감사 로그 세부 정보

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

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

작은 정보

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

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

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

필드 설명

타임스탬프

기록된 이벤트에 대한 Unix 타임스탬프(마이크로초 단위)입니다.

serverhost

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

사용자 이름

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

host

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

connectionid

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

queryid

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

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

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

데이터베이스

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

객체

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

retcode

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