자체 관리형 배포서버에서 감사 구성
이 페이지의 내용
참고
MongoDB Atlas에서의 감사
MongoDB Atlas 는 모든 M10
및 대규모 클러스터에 대한 감사를 지원합니다. Atlas 는 자체 관리 배포서버에서 감사 필터 구성 에 설명된 대로 JSON 형식의 감사 필터하다 를 지정하고 Atlas 감사 필터하다 빌더를 사용하여 감사 구성을 간소화할 수 있도록 지원합니다. 학습 내용은 데이터베이스 감사 설정 및 사용자 지정 감사 필터 구성에대한 Atlas 설명서를 참조하세요.
MongoDB Enterprise는 다양한 연산에 대한 감사를 지원합니다. 완전한 감사 솔루션은 모든 mongod
서버와 mongos
라우터 프로세스를 포함해야 합니다.
감사 기능은 콘솔, 시스템 로그 ( Windows 에서는 사용할 수 없음), JSON 파일 또는 BSON 파일 에 감사 이벤트를 쓰기 (write) 수 있습니다. 감사된 작업 및 감사 로그 메시지에 대한 자세한 내용 은 자체 관리 배포서버의 시스템 이벤트 감사 메시지를 참조하세요.
감사 출력 활성화 및 구성
MongoDB Enterprise에서 감사를 활성화하려면 감사 출력 대상을 --auditDestination
으로 설정하세요.
경고
시스템 로그로 출력
감사를 허용하고 감사 이벤트를 시스템 로그(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 파일로 출력
감사를 활성화하고 감사 이벤트를 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 파일로 출력
감사를 활성화하고 감사 이벤트를 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
OCSF 형식의 출력 메시지
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
인스턴스를 감사하는 사람은 호스트 서버의 파일 시스템에 대한 쓰기 권한이 있어야 했습니다. 런타임 감사 필터 관리는 감사 액세스와 관리 액세스를 분리하여 보안을 향상합니다.
구성 파일을 직접 편집하는 대신 런타임 감사 필터 관리를 사용하는 것은 다음을 의미합니다.
런타임 구성 가능성
런타임 감사 필터 관리가 활성화된 MongoDB 5.0부터 mongod
또는 mongos
인스턴스를 다시 시작하지 않고도 런타임에 감사를 재구성할 수 있습니다. 감사 설정을 업데이트하려면 정적으로 구성된 인스턴스를 다시 시작해야 합니다.
런타임 시 수행된 감사 필터 수정 사항은 인스턴스가 종료되고 재시작되어도 유지됩니다.
일관성
클러스터 내에서 참여하는 모든 mongod
및 mongos
노드가 런타임 감사 필터 관리를 사용하도록 구성되어 있는 경우, 모든 노드는 동일한 감사 필터를 사용합니다. 반대로 각 노드에 로컬로 구성된 자체 감사 필터가 있는 경우, 노드 전체에서 감사 필터의 일관성이 보장되지 않습니다.
런타임 감사 필터 관리 활성화
MongoDB 5.0부터 mongod
및 mongos
노드에 대한 감사 구성은 런타임에 구성할 수 있습니다. 이러한 노드 그룹은 분산 감사 구성에 참여할 수 있습니다.
분산 감사 구성에 노드를 포함하려면 다음과 같이 노드의 구성 파일을 업데이트하고 서버를 다시 시작합니다.
Parameter | 값 |
---|---|
true | |
Unset | |
Unset |
다음과 같은 경우 서버는 오류를 기록하고 시작되지 않습니다.
runtimeConfiguration
는true
이고auditLog.filter
2} 또는auditAuthorizationSuccess
가 설정됩니다.
런타임에 감사 필터 및 auditAuthorizationSuccess
매개 변수를 수정하려면 auditConfig
를 참조하세요.