문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

감사 필터 구성

이 페이지의 내용

  • 런타임에 필터 구성
  • 시스템 시작 시 필터 구성
  • 예제

참고

MongoDB Atlas에서의 감사

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

MongoDB Enterprise 는 다양한 작업에 대한 감사 를 지원합니다. 활성화 하면 감사 기능은 기본적으로 감사 이벤트 작업, 세부 정보 및 결과에 자세히 설명된 대로 감사 가능한 모든 작업을 기록합니다. 이벤트 필터를 지정하여 기록되는 이벤트를 제한할 수 있습니다. 시작 시 필터를 구성하거나 런타임 사양을 허용하도록 MongoDB를 구성할 수 있습니다.

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

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

매개변수
auditLog.runtimeConfiguration
true
Unset
Unset

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

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

감사 필터는 명령줄에서 지정하거나 mongod 또는 mongos 인스턴스를 시작하는 데 사용되는 구성 파일에서 지정할 수 있습니다.

필터는 구성 파일auditLog 세션 아래에 있는 YAML에서 지정할 수 있습니다. 샘플 구성은 아래 예시를 참조하세요.

참고

runtimeConfiguration이 활성화된 경우 구성 파일을 사용하여 감사 필터를 지정할 수 없습니다.

다음 예에서는 필터를 사용하여 createCollectiondropCollection 작업만 감사합니다:

{ atype: { $in: [ "createCollection", "dropCollection" ] } }

감사 필터를 지정하려면 필터 문서를 작은따옴표 안에 입력하고 문서를 문자열로 전달합니다.

mongod --dbpath data/db --auditDestination file --auditFilter '{ atype: { $in: [ "createCollection", "dropCollection" ] } }' --auditFormat BSON --auditPath data/db/auditLog.bson

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

구성 파일에서 감사 필터를 지정하려면 구성 파일의 YAML 형식을 사용해야 합니다.

storage:
dbPath: data/db
auditLog:
destination: file
format: BSON
path: data/db/auditLog.bson
filter: '{ atype: { $in: [ "createCollection", "dropCollection" ] } }'

<field>에는 감사 메시지의 모든 필드가 포함될 수 있습니다. 인증 작업의 경우(예: atype: "authenticate"), 감사 메시지에는 param 문서에 db 필드가 포함됩니다.

다음 예에서는 필터를 사용하여 test 데이터베이스에 대해 발생하는 authenticate 작업만 감사합니다.

{ atype: "authenticate", "param.db": "test" }

감사 필터를 지정하려면 필터 문서를 작은따옴표 안에 입력하고 문서를 문자열로 전달합니다.

mongod --dbpath data/db --auth --auditDestination file --auditFilter '{ atype: "authenticate", "param.db": "test" }' --auditFormat BSON --auditPath data/db/auditLog.bson

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

구성 파일에서 감사 필터를 지정하려면 구성 파일의 YAML 형식을 사용해야 합니다.

storage:
dbPath: data/db
security:
authorization: enabled
auditLog:
destination: file
format: BSON
path: data/db/auditLog.bson
filter: '{ atype: "authenticate", "param.db": "test" }'

데이터베이스의 모든 authenticate 작업을 필터링하려면 "param.db": "test"를 생략하고 { atype: "authenticate" } 필터를 사용합니다.

<field>에는 감사 메시지의 모든 필드가 포함될 수 있습니다. 컬렉션 생성 및 드롭 작업의 경우(예: atype: "createCollection"atype: "dropCollection"), 감사 메시지에 param 문서의 네임스페이스 ns 필드가 포함됩니다.

다음 예에서는 필터를 사용하여 test 데이터베이스에 대해 발생하는 createCollectiondropCollection 작업만 감사합니다.

참고

정규 표현식에는 점(.)을 이스케이프하기 위해 두 개의 백슬래시(\\)가 필요합니다.

{ atype: { $in: [ "createCollection", "dropCollection" ] }, "param.ns": /^test\\./ }

감사 필터를 지정하려면 필터 문서를 작은따옴표 안에 입력하고 문서를 문자열로 전달합니다.

mongod --dbpath data/db --auth --auditDestination file --auditFilter '{ atype: { $in: [ "createCollection", "dropCollection" ] }, "param.ns": /^test\\./ }' --auditFormat BSON --auditPath data/db/auditLog.bson

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

구성 파일에서 감사 필터를 지정하려면 구성 파일의 YAML 형식을 사용해야 합니다.

storage:
dbPath: data/db
security:
authorization: enabled
auditLog:
destination: file
format: BSON
path: data/db/auditLog.bson
filter: '{ atype: { $in: [ "createCollection", "dropCollection" ] }, "param.ns": /^test\\./ }'

다음 예에서는 필터를 사용하여 readWrite에서 상속한 역할을 가진 사용자를 포함하여 test 데이터베이스에서 readWrite 역할이 있는 사용자의 작업을 감사합니다:

{ roles: { role: "readWrite", db: "test" } }

감사 필터를 지정하려면 필터 문서를 작은따옴표 안에 입력하고 문서를 문자열로 전달합니다.

mongod --dbpath data/db --auth --auditDestination file --auditFilter '{ roles: { role: "readWrite", db: "test" } }' --auditFormat BSON --auditPath data/db/auditLog.bson

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

구성 파일에서 감사 필터를 지정하려면 구성 파일의 YAML 형식을 사용해야 합니다.

storage:
dbPath: data/db
security:
authorization: enabled
auditLog:
destination: file
format: BSON
path: data/db/auditLog.bson
filter: '{ roles: { role: "readWrite", db: "test" } }'

감사에서 읽기 및 쓰기 작업을 캡처하려면 감사 시스템이 auditAuthorizationSuccess 매개 변수를 사용하여 인증 성공을 기록하도록 설정해야 합니다. [1]

참고

auditAuthorizationSuccess를 사용하도록 설정하면 인증 실패만 기록하는 것보다 성능이 더 저하됩니다.

이 필터는 여러 읽기 및 쓰기 작업을 감사합니다:

{
atype: "authCheck",
"param.command": { $in: [ "find", "insert", "delete", "update", "findAndModify" ] }
}

감사 대상 작업에는 다음이 포함됩니다:

감사 필터를 지정하려면 필터 문서를 작은따옴표 안에 입력하고 문서를 문자열로 전달합니다.

mongod --dbpath data/db --auth --setParameter auditAuthorizationSuccess=true --auditDestination file --auditFilter '{ atype: "authCheck", "param.command": { $in: [ "find", "insert", "delete", "update", "findAndModify" ] } }' --auditFormat BSON --auditPath data/db/auditLog.bson

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

구성 파일에서 감사 필터를 지정하려면 구성 파일의 YAML 형식을 사용해야 합니다.

storage:
dbPath: data/db
security:
authorization: enabled
auditLog:
destination: file
format: BSON
path: data/db/auditLog.bson
filter: '{ atype: "authCheck", "param.command": { $in: [ "find", "insert", "delete", "update", "findAndModify" ] } }'
setParameter: { auditAuthorizationSuccess: true }

감사에서 읽기 및 쓰기 작업을 캡처하려면 감사 시스템이 auditAuthorizationSuccess 매개 변수를 사용하여 인증 성공을 기록하도록 설정해야 합니다. [1]

참고

auditAuthorizationSuccess를 사용하도록 설정하면 인증 실패만 기록하는 것보다 성능이 더 저하됩니다.

이 필터는 test 데이터베이스의 orders 컬렉션에 대한 여러 읽기 및 쓰기 작업을 감사합니다.

{
atype: "authCheck",
"param.ns": "test.orders",
"param.command": { $in: [ "find", "insert", "delete", "update", "findAndModify" ] }
}

감사 대상 작업에는 다음이 포함됩니다:

감사 필터를 지정하려면 필터 문서를 작은따옴표 안에 입력하고 문서를 문자열로 전달합니다.

mongod --dbpath data/db --auth --setParameter auditAuthorizationSuccess=true --auditDestination file --auditFilter '{ atype: "authCheck", "param.ns": "test.orders", "param.command": { $in: [ "find", "insert", "delete", "update", "findAndModify" ] } }' --auditFormat BSON --auditPath data/db/auditLog.bson

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

구성 파일에서 감사 필터를 지정하려면 구성 파일의 YAML 형식을 사용해야 합니다.

storage:
dbPath: data/db
security:
authorization: enabled
auditLog:
destination: file
format: BSON
path: data/db/auditLog.bson
filter: '{ atype: "authCheck", "param.ns": "test.orders", "param.command": { $in: [ "find", "insert", "delete", "update", "findAndModify" ] } }'
setParameter: { auditAuthorizationSuccess: true }

[1](1, 2) --auth를 활성화하지 않고 auditAuthorizationSuccess 매개 변수를 활성화할 수 있지만, 모든 작업이 권한 확인에 대해 성공을 반환합니다.
← 감사 구성