자체 관리 배포서버 감사
이 페이지의 내용
참고
MongoDB Atlas에서의 감사
MongoDB Atlas는 M10
및 대규모 클러스터에 대한 감사를 지원합니다. 자세한 내용은 MongoDB Atlas 문서의 데이터베이스 감사 설정을 참조하세요.
MongoDB Enterprise에는 mongod
및 mongos
인스턴스에 대한 감사 기능이 포함되어 있습니다. 감사 기능을 사용하면 관리자와 사용자가 여러 사용자 및 애플리케이션이 있는 배포에 대한 시스템 활동을 추적할 수 있습니다.
감사 출력 활성화 및 구성
감사 기능은 콘솔, syslog, JSON 파일 또는 BSON 파일에 감사 이벤트를 기록할 수 있습니다. MongoDB Enterprise에서 감사를 활성화하려면 --auditDestination
을 사용하여 감사 출력 대상을 설정하세요. 자세한 내용은 자체 관리형 배포서버에서 감사 구성하기를 참조하세요.
감사 로그 메시지에 대한 자세한 내용은 자체 관리 배포서버의 시스템 이벤트 감사 메시지를 참조하세요.
감사 이벤트 및 필터
감사 이벤트가 활성화되면 다음과 같은 작업을 기록할 수 있습니다. [1]
스키마(DDL),
복제본 세트 및 샤딩된 클러스터,
인증 및 권한 부여, 그리고
CRUD 작업(
auditAuthorizationSuccess
을true
로 설정해야 함)
참고
MongoDB 5.0부터 세컨더리는 복제된 변경 사항에 대한 DDL 감사 이벤트를 기록하지 않습니다. DDL 감사 이벤트는 여전히 로컬 데이터베이스와 system.profile
컬렉션을 수정하는 DDL 작업에 대해 기록됩니다.
감사된 작업에 대한 자세한 내용은 감사 이벤트 작업, 세부 정보 및 결과를 참조하세요.
감사 시스템을 통해 캡처할 이벤트를 제한하는 필터를 설정할 수 있습니다. 필터 설정 방법은 자체 관리형 배포서버에서 감사 필터 구성하기를 참조하세요.
[1] | 중단된 트랜잭션내의 작업은 여전히 감사 이벤트를 생성합니다. 그러나 트랜잭션이 중단되었음을 나타내는 감사 이벤트는 없습니다. |
감사 보증
감사 시스템은 모든 감사 이벤트[2]를 감사 이벤트의 인메모리 버퍼에 기록합니다. MongoDB는 이 버퍼를 주기적으로 디스크에 기록합니다. 단일 연결에서 수집된 이벤트의 경우, 이벤트에는 전체 순서를 가집니다. 즉, MongoDB가 하나의 이벤트를 디스크에 기록하는 경우, 시스템은 해당 연결에 대한 모든 이전 이벤트를 디스크에 기록했음을 보장합니다.
감사 이벤트 항목이 데이터 수정과 같이 데이터베이스의 내구성 상태에 영향을 미치는 작업에 해당하는 경우, MongoDB는 해당 항목의 저널에 기록하기 전에 항상 감사 이벤트를 디스크에 기록합니다.
즉, 저널에 작업을 추가하기 전에 MongoDB는 작업을 발생시킨 연결에 대한 모든 감사 이벤트를 해당 작업의 항목까지 포함하여 기록합니다.
이러한 감사를 보장하려면 journaling
이 활성화된 상태에서 MongoDB를 실행해야 합니다.
경고
만약 이벤트를 감사 로그에 커밋하기 전에 서버가 종료되면 MongoDB는 이벤트를 잃을 수 있습니다. 클라이언트는 MongoDB가 감사 로그를 커밋하기 전에 이벤트 확인을 받을 수 있습니다. 예를 들어 집계 작업을 감사하는 동안 서버는 결과를 반환한 후 감사 로그가 플러시(flush)되기 전에 종료될 수 있습니다.
또한 서버가 audit destination
의 감사 로그에 기록할 수 없는 경우, 서버는 종료됩니다.
[2] | 감사 구성에는 감사할 이벤트를 제한하는 필터가 포함될 수 있습니다. |