Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

자체 관리형 배포서버에서 감사 구성

이 페이지의 내용

  • 감사 출력 활성화 및 구성
  • 런타임 감사 필터 관리

참고

MongoDB Atlas에서의 감사

MongoDB Atlas 는 모든 M10 및 대규모 클러스터에 대한 감사를 지원합니다. Atlas 는 자체 관리 배포서버에서 감사 필터 구성 에 설명된 대로 JSON 형식의 감사 필터하다 를 지정하고 Atlas 감사 필터하다 빌더를 사용하여 감사 구성을 간소화할 수 있도록 지원합니다. 학습 내용은 데이터베이스 감사 설정사용자 지정 감사 필터 구성에대한 Atlas 설명서를 참조하세요.

MongoDB Enterprise는 다양한 연산에 대한 감사를 지원합니다. 완전한 감사 솔루션은 모든 mongod 서버와 mongos 라우터 프로세스를 포함해야 합니다.

감사 기능은 콘솔, 시스템 로그 ( Windows 에서는 사용할 수 없음), JSON 파일 또는 BSON 파일 에 감사 이벤트를 쓰기 (write) 수 있습니다. 감사된 작업 및 감사 로그 메시지에 대한 자세한 내용 은 자체 관리 배포서버의 시스템 이벤트 감사 메시지를 참조하세요.

MongoDB Enterprise에서 감사를 활성화하려면 감사 출력 대상을 --auditDestination으로 설정하세요.

경고

샤딩된 클러스터의 경우, mongos 인스턴스에서 감사를 활성화하면 클러스터의 mongod 인스턴스에서도 감사를 활성화해야 합니다. 모든 샤드 및 config 서버에서 mongod에 대한 감사를 구성합니다.

감사를 허용하고 감사 이벤트를 시스템 로그(Windows에서는 사용 불가)에 JSON 형식으로 출력하려면 --auditDestination 설정에 syslog를 지정합니다. 예시:

mongod --dbpath data/db --auditDestination syslog

구성에 필요한 추가 옵션을 포함합니다. 예를 들어 원격 클라이언트를 배포에 연결하거나 배포 구성원이 다른 호스트에서 실행되도록 하려면 --bind_ip 를 지정합니다.

중요

다른 IP 주소에 바인딩하기 전에 자체 관리 배포서버에 대한 보안 체크리스트에 나열된 액세스 제어 및 기타 보안 조치를 활성화하여 무단 액세스 를 방지하는 것이 좋습니다.

경고

시스템 로그 메시지 제한으로 인해 감사 메시지가 잘릴 수 있습니다. 감사 시스템은 잘림을 감지하지 못하며, 잘림이 발생함으로 인한 오류도 감지하지 못합니다.

Linux 시스템에서 메시지는 Linux 구성 파일 /etc/systemd/journald.conf 에 정의된 규칙을 따릅니다. 기본적으로 로그 메시지 버스트는 30초 동안 1000개의 메시지로 제한됩니다. 더 많은 메시지를 보려면 /etc/systemd/journald.conf에서 RateLimitBurst 매개 변수를 늘리세요.

구성 파일에서 이러한 옵션을 지정할 수도 있습니다.

storage:
dbPath: data/db
auditLog:
destination: syslog

감사를 활성화하고 감사 이벤트를 표준 결과물(예시: stdout)로 출력하려면, --auditDestination 설정에 console을 지정합니다. 예시:

mongod --dbpath data/db --auditDestination console

구성에 필요한 추가 옵션을 포함합니다. 예를 들어 원격 클라이언트를 배포에 연결하거나 배포 구성원이 다른 호스트에서 실행되도록 하려면 --bind_ip 를 지정합니다.

중요

다른 IP 주소에 바인딩하기 전에 자체 관리 배포서버에 대한 보안 체크리스트에 나열된 액세스 제어 및 기타 보안 조치를 활성화하여 무단 액세스 를 방지하는 것이 좋습니다.

구성 파일에서 이러한 옵션을 지정할 수도 있습니다.

storage:
dbPath: data/db
auditLog:
destination: console

감사를 활성화하고 감사 이벤트를 JSON 형식의 파일로 출력하려면 다음 옵션을 지정합니다.

옵션
file
JSON
출력 파일 이름입니다. 전체 경로 이름 또는 상대 경로 이름을 승인합니다.

예를 들어, 다음에서는 감사를 허용하고 상대 경로 이름이 data/db/auditLog.json인 파일에 감사 이벤트를 기록합니다.

mongod --dbpath data/db --auditDestination file --auditFormat JSON --auditPath data/db/auditLog.json

구성에 필요한 추가 옵션을 포함합니다. 예를 들어 원격 클라이언트를 배포에 연결하거나 배포 구성원이 다른 호스트에서 실행되도록 하려면 --bind_ip 를 지정합니다.

중요

다른 IP 주소에 바인딩하기 전에 자체 관리 배포서버에 대한 보안 체크리스트에 나열된 액세스 제어 및 기타 보안 조치를 활성화하여 무단 액세스 를 방지하는 것이 좋습니다.

감사 파일은 logRotate 명령을 이용해 서버 로그와 함께 또는 독립적으로 순환할 수 있습니다. systemLog.logRotate 구성 파일 옵션 또는 --logRotate 명령줄 옵션을 사용하여 순환 세부 사항을 구성할 수 있습니다.

구성 파일에서 이러한 옵션을 지정할 수도 있습니다.

storage:
dbPath: data/db
auditLog:
destination: file
format: JSON
path: data/db/auditLog.json

참고

감사 이벤트를 JSON 형식으로 파일에 출력하면 BSON 형식으로 파일에 출력하는 것보다 서버 성능이 더 저하됩니다.

감사를 활성화하고 감사 이벤트를 BSON 바이너리 형식의 파일로 출력하려면 다음 옵션을 지정합니다.

옵션
file
BSON
출력 파일 이름입니다. 전체 경로 이름 또는 상대 경로 이름을 승인합니다.

예를 들어, 다음에서는 감사를 허용하고 상대 경로 이름이 data/db/auditLog.bson인 BSON 파일에 감사 이벤트를 기록합니다.

mongod --dbpath data/db --auditDestination file --auditFormat BSON --auditPath data/db/auditLog.bson

구성에 필요한 추가 옵션을 포함합니다. 예를 들어 원격 클라이언트를 배포에 연결하거나 배포 구성원이 다른 호스트에서 실행되도록 하려면 --bind_ip 를 지정합니다.

중요

다른 IP 주소에 바인딩하기 전에 자체 관리 배포서버에 대한 보안 체크리스트에 나열된 액세스 제어 및 기타 보안 조치를 활성화하여 무단 액세스 를 방지하는 것이 좋습니다.

감사 파일은 서버 로그 파일과 동시에 rotated됩니다. systemLog.logRotate 구성 파일 옵션 또는 --logRotate 명령줄 옵션을 사용하여 순환 세부 사항을 구성할 수 있습니다.

구성 파일에서 이러한 옵션을 지정할 수도 있습니다.

storage:
dbPath: data/db
auditLog:
destination: file
format: BSON
path: data/db/auditLog.bson

다음 예시에서는 bsondump를 사용하여 감사 로그를 읽기 쉬운 형식으로 변환하고 결과를 출력합니다.

bsondump data/db/auditLog.bson

MongoDB 8.0부터 MongoDB는 OCSF 형식으로 로그 메시지를 작성할 수 있습니다. OCSF 스키마는 로그 프로세서와 호환되는 표준화된 형식의 로그를 제공합니다.

로그 메시지에 OCSF 스키마를 사용하려면 --auditSchema 옵션을 OCSF로 설정하세요. 예시:

mongod --dbpath data/db --auditDestination file --auditFormat JSON --auditPath data/db/auditLog.json --auditSchema OCSF

auditLog.schema 구성 파일 옵션에서 OCSF 스키마를 지정할 수도 있습니다.

storage:
dbPath: data/db
auditLog:
destination: file
format: JSON
path: data/db/auditLog.json
schema: OCSF

OCSF 스키마에 대한 자세한 내용은 OCSF 스키마 감사 메시지를 참조하세요.

MongoDB 5.0부터는 런타임에 감사 필터를 구성할 수 있습니다. 런타임 감사 필터 관리는 로컬 mongod 또는 mongos 구성 파일에 지정된 감사 필터 구성과 비교하여 세 가지 이점을 제공합니다.

MongoDB 5.0 이전에는 감사 필터를 업데이트하려면 MongoDB mongod 또는 mongos 인스턴스를 감사하는 사람은 호스트 서버의 파일 시스템에 대한 쓰기 권한이 있어야 했습니다. 런타임 감사 필터 관리는 감사 액세스와 관리 액세스를 분리하여 보안을 향상합니다.

구성 파일을 직접 편집하는 대신 런타임 감사 필터 관리를 사용하는 것은 다음을 의미합니다.

  • 파일 시스템 액세스는 필요하지 않으므로 감사자가 mongod 또는 mongos 호스트 서버에 액세스할 필요가 없습니다.

  • mongod 또는 mongos 인스턴스의 구성 파일에 직접 액세스할 수 없습니다.

  • 런타임 감사 필터 관리는 감사 필터auditAuthorizationSuccess 매개 변수만 노출합니다.

런타임 감사 필터 관리가 활성화된 MongoDB 5.0부터 mongod 또는 mongos 인스턴스를 다시 시작하지 않고도 런타임에 감사를 재구성할 수 있습니다. 감사 설정을 업데이트하려면 정적으로 구성된 인스턴스를 다시 시작해야 합니다.

런타임 시 수행된 감사 필터 수정 사항은 인스턴스가 종료되고 재시작되어도 유지됩니다.

클러스터 내에서 참여하는 모든 mongodmongos 노드가 런타임 감사 필터 관리를 사용하도록 구성되어 있는 경우, 모든 노드는 동일한 감사 필터를 사용합니다. 반대로 각 노드에 로컬로 구성된 자체 감사 필터가 있는 경우, 노드 전체에서 감사 필터의 일관성이 보장되지 않습니다.

MongoDB 5.0부터 mongodmongos 노드에 대한 감사 구성은 런타임에 구성할 수 있습니다. 이러한 노드 그룹은 분산 감사 구성에 참여할 수 있습니다.

분산 감사 구성에 노드를 포함하려면 다음과 같이 노드의 구성 파일을 업데이트하고 서버를 다시 시작합니다.

다음과 같은 경우 서버는 오류를 기록하고 시작되지 않습니다.

런타임에 감사 필터 및 auditAuthorizationSuccess 매개 변수를 수정하려면 auditConfig를 참조하세요.

다음도 참조하세요.

돌아가기

Auditing