문서 메뉴

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

구성 파일 옵션

이 페이지의 내용

  • 구성 파일
  • 파일 형식
  • 구성 파일 사용
  • 주요 옵션
  • systemLog 옵션
  • processManagement 옵션
  • net 옵션
  • security 옵션
  • setParameter 옵션
  • storage 옵션
  • operationProfiling 옵션
  • replication 옵션
  • sharding 옵션
  • auditLog 옵션
  • mongos -전용 옵션
  • Windows 서비스 옵션
  • Removed MMAPv1 Options

다음 페이지에서는 MongoDB 7.0에서 사용할 수 있는 구성 옵션에 대해 설명합니다. 다른 버전의 MongoDB에 대한 구성 파일 옵션은 해당 버전의 MongoDB 매뉴얼을 참조하십시오.

참고

MongoDB Atlas를 사용하여 클라우드에서 MongoDB 배포를 관리하는 경우 구성 파일을 만들 필요가 없습니다. MongoDB Atlas 배포서버에 대한 설정을 구성하는 방법을 알아보려면 추가 설정 구성을 참조하세요.

구성 파일 옵션을 사용하는 것 외에도 MongoDB 바이너리의 기본값 구성에서는 운영 체제 환경 변수도 사용합니다.

구성 파일을 사용하여 시작할 때 mongodmongos 인스턴스를 구성할 수 있습니다. 구성 파일에는 mongodmongos 명령줄 옵션에 해당하는 설정이 포함되어 있습니다. 구성 파일 설정 및 명령줄 옵션 매핑을 참조하십시오.

구성 파일을 사용하면 특히 대규모 배포의 경우 mongodmongos 옵션을 더 쉽게 관리할 수 있습니다. 구성 파일에 설명을 추가하여 서버 설정을 설명할 수도 있습니다.

  • Linux에서 yum 또는 apt, macOS에서 brew 와 같은 패키지 관리자를 사용하거나 Windows에서 MSI 설치 관리자를 사용하여 MongoDB를 설치한 경우, 기본 구성 파일이 설치의 일부로 제공되었습니다:

    플랫폼
    메서드
    구성 파일
    Linux
    apt, yum 또는 zypper 패키지 관리자
    /etc/mongod.conf
    macOS
    brew 패키지 관리자
    Windows
    MSI 설치 관리자
    <install directory>\bin\mongod.cfg
  • 다운로드한 TGZ 또는 ZIP 파일을 통해 MongoDB를 설치 한 경우 자체 구성 파일을 만들어야 합니다. 기본 예제 구성 은 시작하기에 좋은 출발점입니다.

MongoDB 구성 파일은 YAML 을 사용합니다. 형식 [1] .

다음 샘플 구성 파일에는 로컬 구성에 맞게 조정할 수 있는 몇 가지 mongod 설정이 포함되어 있습니다.

참고

YAML은 들여쓰기에 탭 문자를 지원하지 않으므로 대신 공백을 사용하세요.

systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
logAppend: true
processManagement:
fork: true
net:
bindIp: 127.0.0.1
port: 27017
setParameter:
enableLocalhostAuthBypass: false
...

공식 MongoDB 패키지에 포함된 Linux 패키지 init 스크립트는 systemLog.path, storage.dbPathprocessManagement.fork 에 대한 특정 값에 따라 달라집니다. 기본 구성 파일에서 이러한 설정을 수정하면 mongod 가 시작되지 않을 수 있습니다.

[1] YAML은 JSON의 상위 집합입니다.

버전 4.2에 새로 추가됨: MongoDB는 구성 파일에서 확장 지시문을 사용하여 외부 소스 값을 로드하는 기능을 지원합니다. 확장 지시문은 특정 구성 파일 옵션의 값을 로드하거나 또는 전체 구성 파일을 로드할 수 있습니다.

다음과 같은 확장 지시어를 사용할 수 있습니다:

확장 지시문
설명

사용자가 REST 끝점을 구성 파일 옵션 또는 전체 구성 파일의 외부 소스로 지정할 수 있습니다.

구성 파일에 __rest 확장이 포함된 경우 Linux/macOS에서 구성 파일에 대한 읽기 액세스는 mongod / mongos 프로세스를 실행하는 사용자로만 제한되어야 합니다.

사용자가 구성 파일 옵션 또는 전체 구성 파일의 외부 소스로 셸 또는 터미널 명령을 지정할 수 있습니다.

구성 파일에 __exec 확장이 포함된 경우 Linux/macOS에서 구성 파일에 대한 쓰기 액세스는 mongod / mongos 프로세스를 실행하는 사용자로만 제한되어야 합니다.

전체 설명서는 외부 소스 구성 파일 값을 참조하세요.

구성 파일을 사용하여 mongod 또는 mongos 구성하려면 다음 예에서와 같이 --config 옵션 또는 -f 옵션으로 구성 파일을 지정합니다:

예를 들어 다음은 mongod --config <configuration file> 사용합니다. mongos --config <configuration file>:

mongod --config /etc/mongod.conf
mongos --config /etc/mongos.conf

다음과 같이 -f 별칭을 사용하여 구성 파일을 지정할 수도 있습니다.

mongod -f /etc/mongod.conf
mongos -f /etc/mongos.conf

패키지에서 설치하고 시스템의 init 스크립트를 사용하여 MongoDB를 시작한 경우 이미 구성 파일을 사용하고 있는 것입니다.

구성 파일에서 확장 --configExpand 디렉티브를 사용하는 경우 또는 시작 mongod 시 옵션을 mongos 포함해야 합니다. 예를 들면 다음과 같습니다.

mongod --config /etc/mongod.conf --configExpand "rest,exec"
mongos --config /etc/mongos.conf --configExpand "rest,exec"

설정파일에 확장 지시어가 포함되어 있고 mongod /mongos를 시작할 때--configExpand옵션에 해당 지시어를 지정하지 않고 / 시작하고 옵션에 해당 지시어를 지정하지 않으면 mongod / mongos 시작하지 못한다.

전체 설명서는 외부 소스 구성 파일 값을 참조하세요.

systemLog:
verbosity: <int>
quiet: <boolean>
traceAllExceptions: <boolean>
syslogFacility: <string>
path: <string>
logAppend: <boolean>
logRotate: <string>
destination: <string>
timeStampFormat: <string>
component:
accessControl:
verbosity: <int>
command:
verbosity: <int>
# COMMENT additional component verbosity settings omitted for brevity
systemLog.verbosity

유형: integer

기본값: 0

구성 요소에 대한 기본 로그 메시지 상세도 수준입니다. 상세도 수준에 따라 MongoDB가 출력하는 정보 및 디버그 메시지의 양이 결정됩니다. [2]

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

명명된 구성 요소에 대해 다른 상세도 수준을 사용하려면 구성 요소의 상세도 설정을 사용합니다. 예를 들어 systemLog.component.accessControl.verbosity 를 사용하여 ACCESS 구성 요소에 대한 상세도 수준을 구체적으로 설정합니다.

특정 컴포넌트 상세도 설정에 대해서는 systemLog.component.<name>.verbosity 설정을 참조하세요.

로그 상세도 수준을 설정하는 다양한 방법은 로그 상세도 수준 구성을 참조하세요.

[2] 버전 4.2부터 MongoDB는 로그 메시지에 디버그 상세도 수준(1~5)을 포함합니다. 예를 들어, 상세도 수준이 2인 경우 MongoDB는 D2을(를) 기록합니다. 이전 버전에서는 MongoDB 로그 메시지에 디버그 수준에 D만 지정되었습니다.
systemLog.quiet

유형: 부울

기본값: false

mongos 2} 또는 를 출력량을 제한하는 조용한 모드로 실행합니다.mongod

systemLog.quiet 는 특정 연결 중 추적 문제를 훨씬 더 어렵게 만들 수 있으므로 프로덕션 시스템에는 권장 되지 않습니다 .

systemLog.traceAllExceptions

유형: 부울

기본값: false

Print verbose information for debugging. Use for additional logging for support-related troubleshooting.

systemLog.syslogFacility

유형: 문자열

기본값: 사용자

시스템 로그에 메시지를 기록할 때 사용되는 기능 수준입니다. 지정한 값은 운영 체제의 syslog 구현에서 지원되어야 합니다. 이 옵션을 사용하려면 systemLog.destinationsyslog 로 설정해야 합니다.

systemLog.path

유형: 문자열

2} 또는 mongos 모든 진단 로깅 정보를 표준 출력이나 호스트의 syslog가 아닌mongod또는 가 보내야 하는 로그 파일의 경로입니다. MongoDB는 지정된 경로에 로그 파일을 생성합니다.

Linux 패키지 초기화 스크립트는 systemLog.path 가 기본값에서 변경될 것으로 예상하지 않습니다. Linux 패키지를 사용하고 systemLog.path 을(를) 변경하는 경우 자체 초기화 스크립트를 사용하고 내장 스크립트를 비활성화해야 합니다.

systemLog.logAppend

유형: 부울

기본값: false

인스턴스가 다시 시작될 때 true mongos 또는 mongod 가 기존 로그 파일 끝에 새 항목을 추가합니다. 이 옵션을 사용하지 않으면 mongod 또는 mongos 가 기존 로그를 백업하고 새 파일을 만듭니다.

systemLog.logRotate

유형: 문자열

기본값: 이름 바꾸기

서버 로그 및/또는 감사 로그를 회전할 때 logRotate 명령의 동작을 결정합니다. 3} 또는 rename reopen를 지정합니다:

  • rename 로그 파일의 이름을 변경합니다.

  • reopen 일반적인 Linux/Unix 로그 회전 동작에 따라 로그 파일을 닫았다가 다시 엽니다. Linux/유닉스 로그 로테이트 유틸리티를 사용할 때는 reopen을 사용하여 로그 손실을 방지하세요.

    reopen 을 지정하는 경우 systemLog.logAppendtrue 로 설정해야 합니다.

systemLog.destination

유형: 문자열

MongoDB가 모든 로그 출력을 전송하는 대상입니다. file 또는 syslog 을 지정합니다. file 를 지정하는 경우 systemLog.path 도 지정해야 합니다.

systemLog.destination 을 지정하지 않으면 MongoDB는 모든 로그 출력을 표준 출력으로 보냅니다.

경고

syslog 데몬은 MongoDB가 메시지를 발행할 때가 아니라 메시지를 기록할 때 타임스탬프를 생성합니다. 이로 인해 특히 시스템 부하가 심한 경우 로그 항목에 대해 잘못된 타임스탬프가 발생할 수 있습니다. 정확한 타임스탬프를 보장하려면 프로덕션 시스템에 대해 file 옵션을 사용하는 것이 좋습니다.

systemLog.timeStampFormat

유형: 문자열

기본값: ISO8601-local

로그 메시지의 타임스탬프에 사용되는 시간 형식입니다. 다음 값 중 하나를 지정하세요.

설명
iso8601-utc
ISO-8601 형식의 협정 세계시(UTC)로 타임스탬프를 표시합니다. 예를 들어, 에포크가 시작되는 시점의 뉴욕의 경우입니다. 1970-01-01T00:00:00.000Z
iso8601-local
ISO-8601 형식의 현지 시간으로 타임스탬프를 표시합니다. 예를 들어, 에포크가 시작될 때 뉴욕의 경우는 다음과 같습니다. 1969-12-31T19:00:00.000-05:00

참고

systemLog.timeStampFormat 은(는) 더 이상 ctime 을(를) 지원하지 않습니다. ctime 형식의 날짜의 예는 다음과 같습니다: Wed Dec 31 18:17:54.811.

systemLog:
component:
accessControl:
verbosity: <int>
command:
verbosity: <int>
# COMMENT some component verbosity settings omitted for brevity
replication:
verbosity: <int>
election:
verbosity: <int>
heartbeats:
verbosity: <int>
initialSync:
verbosity: <int>
rollback:
verbosity: <int>
storage:
verbosity: <int>
journal:
verbosity: <int>
recovery:
verbosity: <int>
write:
verbosity: <int>

참고

버전 4.2부터 MongoDB는 로그 메시지에 디버그 상세도 수준(1~5)을 포함합니다. 예를 들어, 상세도 수준이 2인 경우 MongoDB는 D2을(를) 기록합니다. 이전 버전에서는 MongoDB 로그 메시지에 디버그 수준에 D만 지정되었습니다.

systemLog.component.accessControl.verbosity

유형: integer

기본값: 0

액세스 제어와 관련된 구성 요소에 대한 로그 메시지 상세도 수준입니다. ACCESS 구성요소를 참조하세요.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.command.verbosity

유형: integer

기본값: 0

명령과 관련된 구성 요소에 대한 로그 메시지의 자세한 수준입니다. COMMAND 구성요소를 참조하세요.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.control.verbosity

유형: integer

기본값: 0

제어 작업과 관련된 구성 요소에 대한 로그 메시지 상세도 수준입니다. CONTROL 구성요소를 참조하세요.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.ftdc.verbosity

유형: integer

기본값: 0

진단 데이터 수집 작업과 관련된 구성 요소에 대한 로그 메시지 상세 수준입니다. FTDC 구성 요소를 참조하십시오.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.geo.verbosity

유형: integer

기본값: 0

지리 공간 구문 분석 작업과 관련된 구성 요소에 대한 로그 메시지 세부 정보 표시 수준입니다. GEO 구성 요소를 참조하십시오.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.index.verbosity

유형: integer

기본값: 0

인덱싱 작업과 관련된 구성 요소에 대한 로그 메시지 상세도 수준입니다. INDEX 구성요소를 참조하세요.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.network.verbosity

유형: integer

기본값: 0

네트워킹 작업과 관련된 구성 요소에 대한 로그 메시지 상세도 수준입니다. NETWORK 구성요소를 참조하세요.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.query.verbosity

유형: integer

기본값: 0

쿼리 작업과 관련된 구성 요소에 대한 로그 메시지 상세도 수준입니다. QUERY 구성 요소를 참조하십시오.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.replication.verbosity

유형: integer

기본값: 0

복제와 관련된 구성 요소에 대한 로그 메시지 세부 정보 표시 수준입니다. REPL 구성 요소를 참조하십시오.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.replication.election.verbosity

유형: integer

기본값: 0

버전 4.2에 추가되었습니다.

선택과 관련된 구성 요소에 대한 로그 메시지 상세 수준입니다. ELECTION 구성요소를 참조하세요.

systemLog.component.replication.election.verbosity 을 설정하지 않으면 { systemLog.component.replication.verbosity 수준이 투표 구성 요소에도 적용됩니다.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.replication.heartbeats.verbosity

유형: integer

기본값: 0

하트비트와 관련된 구성 요소에 대한 로그 메시지 상세 수준입니다. REPL_HB 구성요소를 참조하세요.

systemLog.component.replication.heartbeats.verbosity 이 설정되지 않은 경우 systemLog.component.replication.verbosity 수준이 하트비트 구성 요소에도 적용됩니다.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.replication.initialSync.verbosity

유형: integer

기본값: 0

버전 4.2에 추가되었습니다.

초기 동기화와 관련된 컴포넌트에 대한 로그 메시지 상세도 수준입니다. INITSYNC 구성요소를 참조하세요.

systemLog.component.replication.initialSync.verbosity 을 설정하지 않으면 { systemLog.component.replication.verbosity 수준이 initialSync 구성 요소에도 적용됩니다.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.replication.rollback.verbosity

유형: integer

기본값: 0

롤백과 관련된 구성 요소에 대한 로그 메시지 상세 수준입니다. ROLLBACK 구성요소를 참조하세요.

systemLog.component.replication.rollback.verbosity 을 설정하지 않으면 { systemLog.component.replication.verbosity 수준이 롤백 구성 요소에도 적용됩니다.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.sharding.verbosity

유형: integer

기본값: 0

샤딩과 관련된 구성 요소에 대한 로그 메시지 상세 수준입니다. SHARDING 구성 요소를 참조하십시오.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.storage.verbosity

유형: integer

기본값: 0

스토리지와 관련된 구성요소에 대한 로그 메시지 상세 수준입니다. STORAGE 구성요소를 참조하세요.

systemLog.component.storage.journal.verbosity 이 설정되지 않은 경우 systemLog.component.storage.verbosity 수준이 저널링 구성 요소에도 적용됩니다.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.storage.journal.verbosity

유형: integer

기본값: 0

저널링과 관련된 구성 요소의 로그 메시지 상세 수준입니다. JOURNAL 구성 요소를 참조하십시오.

systemLog.component.storage.journal.verbosity 이 설정되지 않은 경우 저널링 구성 요소는 상위 스토리지 구성 요소와 동일한 상세 수준(예: 설정된 경우 systemLog.component.storage.verbosity 수준 또는 기본 상세 수준)을 갖습니다.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.storage.recovery.verbosity

유형: integer

기본값: 0

버전 4.0에 추가.

복구와 관련된 구성 요소에 대한 로그 메시지 상세 수준입니다. RECOVERY 구성요소를 참조하세요.

systemLog.component.storage.recovery.verbosity 을 설정하지 않으면 { systemLog.component.storage.verbosity 수준이 복구 구성 요소에도 적용됩니다.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.storage.wt.verbosity

유형: integer

기본값: -1

버전 5.3에 추가.

WiredTiger 스토리지 엔진과 관련된 구성 요소에 대한 로그 메시지 상세도 수준입니다. WT 구성요소를 참조하세요.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.storage.wt.wtBackup.verbosity

유형: integer

기본값: -1

버전 5.3에 추가.

WiredTiger 스토리지 엔진에서 수행하는 백업 작업과 관련된 구성 요소에 대한 로그 메시지 상세도 수준입니다. WTBACKUP 구성요소를 참조하세요.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.storage.wt.wtCheckpoint.verbosity

유형: integer

기본값: -1

버전 5.3에 추가.

WiredTiger 스토리지 엔진에서 수행하는 체크포인트 작업과 관련된 구성 요소에 대한 로그 메시지 세부 정보입니다. WTCHKPT 구성 요소를 참조하십시오.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.storage.wt.wtCompact.verbosity

유형: integer

기본값: -1

버전 5.3에 추가.

와이어드타이거 스토리지 엔진이 수행하는 압축 작업과 관련된 구성 요소에 대한 로그 메시지 상세 정보입니다. WTCMPCT 구성요소를 참조하세요.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.storage.wt.wtEviction.verbosity

유형: integer

기본값: -1

버전 5.3에 추가.

WiredTiger 스토리지 엔진에서 수행하는 퇴거 작업과 관련된 구성 요소에 대한 로그 메시지 상세 정보입니다. WTEVICT 구성요소를 참조하세요.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.storage.wt.wtHS.verbosity

유형: integer

기본값: -1

버전 5.3에 추가.

와이어드타이거 스토리지 엔진이 수행하는 히스토리 저장소 작업과 관련된 구성 요소에 대한 로그 메시지 상세 정보입니다. WTHS 구성요소를 참조하세요.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.storage.wt.wtRecovery.verbosity

유형: integer

기본값: -1

버전 5.3에 추가.

WiredTiger 스토리지 엔진에서 수행하는 복구 작업과 관련된 구성 요소에 대한 로그 메시지 상세 정보입니다. WTRECOV 구성요소를 참조하세요.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.storage.wt.wtRTS.verbosity

유형: integer

기본값: -1

버전 5.3에 추가.

WiredTiger 스토리지 엔진에서 수행하는 안정적인 작업으로의 롤백 (RTS) 작업과 관련된 구성 요소에 대한 로그 메시지 상세 정보입니다. WTRTS 구성 요소를 참조하십시오.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.storage.wt.wtSalvage.verbosity

유형: integer

기본값: -1

버전 5.3에 추가.

와이어드타이거 스토리지 엔진이 수행하는 복구 작업과 관련된 구성 요소에 대한 로그 메시지 상세 정보입니다. WTSLVG 구성요소를 참조하세요.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.storage.wt.wtTiered.verbosity

유형: integer

기본값: -1

버전 5.3에 추가.

WiredTiger 스토리지 엔진에서 수행하는 계층형 스토리지 작업과 관련된 구성 요소에 대한 로그 메시지 상세 정보입니다. WTTIER 구성요소를 참조하세요.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.storage.wt.wtTimestamp.verbosity

유형: integer

기본값: -1

버전 5.3에 추가.

WiredTiger 스토리지 엔진에서 사용하는 타임스탬프와 관련된 구성 요소에 대한 로그 메시지 상세 정보입니다. WTTS 구성요소를 참조하세요.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.storage.wt.wtTransaction.verbosity

유형: integer

기본값: -1

버전 5.3에 추가.

와이어드타이거 스토리지 엔진이 수행하는 트랜잭션 작업과 관련된 구성 요소에 대한 로그 메시지 상세 정보입니다. WTTXN 구성 요소를 참조하십시오.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.storage.wt.wtVerify.verbosity

유형: integer

기본값: -1

버전 5.3에 추가.

WiredTiger 스토리지 엔진이 수행하는 검증 작업과 관련된 구성 요소에 대한 로그 메시지 상세 정보입니다. WTVRFY 구성요소를 참조하세요.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.storage.wt.wtWriteLog.verbosity

유형: integer

기본값: -1

버전 5.3에 추가.

WiredTiger 스토리지 엔진에서 수행하는 로그 쓰기 작업과 관련된 구성 요소에 대한 로그 메시지 상세도입니다. WTWRTLOG 구성 요소를 참조하십시오.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.transaction.verbosity

유형: integer

기본값: 0

버전 4.0.2에 추가되었습니다.

트랜잭션과 관련된 구성 요소에 대한 로그 메시지 상세 수준입니다. TXN 구성 요소를 참조하십시오.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

systemLog.component.write.verbosity

유형: integer

기본값: 0

쓰기 작업과 관련된 구성 요소에 대한 로그 메시지 세부 정보 표시 수준입니다. WRITE 구성 요소를 참조하십시오.

상세도 수준은 0 에서 5 사이의 범위입니다.

  • 0정보 메시지를 포함하기 위한 MongoDB의 기본 로그 상세도 수준입니다.

  • 1 5 로 설정하면 디버그 메시지를 포함하도록 상세 수준이 높아집니다.

processManagement:
fork: <boolean>
pidFilePath: <string>
timeZoneInfo: <string>
processManagement.fork

유형: 부울

기본값: false

백그라운드에서 mongos 또는 mongod 프로세스를 실행하는 데몬 모드를 활성화합니다. 기본적으로 mongos 또는 mongod 는 데몬으로 실행되지 않습니다. mongos 또는 mongod 를 데몬으로 사용하려면 processManagement.fork 을 설정하거나 데몬화 프로세스를 처리하는 제어 프로세스(예: systemd)를 사용합니다.

processManagement.fork 옵션은 Windows에서 지원되지 않습니다.

Linux 패키지 초기화 스크립트는 processManagement.fork 가 기본값에서 변경될 것으로 예상하지 않습니다. Linux 패키지를 사용하고 processManagement.fork 을(를) 변경하는 경우 자체 초기화 스크립트를 사용하고 내장 스크립트를 비활성화해야 합니다.

processManagement.pidFilePath

유형: 문자열

mongos 또는 mongod 프로세스의 프로세스 ID(PID)를 저장할 파일 위치를 지정합니다. mongod 또는 mongos 프로세스를 실행하는 사용자는 이 경로에 쓸 수 있어야 합니다. processManagement.pidFilePath 옵션을 지정하지 않으면 프로세스에서 PID 파일을 생성하지 않습니다. 이 옵션은 일반적으로 processManagement.fork 설정과 함께 사용할 때만 유용합니다.

참고

Linux

Linux에서 PID 파일 관리는 일반적으로 배포판의 init 시스템에서 담당합니다(일반적으로 /etc/init.d 디렉토리의 서비스 파일 또는 systemctl 로 등록된 시스템 단위 파일). 이러한 init 시스템 중 하나를 사용하지 않는 경우에만 processManagement.pidFilePath 옵션을 사용합니다. 자세한 내용은 운영 체제의 해당 설치 가이드 를 참조하세요.

참고

macOS

macOS에서 PID 파일 관리는 일반적으로 brew 에서 처리합니다. macOS 시스템에서 brew 를 사용하지 않는 경우에만 processManagement.pidFilePath 옵션을 사용합니다. 자세한 내용은 운영 체제의 해당 설치 가이드를 참조하세요.

processManagement.timeZoneInfo

유형: 문자열

시간대 데이터베이스를 로드할 전체 경로입니다. 이 옵션을 제공하지 않으면 MongoDB는 내장된 시간대 데이터베이스를 사용합니다.

Linux 및 macOS 패키지에 포함된 구성 파일은 기본적으로 구역 데이터베이스 경로를 /usr/share/zoneinfo로 설정합니다.

기본 제공 시간대 데이터베이스는 Olson/IANA 시간대 데이터베이스 의 복사본입니다. . MongoDB 릴리스와 함께 업데이트되지만 시간대 데이터베이스 릴리스 주기는 MongoDB 릴리스 주기와 다릅니다. 시간대 데이터베이스의 최신 릴리스는 다운로드 사이트 에서 사용할 수 있습니다. .

경고

MongoDB는 타사 timelib 를 사용합니다. 라이브러리를 사용하여 시간대 간의 정확한 변환을 제공합니다. 최근timelib 업데이트로 인해 버전의 MongoDB에서 구역 변환이 정확하지 않을 수 있습니다.

이전 MongoDB 버전의 시간대 5 데이터베이스에0 447 4명시적으로2 14연결합니다. , . . 및 . .timeZoneInfo,시간대 데이터베이스 다운로드 . 매개변수를 사용합니다.

버전 4.2에서 변경: MongoDB 4.2에서는 동일한 기능을 가진 tls 옵션을 대신하여 ssl 옵션을 더 이상 사용하지 않습니다.

버전 5.0에서 변경: MongoDB는 net.serviceExecutor 구성 옵션과 해당 --serviceExecutor 명령줄 옵션을 제거합니다.

net:
port: <int>
bindIp: <string>
bindIpAll: <boolean>
maxIncomingConnections: <int>
wireObjectCheck: <boolean>
ipv6: <boolean>
unixDomainSocket:
enabled: <boolean>
pathPrefix: <string>
filePermissions: <int>
tls:
certificateSelector: <string>
clusterCertificateSelector: <string>
mode: <string>
certificateKeyFile: <string>
certificateKeyFilePassword: <string>
clusterFile: <string>
clusterPassword: <string>
CAFile: <string>
clusterCAFile: <string>
clusterAuthX509:
attributes: <string>
extensionValue: <string>
CRLFile: <string>
allowConnectionsWithoutCertificates: <boolean>
allowInvalidCertificates: <boolean>
allowInvalidHostnames: <boolean>
disabledProtocols: <string>
FIPSMode: <boolean>
logVersions: <string>
compression:
compressors: <string>
net.port

유형: integer

기본값:

MongoDB 인스턴스가 클라이언트 연결 수신을 대기하는 TCP 포트입니다.

버전 7.0.3에서 변경됨: net.port 옵션은 0~65535의 값 범위를 허용합니다. 포트를 0으로 설정하면 mongos 또는 mongod가 운영 체제에서 할당한 임의 포트를 사용하도록 구성됩니다.

net.bindIp

유형: 문자열

기본값: localhost

2} 또는 가 클라이언트 연결을 수신 대기해야 mongos mongod 하는 호스트 이름 및/또는 IP 주소 및/또는 전체 Unix 도메인 소켓 경로입니다. 모든 인터페이스에 mongos 또는 mongod 를 연결할 수 있습니다. 여러 주소를 바인딩하려면 쉼표로 구분된 값 목록을 입력하세요.

예제

localhost,/tmp/mongod.sock

IPv4와 IPv6 주소를 모두 지정하거나, IPv4 또는 IPv6 주소로 해결되는 호스트 이름을 지정할 수 있습니다.

예제

localhost, 2001:0DB8:e132:ba26:0d5c:2774:e7f9:d513

참고

IPv6 주소 또는 IPv6 주소로 확인되는 호스트 이름을 net.bindIp 로 지정하는 경우 mongos 또는 mongodnet.ipv6 : true 로 시작해야 IPv6 지원을 활성화할 수 있습니다. IPv6 주소를 net.bindIp 에 지정해도 IPv6 지원이 활성화되지 않습니다.

링크-로컬 IPv6 주소 fe80::/10를 지정하는 경우 ( ), 구역 인덱스 를 추가해야 fe80::<address>%<adapter-name> 합니다. 해당 주소로 연결합니다(예: ).

예제

localhost,fe80::a00:27ff:fee0:1fcf%enp0s3

중요

변경된 IP 주소로 인해 구성이 업데이트되는 것을 방지하려면 IP 주소 대신 DNS 호스트 이름을 사용하세요. 특히 복제본 세트 구성원 또는 샤드 클러스터 구성원을 구성할 때 IP 주소 대신 DNS 호스트 이름을 사용하는 것이 중요합니다.

IP 주소 대신 호스트 이름을 사용하여 분할된 네트워크 범위에 걸쳐 클러스터를 구성합니다. MongoDB 5 부터 시작.0, IP 주소로만 구성된 노드는 시작 유효성 검사에 실패하여 시작되지 않습니다.

경고

공개적으로 액세스할 수 있는 IP 주소에 인스턴스를 바인딩하기 전에 무단 액세스로부터 클러스터를 보호해야 합니다. 보안 권장 사항의 전체 목록은 보안 검사 목록을 참조하세요. 최소한으로 인증을 활성화하고 네트워크 인프라를 강화하는 것을 고려하세요.

IP 바인딩에 대한 자세한 내용은 IP 바인딩 설명서를 참조하십시오.

모든 IPv4 주소에 바인딩하려면 0.0.0.0 ~을 입력하세요.

모든 IPv4 및 IPv6 주소에 ::,0.0.0.0 4바인딩하려면 MongoDB 에서 또는2 "*"시작을 입력합니다. , 별표 ( YAML 별칭 net.bindIpAll 노드 와 구분하기 위해 별표를 따옴표로 묶습니다. ). 또는 설정을 사용합니다.

참고

분할 수평 DNS 에 대한 클러스터 노드를 구성하려면 , IP 주소 대신 호스트 이름을 사용하세요.

MongoDB v5.0부터 replSetInitiatereplSetReconfig 호스트 이름 대신 IP 주소를 사용하는 구성을 거부합니다.

호스트 이름을 사용하도록 업데이트할 수 없는 노드를 수정하려면 disableSplitHorizonIPCheck 사용합니다. 이 매개변수는 구성 명령에만 적용됩니다.

mongodmongos 는 시작 시 유효성 검사를 위해 disableSplitHorizonIPCheck 에 의존하지 않습니다. 호스트 이름 대신 IP 주소를 사용하는 레거시 mongodmongos 인스턴스는 업그레이드 후 시작할 수 있습니다.

IP 주소로 구성된 인스턴스는 IP 주소 대신 호스트 이름을 사용하라는 경고를 기록합니다.

net.bindIpAll

유형: 부울

기본값: false

true이면 mongos 또는 mongod 인스턴스가 모든 IPv4 주소(예: 0.0.0.0)에 바인딩됩니다. mongos 또는 mongodnet.ipv6 : true 로 시작하면 net.bindIpAll 도 모든 IPv6 주소(예: ::)에 바인딩됩니다.

mongos 또는 mongodnet.ipv6 : true 로 시작하는 경우 IPv6 만 지원합니다. net.bindIpAll 만 지정해도 IPv6 지원이 활성화되지 않습니다.

경고

공개적으로 액세스할 수 있는 IP 주소에 인스턴스를 바인딩하기 전에 무단 액세스로부터 클러스터를 보호해야 합니다. 보안 권장 사항의 전체 목록은 보안 검사 목록을 참조하세요. 최소한으로 인증을 활성화하고 네트워크 인프라를 강화하는 것을 고려하세요.

IP 바인딩에 대한 자세한 내용은 IP 바인딩 설명서를 참조하십시오.

또는 net.bindIp ::,0.0.0.0 을(를) (으)로 설정하거나 MongoDB 4 에서 시작합니다. 을 별표 로 (2 "*" YAML 별칭 노드 와 구분하기 위해 별표를 따옴표로 묶습니다. )를 사용하여 모든 IP 주소에 바인딩합니다.

참고

net.bindIpnet.bindIpAll 은 상호 배타적입니다. 두 옵션을 모두 지정하면 mongos 또는 mongod 에서 오류가 발생하고 종료됩니다.

net.maxIncomingConnections

유형: integer

기본값(Windows): 1,000,000
기본값(Linux): (RLIMIT_NOFILE) * 0.8

mongos 또는 mongod 가 허용하는 최대 동시 연결 수입니다. 이 설정은 운영 체제에 구성된 최대 연결 추적 임계값보다 높은 경우 아무런 효과가 없습니다.

이 옵션에 너무 낮은 값을 할당하지 마십시오. 그렇지 않으면 정상적인 애플리케이션 작동 중에 오류가 발생할 수 있습니다.

이는 여러 연결을 생성하고 연결을 닫지 않고 제한 시간을 초과하도록 허용하는 클라이언트가 있는 경우 mongos 에 특히 유용합니다.

이 경우 maxIncomingConnections 를 클라이언트가 생성하는 최대 연결 수 또는 연결 풀의 최대 크기보다 약간 높은 값으로 설정합니다.

이 설정은 mongos 개별 샤드에서 연결 스파이크를 유발하는 것을 방지합니다. 이와 같은 스파이크는 분할된 클러스터의 작업 및 메모리 할당을 방해할 수 있습니다.

net.wireObjectCheck

유형: 부울

기본값: true

true0}일 때 mongod 또는 mongos 인스턴스는 수신 시 클라이언트의 모든 요청의 유효성을 검사하여 클라이언트가 잘못되거나 유효하지 않은 BSON을 MongoDB 데이터베이스에 삽입하는 것을 방지합니다.

하위 문서 중첩이 많은 객체의 경우 net.wireObjectCheck 이 성능에 약간 영향을 미칠 수 있습니다.

net.ipv6

유형: 부울

기본값: false

net.ipv6true 로 설정하여 IPv6 지원을 활성화합니다. mongos/mongod 은 기본적으로 IPv6 지원을 비활성화합니다.

mongod 설정해도 net.ipv6 mongos/ 6 가 로컬 IPv 주소 또는 인터페이스에서mongod mongos수신 대기하도록 지시하지 않습니다 . / 가 IPv 6 인터페이스에서 수신 대기하도록 구성하려면 다음 중 하나를 수행해야 합니다.

  • 하나 이상의 IPv6 주소 또는 호스트 이름으로 net.bindIp 를 구성하여 IPv6 주소로 확인 되거나

  • net.bindIpAlltrue 로 설정합니다.

net:
unixDomainSocket:
enabled: <boolean>
pathPrefix: <string>
filePermissions: <int>
net.unixDomainSocket.enabled

유형: 부울

기본값: true

UNIX 도메인 소켓에서 수신을 활성화하거나 비활성화합니다. net.unixDomainSocket.enabled 는 Unix 기반 시스템에만 적용됩니다.

net.unixDomainSocket.enabledtrue 인 경우 mongos 또는 mongod 은 UNIX 소켓에서 수신 대기합니다.

2}mongos 또는 프로세스는 다음 중 하나에 해당하지 않는 한 항상 UNIX 소켓에서 수신 mongod 대기합니다:

  • net.unixDomainSocket.enabled 입니다 false

  • --nounixsocket 이설정되어 있습니다. 명령줄 옵션은 구성 파일 설정보다 우선합니다.

  • net.bindIp is not set

  • net.bindIp 이(가) localhost 또는 관련 IP 주소를 지정하지 않습니다.

mongos{ 2} mongod 또는 공식 .deb에서 설치한 경우 및 .rpm bind_ip 패키지는 127.0.0.1 기본적으로 구성을 으로 설정합니다.

net.unixDomainSocket.pathPrefix

유형: 문자열

기본값/tmp

UNIX 소켓의 경로입니다. net.unixDomainSocket.pathPrefix 는 Unix 기반 시스템에만 적용됩니다.

이 옵션에 값이 없으면 mongos 또는 mongod 프로세스가 접두사로 /tmp 을 사용하여 소켓을 만듭니다. 다음 중 하나에 해당하지 않는 한 MongoDB는 UNIX 소켓에서 생성하고 수신 대기합니다:

net.unixDomainSocket.filePermissions

형식: int

기본값: 0700

UNIX 도메인 소켓 파일의 권한을 설정합니다.

net.unixDomainSocket.filePermissions Unix 기반 시스템에만 적용됩니다.

버전 3.6으로 변경: MongoDB 3.6은 더 이상 사용되지 않는 net.http 옵션을 제거합니다. 이 옵션은 버전 3.2부터 더 이상 사용되지 않습니다.

버전 4.2의 새로운 기능: tls 옵션은 이전 ssl 옵션과 동일한 기능을 제공합니다.

net:
tls:
mode: <string>
certificateKeyFile: <string>
certificateKeyFilePassword: <string>
certificateSelector: <string>
clusterCertificateSelector: <string>
clusterFile: <string>
clusterPassword: <string>
clusterAuthX509:
attributes: <string>
extensionValue: <string>
CAFile: <string>
clusterCAFile: <string>
CRLFile: <string>
allowConnectionsWithoutCertificates: <boolean>
allowInvalidCertificates: <boolean>
allowInvalidHostnames: <boolean>
disabledProtocols: <string>
FIPSMode: <boolean>
logVersions: <string>
net.tls.mode

유형: 문자열

버전 4.2에 추가되었습니다.

모든 네트워크 연결에 TLS를 사용하도록 설정합니다. net.tls.mode 설정에 대한 인수는 다음 중 하나일 수 있습니다.

설명
disabled
서버가 TLS를 사용하지 않습니다.
allowTLS
서버 간 연결이 TLS를 사용하지 않습니다. 수신 연결의 경우, 서버는 TLS와 비TLS를 모두 허용합니다.
preferTLS
서버 간 연결이 TLS를 사용합니다. 수신 연결의 경우, 서버는 TLS와 비TLS를 모두 허용합니다.
requireTLS
서버가 TLS로 암호화된 연결만 사용하고 허용합니다.

--tlsCAFile 또는 tls.CAFile이(가) 지정되지 않았고 x.509 인증을 사용하지 않는 경우 tlsUseSystemCA 매개변수를 true(으)로 설정해야 합니다. 따라서 MongoDB는 TLS 활성화 서버에 연결할 때 시스템 전체 CA 인증서 저장소를 사용합니다.

x.509 인증을 사용하는 경우 --tlsCertificateSelector사용하지 않는 한 --tlsCAFile 또는 tls.CAFile 을 지정해야 합니다.

TLS 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

net.tls.certificateKeyFile

유형: 문자열

버전 4.2에 추가: .pem 파일에 TLS 인증서와 키가 모두 포함되어 있습니다.

MongoDB 4 부터 시작합니다. macOS 또는 Windows의 0 에서는 net.tls.certificateSelector 설정을 사용하여 PEM 키 파일 대신 운영 체제의 보안 인증서 저장소에 있는 인증서를 지정할 수 있습니다. certificateKeyFilenet.tls.certificateSelector 은 상호 배타적입니다. 하나만 지정할 수 있습니다.

TLS 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

net.tls.certificateKeyFilePassword

유형: 문자열

버전 4 에 추가되었습니다.2: 인증서 키 파일의 암호를 해독하기 위한 비밀번호(예: certificateKeyFile). 인증서 키 파일이 암호화된 경우에만 net.tls.certificateKeyFilePassword 옵션을 사용합니다. 모든 경우에 mongos 또는 mongod 는 모든 로깅 및 보고 출력에서 비밀번호를 삭제합니다.

MongoDB 4.0부터 도입됨,

TLS 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

net.tls.certificateSelector

유형: 문자열

버전 4.2에 추가됨: Windows 및 macOS에서 net.tls.certificateKeyFile 대안으로 사용할 수 있습니다. MongoDB 4.0에서는 net.ssl.certificateSelector 참조하세요.

TLS에 사용하기 위해 운영 체제의 인증서 저장소에서 일치하는 인증서를 선택할 때 사용할 인증서 속성을 지정합니다.

net.tls.certificateKeyFilenet.tls.certificateSelector 옵션은 상호 배타적입니다. 하나만 지정할 수 있습니다.

net.tls.certificateSelector<property>=<value> 형식의 인수를 허용하며, 여기서 속성은 다음 중 하나일 수 있습니다.

속성
값 유형
설명
subject
ASCII 문자열
인증서의 주체 이름 또는 일반 이름
thumbprint
16진수 문자열

16진수로 표현되는 일련의 바이트로, SHA-1 다이제스트로 공개 키를 식별하는 데 사용됩니다.

thumbprint을(를) fingerprint(이)라고 부르기도 합니다.

시스템 SSL 인증서 저장소를 사용할 때 온라인 인증서 상태 프로토콜(OCSP)을 사용해 인증서의 해지 상태를 확인할 수 있습니다.

mongod 는 운영 체제의 보안 인증서 저장소에서 지정된 TLS 인증서의 전체 인증서 체인의 유효성을 검사하는 데 필요한 CA 인증서를 검색합니다. 구체적으로 설명하면, 보안 인증서 저장소에는 TLS 인증서에 대한 전체 인증서 체인을 구축하는 데 필요한 루트 CA와 중간 CA 인증서가 포함되어 있어야 합니다.

경고

및/또는 를 사용하는 net.tls.certificateSelector net.tls.clusterCertificateSelector 경우 또는 net.tls.CAFile net.tls.clusterFile 를 사용하여 루트 및 중간 CA 인증서를 지정 하지 않는 것이 좋습니다.

예를 들어, TLS/SSL 인증서가 단일 루트 CA 인증서로 서명된 경우, 보안 인증서 저장소에 해당 루트 CA 인증서가 포함되어 있어야 합니다. TLS/SSL 인증서가 중간 CA 인증서로 서명된 경우, 보안 인증서 저장소에는 중간 CA 인증서 루트 CA 인증서가 포함되어 있어야 합니다.

참고

로 설정된 db.rotateCertificates() 또는 rotateCertificates net.tls.certificateSelector 를 사용할 때는 명령 --tlsCertificateSelector 또는 셸 메서드를 사용할 수 없습니다.thumbprint

net.tls.clusterCertificateSelector

유형: 문자열

버전 4.2에 추가됨: Windows 및 macOS에서 net.tls.clusterFile대안으로 사용할 수 있습니다.

운영 체제의 보안 인증서 저장소에서 내부 x.509 구성원 인증에 사용할 일치하는 인증서를 선택하는 인증서 속성을 지정합니다.

net.tls.clusterFilenet.tls.clusterCertificateSelector 옵션은 상호 배타적입니다. 하나만 지정할 수 있습니다.

net.tls.clusterCertificateSelector<property>=<value> 형식의 인수를 허용하며, 여기서 속성은 다음 중 하나일 수 있습니다.

속성
값 유형
설명
subject
ASCII 문자열
인증서의 주체 이름 또는 일반 이름
thumbprint
16진수 문자열

16진수로 표현되는 일련의 바이트로, SHA-1 다이제스트로 공개 키를 식별하는 데 사용됩니다.

thumbprint을(를) fingerprint(이)라고 부르기도 합니다.

mongod 는 운영 체제의 보안 인증서 저장소에서 지정된 cluster 인증서의 인증서 체인 전체의 유효성을 검색하는 데 필요한 CA 인증서를 검색합니다. 특히 보안 인증서 저장소에는 cluster 인증서에 대한 전체 인증서 체인을 구축하는 데 필요한 루트 CA와 중간 CA 인증서가 포함되어 있어야 합니다.

경고

및/또는 net.tls.certificateSelector 를 사용하는 경우 net.tls.clusterCertificateSelector 또는 net.tls.CAFile net.tls.clusterCAFile 를 사용하여 루트 및 중간 CA 인증서를 지정 하지 않는 것이 좋습니다.

예를 들어, 클러스터 인증서가 단일 루트 CA 인증서로 서명된 경우, 보안 인증서 저장소에 해당 루트 CA 인증서가 포함되어 있어야 합니다. 클러스터 인증서가 중간 CA 인증서로 서명된 경우, 보안 인증서 저장소에는 중간 CA 인증서 루트 CA 인증서가 포함되어 있어야 합니다.

mongod / mongos 는 x가 표시되면 연결 시 경고를 기록합니다.509 인증서가 mongod/mongos 호스트 시스템 시간으로부터 30 일 이내에 만료됩니다. x를 참조하세요. 자세한 내용은 509 인증서 만료 임박 trigger 경고 를 참조하세요.

net.tls.clusterFile

유형: 문자열

버전 4.2에 추가: 클러스터 또는 복제본 집합에 대한 구성원 인증을 위한 x.509 인증서 키 파일이 포함된 .pem 파일입니다.

MongoDB 4 부터 시작합니다. macOS 또는 Windows의 0 에서는 net.tls.clusterCertificateSelector 옵션을 사용하여 PEM 키 파일 대신 운영 체제의 보안 인증서 저장소에 있는 인증서를 지정할 수 있습니다. net.tls.clusterFilenet.tls.clusterCertificateSelector 옵션은 상호 배타적입니다. 하나만 지정할 수 있습니다.

net.tls.clusterFile 가 내부 클러스터 인증을 위한 .pem 파일 또는 대체 net.tls.clusterCertificateSelector 를 지정하지 않으면 클러스터는 certificateKeyFile 설정에 지정된 .pem 파일 또는 net.tls.certificateSelector 에서 반환한 인증서를 사용합니다.

x.509 인증을 사용하는 경우 --tlsCertificateSelector사용하지 않는 한 --tlsCAFile 또는 tls.CAFile 을 지정해야 합니다.

mongod / mongos 는 x가 표시되면 연결 시 경고를 기록합니다.509 인증서가 mongod/mongos 호스트 시스템 시간으로부터 30 일 이내에 만료됩니다. x를 참조하세요. 자세한 내용은 509 인증서 만료 임박 trigger 경고 를 참조하세요.

TLS 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

중요

Windows의 경우에만 MongoDB 4.0 이상은 암호화된 PEM 파일을 지원하지 않습니다. 암호화된 PEM 파일을 발견하면 mongod 가 시작되지 않습니다. Windows에서 멤버십 인증에 사용할 인증서를 안전하게 저장하고 액세스하려면 net.tls.clusterCertificateSelector 를 사용합니다.

net.tls.clusterPassword

유형: 문자열

버전 4 에 추가되었습니다.2: x를 해독하기 위한 비밀번호입니다.509 인증서 키 파일이 --sslClusterFile 으로 지정되었습니다. 인증서 키 파일이 암호화된 경우에만 net.tls.clusterPassword 옵션을 사용합니다. 모든 경우에 mongos 또는 mongod 는 모든 로깅 및 보고 출력에서 비밀번호를 삭제합니다.

MongoDB 4.0부터 도입됨,

TLS 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

net.tls.clusterAuthX509

버전 7.0에 추가.

net:
tls:
clusterAuthX509:
attributes: <string>
extensionValue: <string>
net.tls.clusterAuthX509.attributes

유형: 문자열

버전 7.0에 추가.

서버가 클러스터 구성원 노드가 인증서 주체 이름에 포함해야 할 식별 이름(DN) 속성 및 값 집합을 설정합니다. 이를 통해 DC, O, OU 값이 포함되지 않은 인증서를 사용하여 클러스터 구성원을 인증할 수 있습니다.

attributes 0}을 설정하면 MongoDB는 DN을 사용하여 인증서를 일치시키고 확장자 값을 무시합니다.

net.tls.clusterAuthX509.extensionValue

유형: 문자열

버전 7.0에 추가.

MongoDB 클러스터 멤버 자격 확장 OID, 1.3.6.1.4.1.34601.2.1.2에 해당하는 확장 값을 지정합니다. 서버가 클러스터 멤버 노드가 인증서에 포함할 것으로 예상하는 것입니다. 이를 통해 DC, O, OU 값이 포함되지 않은 인증서를 사용하여 클러스터 구성원을 인증할 수 있습니다.

extensionValue 이 설정되면 MongoDB는 인증서 확장 값을 사용하여 인증서를 일치시키고 DN(고유 이름)을 무시합니다.

net.tls.CAFile

유형: 문자열

버전 4.2의 새로운 기능: 인증 기관의 루트 인증서 체인이 포함된 .pem 파일입니다. 상대 경로 또는 절대 경로를 사용해 .pem 파일의 이름을 지정합니다.

Windows/macOS 전용
net.tls.certificateSelector 및/또는 net.tls.clusterCertificateSelector 을 사용하는 경우 net.tls.CAFile 를 사용하여 루트 및 중간 CA 인증서를 지정하지 마세요 . net.tls.certificateSelector 및/또는 net.tls.clusterCertificateSelector 인증서의 전체 신뢰 체인을 검증하는 데 필요한 모든 CA 인증서를 보안 인증서 저장소에 저장합니다.

TLS 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

net.tls.clusterCAFile

유형: 문자열

클라이언트가 연결을 구축할 때 제시한 인증서의 유효성을 검사할때 사용된 인증 기관의 루트 인증서 체인이 포함되어 있는 파일을 지정합니다..pem 상대 경로 또는 절대 경로를 사용해 .pem 파일의 이름을 지정합니다. net.tls.clusterCAFile{net.tls.CAFile 4}를 사용하려면 이 설정되어 있어야 합니다.

연결을 설정하는 클라이언트의 인증서 유효성을 검사하기 위해 net.tls.clusterCAFile.pem 파일을 지정하지 않으면 클러스터는 net.tls.CAFile 옵션에 지정된 .pem 파일을 사용합니다.

net.tls.clusterCAFile 은 TLS 핸드셰이크의 클라이언트와 서버 간, 서버와 클라이언트 간 인증에 별도의 인증 기관을 사용할 수 있도록 허용합니다.

4 부터 시작됩니다.0, macOS 또는 Windows에서는 PEM 키 파일 대신 운영 체제의 보안 저장소에 있는 인증서를 사용할 수 있습니다. net.tls.clusterCertificateSelector 를 참조하세요. 보안 저장소를 사용할 때는 net.tls.clusterCAFile 을(를) 지정할 필요는 없지만 지정할 수도 있습니다.

Windows/macOS 전용
net.tls.certificateSelector 및/또는 net.tls.clusterCertificateSelector 을 사용하는 경우 net.tls.clusterCAFile 를 사용하여 루트 및 중간 CA 인증서를 지정하지 마세요 . net.tls.certificateSelector 및/또는 net.tls.clusterCertificateSelector 인증서의 전체 신뢰 체인을 검증하는 데 필요한 모든 CA 인증서를 보안 인증서 저장소에 저장합니다.

TLS 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

net.tls.CRLFile

유형: 문자열

버전 4.2에 추가: MongoDB 4.0 이하에서는 net.ssl.CRLFile참조하세요.

인증서 해지 목록이 포함된 .pem 파일입니다. 상대 경로 또는 절대 경로를 사용해 .pem 파일의 이름을 지정합니다.

참고

  • MongoDB 4 부터 시작.0, macOS에서는 net.tls.CRLFile 를 지정할 수 없습니다. 대신 OCSP(온라인 인증서 상태 프로토콜)를 사용하여 인증서의 해지 상태를 확인하는 시스템 SSL 인증서 저장소를 사용할 수 있습니다. MongoDB 4 의 net.ssl.certificateSelector 를 참조하세요.0 및 net.tls.certificateSelector in MongoDB 4.2+ 시스템 SSL 인증서 저장소를 사용합니다.

  • 인증서 해지를 확인하기 위해 MongoDB enables 는 CRL 파일을 지정하거나 시스템 SSL 인증서 저장소를 사용하는 대신 기본적으로 OCSP(온라인 인증서 상태 프로토콜)를 사용합니다.

TLS 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

net.tls.allowConnectionsWithoutCertificates

유형: 부울

버전 4.2에 추가되었습니다.

서버가 CA 파일을 사용하도록 구성되어 있는 경우를 제외하고 서버는 클라이언트 인증서 검증을 우회하도록 기본 설정되어 있습니다. CA 파일이 제공된 경우 다음 규칙이 적용됩니다.

  • 인증서를 제공하지 않는 클라이언트의 경우, mongod 또는 mongos 연결이 성공적으로 이루어졌다고 가정하여 TLS/SSL 연결을 암호화합니다.

  • 인증서를 제시하는 클라이언트의 경우, mongos 또는 mongodCAFile 에서 지정한 루트 인증서 체인을 사용하여 인증서 유효성 검사를 수행하고 유효하지 않은 인증서를 가진 클라이언트를 거부합니다.

net.tls.allowConnectionsWithoutCertificates 또는 mongos 에 인증서를 제공하지 않거나 제공할 수 없는 클라이언트를 포함하는 혼합 배포가 있는 경우 옵션을 mongod 사용합니다.

TLS 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

net.tls.allowInvalidCertificates

유형: 부울

버전 4.2에 추가되었습니다.

클러스터의 다른 서버에서 TLS 인증서에 대한 유효성 검사를 사용하거나 사용하지 않도록 설정하고 유효하지 않은 인증서를 사용하여 연결할 수 있도록 허용합니다.

참고

x.509 인증을 사용할 때 --tlsAllowInvalidCertificates 또는 tls.allowInvalidCertificates: true을(를) 지정하는 경우, 유효하지 않은 인증서는 TLS 연결을 설정하는 데는 충분하지만, 인증에는 충분하지 않습니다.

net.tls.allowInvalidCertificates 설정을 사용할 때 MongoDB는 유효하지 않은 인증서 사용과 관련된 경고를 기록합니다.

TLS 및 MongoDB에 대한 자세한 내용은 TLS/SSL에서 mongodmongos 구성내부/멤버십 인증을 참조하세요.

net.tls.allowInvalidHostnames

유형: 부울

기본값: false

net.tls.allowInvalidHostnamestrue이면 MongoDB는 TLS 인증서의 호스트 이름 유효성 검사를 비활성화합니다. 이렇게 하면 인증서의 호스트 이름이 지정된 호스트 이름과 일치하지 않더라도 mongod 또는 mongos가 클러스터의 다른 MongoDB 인스턴스에 연결할 수 있습니다.

TLS 및 MongoDB에 대한 자세한 내용은 TLS/SSL에서 mongodmongos 구성을 참조하세요.

net.tls.disabledProtocols

유형: 문자열

TLS로 실행 중인 MongoDB 서버가 1개 또는 그 이상의 특정 프로토콜을 사용하는 수신 연결을 허용하지 않도록 방지합니다. 여러 프로토콜을 지정하려면 쉼표로 구분된 프로토콜 목록을 사용하되 쉼표 뒤에 공백을 사용하지 마십시오. 프로토콜 이름 앞에 공백을 포함하면 서버는 이를 인식할 수 없는 프로토콜로 해석하여 시작하지 않습니다.

net.tls.disabledProtocols 은(는) TLS1_0, TLS1_1, TLS1_2TLS1_3 프로토콜을 인식합니다.

  • macOS에서는 TLS1_1을(를) 비활성화하고 TLS1_0TLS1_2을(를) 전부 활성화된 상태로 둘 수 없습니다. TLS1_0,TLS1_1와(과) 같이 다른 2개의 프로토콜 중 적어도 하나를 비활성화해야 합니다.

  • 여러 프로토콜을 나열하려면 쉼표 뒤에 공백 없이 쉼표로 구분된 프로토콜 목록을 지정하십시오. 예: TLS1_0,TLS1_1.

  • 인식할 수 없는 프로토콜을 지정하거나 쉼표 뒤에 공백을 포함하면 서버가 시작되지 않습니다.

  • 지정된 비활성화 프로토콜은 기본으로 설정된 비활성화 프로토콜을 덮어씁니다.

MongoDB는 TLS 1 사용을 비활성화합니다.0 if TLS 1. 시스템에서 1+를 사용할 수 있습니다. TLS 1 를 활성화합니다.0, none ~ net.tls.disabledProtocols 을 지정합니다.

복제본 세트와 샤드 클러스터의 구성원은 적어 하나의 공통된 프로토콜을 사용해야 합니다.

다음도 참조하세요.

net.tls.FIPSMode

유형: 부울

버전 4.2에 추가되었습니다.

mongos 또는 mongod 에 대한 TLS 라이브러리의 FIPS 모드 사용을 활성화하거나 비활성화합니다. net.tls.FIPSMode 옵션을 사용하려면 시스템에 FIPS를 준수하는 라이브러리가 있어야 합니다.

참고

FIPS와 호환되는 TLS/SSL은 MongoDB Enterprise 에서만 사용할 수 있습니다. 자세한 내용 은 FIPS용 MongoDB 구성 을 참조하세요.

net.tls.logVersions

유형: 문자열

mongos mongod 2} 또는 에 클라이언트가 지정된 TLS 버전을 사용하여 연결할 때 메시지를 기록하도록 지시합니다.

단일 TLS 버전을 지정하거나 여러 TLS 버전의 쉼표로 구분된 목록을 지정하십시오.

예제

클라이언트가 TLS 1 를 사용하여 연결할 때 메시지를 기록하도록 mongos 또는 mongod 에 지시합니다.2 또는 TLS 1.3, net.tls.logVersions"TLS1_2,TLS1_3" 로 설정합니다.

중요

모든 SSL 옵션은 4 이후 더 이상 사용되지 않습니다.2. 대신 SSL 옵션과 동일한 기능을 가진 TLS 를 사용하세요. SSL 프로토콜은 더 이상 사용되지 않으며 MongoDB는 TLS 1 를 지원합니다.0 이상.

net:
ssl: # deprecated since 4.2
sslOnNormalPorts: <boolean> # deprecated since 2.6
mode: <string>
PEMKeyFile: <string>
PEMKeyPassword: <string>
certificateSelector: <string>
clusterCertificateSelector: <string>
clusterFile: <string>
clusterPassword: <string>
CAFile: <string>
clusterCAFile: <string>
CRLFile: <string>
allowConnectionsWithoutCertificates: <boolean>
allowInvalidCertificates: <boolean>
allowInvalidHostnames: <boolean>
disabledProtocols: <string>
FIPSMode: <boolean>
net.ssl.sslOnNormalPorts

유형: 부울

버전 2.6 이후 사용 중단됨: 대신 net.tls.mode: requireTLS을(를) 사용하세요.

2} 또는 에 mongos 대해 TLS/SSL을 사용하거나 사용하지 mongod 않도록 설정합니다.

net.ssl.sslOnNormalPorts 사용하면 mongos 또는 mongod 기본 MongoDB 포트 또는 net.port 에서 지정한 포트의 모든 연결에 대해 TLS/SSL 암호화가 필요합니다. 기본적으로 net.ssl.sslOnNormalPorts 는 비활성화되어 있습니다.

TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

net.ssl.mode

유형: 문자열

버전 4.2 이후 사용 중단됨: 대신 net.tls.mode을(를) 사용하세요.

모든 네트워크 연결에 TLS/SSL 또는 혼합 TLS/SSL을 활성화합니다. net.ssl.mode 설정에 대한 인수는 다음 중 하나일 수 있습니다.

설명
disabled
서버가 TLS/SSL을 사용하지 않습니다.
allowSSL
서버 간 연결이 TLS/SSL을 사용하지 않습니다. 수신 연결의 경우, 서버는 TLS/SSL과 비TLS/비SSL을 모두 허용합니다.
preferSSL
서버 간 연결이 TLS/SSL을 사용합니다. 수신 연결의 경우, 서버는 TLS/SSL과 비TLS/비SSL을 모두 허용합니다.
requireSSL
서버가 TLS로 암호화된 연결만 사용하고 허용합니다.

--tlsCAFile/net.tls.CAFile (또는 그 별칭 --sslCAFile/net.ssl.CAFile)이(가) 지정되지 않았고 x.509 인증을 사용하지 않는 경우 tlsUseSystemCA 매개변수를 true(으)로 설정해야 합니다. 따라서 MongoDB는 TLS 활성화 서버에 연결할 때 시스템 전체 CA 인증서 저장소를 사용합니다.

--tlsCertificateSelector 또는 --net.tls.certificateSelector을(를) 사용하지 않는 한, x.509 인증을 사용하려면 반드시 --tlsCAFile 또는 net.tls.CAFile을(를) 지정해야 합니다.

TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

net.ssl.PEMKeyFile

유형: 문자열

버전 4.2 이후 사용 중단됨: 대신 net.tls.certificateKeyFile을(를) 사용하세요.

TLS/SSL 인증서와 키가 모두 포함된 .pem 파일입니다.

MongoDB 4 부터 시작합니다. macOS 또는 Windows의 0 에서는 net.ssl.certificateSelector 설정을 사용하여 PEM 키 파일 대신 운영 체제의 보안 인증서 저장소에 있는 인증서를 지정할 수 있습니다. PEMKeyFilenet.ssl.certificateSelector 은 상호 배타적입니다. 하나만 지정할 수 있습니다.

TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

net.ssl.PEMKeyPassword

유형: 문자열

버전 4.2 이후 사용 중단됨: 대신 net.tls.certificateKeyFilePassword을(를) 사용하세요.

인증서 키 파일의 암호를 해독하기 위한 비밀번호(예: PEMKeyFile)입니다. 인증서 키 파일이 암호화된 경우에만 net.ssl.PEMKeyPassword 옵션을 사용합니다. 모든 경우에 mongos 또는 mongod 는 모든 로깅 및 보고 출력에서 비밀번호를 삭제합니다.

MongoDB 4.0부터 도입됨,

  • Linux/BSD에서 PEM 파일의 개인 키가 암호화되어 있고 net.ssl.PEMKeyPassword 옵션을 지정하지 않은 경우, MongoDB는 암호를 입력하라는 메시지를 표시합니다.

    자세한 내용은 TLS/SSL 인증서 암호를 참조하세요.

  • macOS에서 PEM 파일의 개인 키가 암호화된 경우 net.ssl.PEMKeyPassword 옵션을 명시적으로 지정해야 합니다. 또는 PEM 키 파일 대신 보안 시스템 저장소( net.ssl.certificateSelector 참조)의 인증서를 사용하거나 암호화되지 않은 PEM 파일을 사용할 수 있습니다.

  • Windows에서 MongoDB는 암호화된 인증서를 지원하지 않습니다. 암호화된 PEM 파일을 발견하면 mongod 가 실패합니다. 대신 net.ssl.certificateSelector 을(를) 사용하세요.

TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

net.ssl.certificateSelector

유형: 문자열

버전 4.2 이후 사용 중단됨: 대신 net.tls.certificateSelector을(를) 사용하세요.

버전 4.0에 추가되었습니다:net.ssl.PEMKeyFile 2}의 대안으로 Windows 및 macOS에서 사용할 수 있습니다.

TLS에 사용하기 위해 운영 체제의 인증서 저장소에서 일치하는 인증서를 선택할 때 사용할 인증서 속성을 지정합니다.

net.ssl.PEMKeyFilenet.ssl.certificateSelector 옵션은 상호 배타적입니다. 하나만 지정할 수 있습니다.

net.ssl.certificateSelector<property>=<value> 형식의 인수를 허용하며, 여기서 속성은 다음 중 하나일 수 있습니다.

속성
값 유형
설명
subject
ASCII 문자열
인증서의 주체 이름 또는 일반 이름
thumbprint
16진수 문자열

16진수로 표현되는 일련의 바이트로, SHA-1 다이제스트로 공개 키를 식별하는 데 사용됩니다.

thumbprint을(를) fingerprint(이)라고 부르기도 합니다.

시스템 SSL 인증서 저장소를 사용할 때 온라인 인증서 상태 프로토콜(OCSP)을 사용해 인증서의 해지 상태를 확인할 수 있습니다.

mongod 운영 체제의 보안 인증서 저장소에서 지정된 TLS/SSL 인증서의 전체 인증서 체인의 유효성을 검사하는 데 필요한 CA 인증서를 검색합니다. 구체적으로 설명하면, 보안 인증서 저장소에는 TLS/SSL 인증서에 대한 전체 인증서 체인을 구축하는 데 필요한 루트 CA와 중간 CA 인증서가 포함되어 있어야 합니다. 또는 net.ssl.CAFile net.ssl.clusterFile 를 사용하여 루트 및 중간 CA 인증서를 지정하지 마세요 .

예를 들어, TLS/SSL 인증서가 단일 루트 CA 인증서로 서명된 경우, 보안 인증서 저장소에 해당 루트 CA 인증서가 포함되어 있어야 합니다. TLS/SSL 인증서가 중간 CA 인증서로 서명된 경우, 보안 인증서 저장소에는 중간 CA 인증서 루트 CA 인증서가 포함되어 있어야 합니다.

net.ssl.clusterCertificateSelector

유형: 문자열

버전 4.2 이후 사용 중단됨: 대신 net.tls.clusterCertificateSelector을(를) 사용하세요.

버전 4.0에 추가되었습니다:net.ssl.clusterFile 2}의 대안으로 Windows 및 macOS에서 사용할 수 있습니다.

운영 체제의 보안 인증서 저장소에서 내부 x.509 구성원 인증에 사용할 일치하는 인증서를 선택하는 인증서 속성을 지정합니다.

net.ssl.clusterFilenet.ssl.clusterCertificateSelector 옵션은 상호 배타적입니다. 하나만 지정할 수 있습니다.

net.ssl.clusterCertificateSelector<property>=<value> 형식의 인수를 허용하며, 여기서 속성은 다음 중 하나일 수 있습니다.

속성
값 유형
설명
subject
ASCII 문자열
인증서의 주체 이름 또는 일반 이름
thumbprint
16진수 문자열

16진수로 표현되는 일련의 바이트로, SHA-1 다이제스트로 공개 키를 식별하는 데 사용됩니다.

thumbprint을(를) fingerprint(이)라고 부르기도 합니다.

는 운영 체제의 보안 인증서 저장소에서 지정된 클러스터 인증서의 인증서 체인 전체의 유효성을 검사하는 데 필요한 CA 인증서를 검색합니다. 특히 mongod 보안 인증서 저장소에는 클러스터 인증서에 대한 전체 인증서 체인을 구축하는 데 필요한 루트 CA와 중간 CA 인증서가 포함되어 있어야 합니다. 루트 및 중간 CA 인증서를 지정하는 데 net.ssl.CAFile 또는 를 사용하지 마세요 .net.ssl.clusterFile

예를 들어, 클러스터 인증서가 단일 루트 CA 인증서로 서명된 경우, 보안 인증서 저장소에 해당 루트 CA 인증서가 포함되어 있어야 합니다. 클러스터 인증서가 중간 CA 인증서로 서명된 경우, 보안 인증서 저장소에는 중간 CA 인증서 루트 CA 인증서가 포함되어 있어야 합니다.

net.ssl.clusterFile

유형: 문자열

버전 4.2 이후 사용 중단됨: 대신 net.tls.clusterFile을(를) 사용하세요.

클러스터 또는 복제본 집합에 대한 구성원 인증을 위한 x.509 인증서 키 파일이 들어 있는 .pem 파일입니다.

MongoDB 4 부터 시작합니다. macOS 또는 Windows의 0 에서는 net.ssl.clusterCertificateSelector 옵션을 사용하여 PEM 키 파일 대신 운영 체제의 보안 인증서 저장소에 있는 인증서를 지정할 수 있습니다. net.ssl.clusterFilenet.ssl.clusterCertificateSelector 옵션은 상호 배타적입니다. 하나만 지정할 수 있습니다.

net.ssl.clusterFile 가 내부 클러스터 인증을 위한 .pem 파일 또는 대체 net.ssl.clusterCertificateSelector 를 지정하지 않으면 클러스터는 PEMKeyFile 설정에 지정된 .pem 파일 또는 net.ssl.certificateSelector 에서 반환한 인증서를 사용합니다.

--tlsCertificateSelector 또는 --net.tls.certificateSelector을(를) 사용하지 않는 한, x.509 인증을 사용하려면 반드시 --tlsCAFile 또는 net.tls.CAFile을(를) 지정해야 합니다.

TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

중요

Windows의 경우에만 MongoDB 4.0 이상은 암호화된 PEM 파일을 지원하지 않습니다. 암호화된 PEM 파일을 발견하면 mongod 가 시작되지 않습니다. Windows에서 멤버십 인증에 사용할 인증서를 안전하게 저장하고 액세스하려면 net.ssl.clusterCertificateSelector 를 사용합니다.

net.ssl.clusterPassword

유형: 문자열

버전 4.2 이후 사용 중단됨: 대신 net.tls.clusterPassword을(를) 사용하세요.

x의509 암호를 해독하기 위한 --sslClusterFile net.ssl.clusterPassword 비밀번호입니다. 으)로 지정된 인증서-키 파일입니다. 인증서 키 파일이 암호화된 경우에만 옵션을 사용합니다. 모든 경우에 mongos 또는 mongod 는 모든 로깅 및 보고 출력에서 비밀번호를 삭제합니다.

MongoDB 4.0부터 도입됨,

TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

net.ssl.CAFile

유형: 문자열

버전 4.2 이후 사용 중단됨: 대신 net.tls.CAFile을(를) 사용하세요.

인증 기관의 루트 인증서 체인이 포함된 .pem 파일을 지정합니다. 상대 경로 또는 절대 경로를 사용해 .pem 파일의 이름을 지정합니다.

Windows/macOS 전용
net.ssl.certificateSelector 및/또는 net.ssl.clusterCertificateSelector 을 사용하는 경우 net.ssl.CAFile 를 사용하여 루트 및 중간 CA 인증서를 지정하지 마세요 . net.ssl.certificateSelector 및/또는 net.ssl.clusterCertificateSelector 인증서의 전체 신뢰 체인을 검증하는 데 필요한 모든 CA 인증서를 보안 인증서 저장소에 저장합니다.

TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

net.ssl.clusterCAFile

유형: 문자열

버전 4.2 이후 사용 중단됨: 대신 net.tls.clusterCAFile을(를) 사용하세요.

클라이언트가 연결을 구축할 때 제시한 인증서의 유효성을 검사하는 데 사용된 인증 기관의 루트 인증서 체인이 포함된 .pem 파일입니다. 상대 경로 또는 절대 경로를 사용하여 .pem 파일의 이름을 지정합니다. net.ssl.clusterCAFile 를 사용하려면 net.ssl.CAFile 이(가) 설정되어 있어야 합니다.

연결을 설정하는 클라이언트의 인증서 유효성을 검사하기 위해 net.ssl.clusterCAFile.pem 파일을 지정하지 않으면 클러스터는 net.ssl.CAFile 옵션에 지정된 .pem 파일을 사용합니다.

net.ssl.clusterCAFile 은 TLS 핸드셰이크의 클라이언트와 서버 간, 서버와 클라이언트 간 인증에 별도의 인증 기관을 사용할 수 있도록 허용합니다.

4 부터 시작됩니다.0, macOS 또는 Windows에서는 PEM 키 파일 대신 운영 체제의 보안 저장소에 있는 인증서를 사용할 수 있습니다. net.ssl.clusterCertificateSelector 를 참조하세요. 보안 저장소를 사용할 때는 net.ssl.clusterCAFile 을(를) 지정할 필요는 없지만 지정할 수도 있습니다.

Windows/macOS 전용
net.ssl.certificateSelector 및/또는 net.ssl.clusterCertificateSelector 을 사용하는 경우 net.ssl.clusterCAFile 를 사용하여 루트 및 중간 CA 인증서를 지정하지 마세요 . net.ssl.certificateSelector 및/또는 net.ssl.clusterCertificateSelector 인증서의 전체 신뢰 체인을 검증하는 데 필요한 모든 CA 인증서를 보안 인증서 저장소에 저장합니다.

TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

net.ssl.CRLFile

유형: 문자열

버전 4.2 이후 사용 중단됨: 대신 net.tls.CRLFile을(를) 사용하세요.

인증서 해지 목록이 포함된 .pem 파일입니다. 상대 경로 또는 절대 경로를 사용해 .pem 파일의 이름을 지정합니다.

참고

  • MongoDB 4 부터 시작.0, macOS에서는 net.ssl.CRLFile 를 지정할 수 없습니다. 대신 OCSP(온라인 인증서 상태 프로토콜)를 사용하여 인증서의 해지 상태를 확인하는 시스템 SSL 인증서 저장소를 사용할 수 있습니다. MongoDB 4 의 net.ssl.certificateSelector 를 참조하세요.0 및 net.tls.certificateSelector in MongoDB 4.2 시스템 SSL 인증서 저장소를 사용합니다.

  • MongoDB 기본적으로 CRL 파일을 지정하거나 시스템 SSL 인증서 저장소를 사용하는 대신 OCSP(온라인 인증서 상태 프로토콜)를 사용하여 인증서 해지를 확인할 수 있도록 합니다.

TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

net.ssl.allowConnectionsWithoutCertificates

유형: 부울

버전 4.2 이후 사용 중단됨: 대신 net.tls.allowConnectionsWithoutCertificates을(를) 사용하세요.

인증서를 제공하지 않는 클라이언트의 경우, mongod 또는 mongos 연결이 성공적으로 이루어졌다고 가정하여 TLS/SSL 연결을 암호화합니다.

그러나 인증서를 제시하는 클라이언트의 경우 mongos 또는 mongodCAFile 에서 지정한 루트 인증서 체인을 사용하여 인증서 유효성 검사를 수행하고 유효하지 않은 인증서를 가진 클라이언트를 거부합니다.

net.ssl.allowConnectionsWithoutCertificates 또는 mongos 에 인증서를 제공하지 않거나 제공할 수 없는 클라이언트를 포함하는 혼합 배포가 있는 경우 옵션을 mongod 사용합니다.

TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

net.ssl.allowInvalidCertificates

유형: 부울

버전 4.2 이후 사용 중단됨: 대신 net.tls.allowInvalidCertificates을(를) 사용하세요.

클러스터의 다른 서버에서 TLS/SSL 인증서에 대한 유효성 검사를 사용하거나 사용하지 않도록 설정하고 유효하지 않은 인증서를 사용하여 연결할 수 있도록 허용합니다.

참고

MongoDB 4.0부터는 다음과 같은 x.509 인증 옵션을 지정할 경우 유효하지 않은 인증서로도 TLS 연결을 설정할 수는 있지만, 인증에는 충분하지 않습니다.

  • --sslAllowInvalidCertificates 또는 net.ssl.allowInvalidCertificates: true(MongoDB 4.0 이상의 경우)

  • --tlsAllowInvalidCertificates 또는 net.tls.allowInvalidCertificates: true(MongoDB 4.2 이상의 경우)

net.ssl.allowInvalidCertificates 설정을 사용할 때 MongoDB는 유효하지 않은 인증서 사용과 관련된 경고를 기록합니다.

TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

net.ssl.allowInvalidHostnames

유형: 부울

기본값: false

버전 4.2부터 폐지되었습니다.

대신 net.tls.allowInvalidHostnames 을(를) 사용하세요.

net.ssl.allowInvalidHostnames true 인 경우, MongoDB는 TLS/SSL 인증서의 호스트 이름 유효성 검사를 비활성화하여 인증서의 호스트 이름이 지정된 호스트 이름과 일치하지 않는 경우 mongod 이 MongoDB 인스턴스에 연결할 수 있도록 합니다.

TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

net.ssl.disabledProtocols

유형: 문자열

버전 4.2 이후 사용 중단됨: 대신 net.tls.disabledProtocols을(를) 사용하세요.

TLS/SSL로 실행 중인 MongoDB 서버가 1개 또는 그 이상의 특정 프로토콜을 사용하는 수신 연결을 허용하지 않도록 방지합니다. 여러 프로토콜을 지정하려면 쉼표로 구분된 프로토콜 목록을 사용합니다.

net.ssl.disabledProtocols 은(는) TLS1_0, TLS1_1, TLS1_2 및 버전 4 부터 시작하는 프로토콜을 인식합니다.0.4 (및 3.6.9), TLS1_3.

  • macOS에서는 TLS1_1을(를) 비활성화하고 TLS1_0TLS1_2을(를) 전부 활성화된 상태로 둘 수 없습니다. TLS1_0,TLS1_1와(과) 같이 다른 2개의 프로토콜 중 적어도 하나를 비활성화해야 합니다.

  • 여러 프로토콜을 나열하려면 쉼표로 구분된 프로토콜 목록으로 지정합니다( 예: TLS1_0,TLS1_1).

  • 인식할 수 없는 프로토콜을 지정하면 서버가 시작되지 않습니다.

  • 지정된 비활성화 프로토콜은 기본으로 설정된 비활성화 프로토콜을 덮어씁니다.

버전 4 부터 시작됩니다.0, MongoDB는 TLS 1 사용을 비활성화합니다.0 if TLS 1. 시스템에서 1+를 사용할 수 있습니다. 비활성화된 TLS를 활성화하려면 1 을(를) 사용합니다.0, nonenet.ssl.disabledProtocols 로 지정합니다.

복제본 세트와 샤드 클러스터의 구성원은 적어 하나의 공통된 프로토콜을 사용해야 합니다.

다음도 참조하세요.

net.ssl.FIPSMode

유형: 부울

버전 4.2 이후 사용 중단됨: 대신 net.tls.FIPSMode을(를) 사용하세요.

mongos 또는 mongod 에 대한 TLS/SSL 라이브러리의 FIPS 모드 사용을 활성화하거나 비활성화합니다. net.ssl.FIPSMode 옵션을 사용하려면 시스템에 FIPS를 준수하는 라이브러리가 있어야 합니다.

참고

FIPS와 호환되는 TLS/SSL은 MongoDB Enterprise 에서만 사용할 수 있습니다. 자세한 내용 은 FIPS용 MongoDB 구성 을 참조하세요.

net:
compression:
compressors: <string>
net.compression.compressors

기본값: snappy, zstd, zlib

mongod 또는 mongos 인스턴스와 통신하는 데 사용할 기본 압축기를 지정합니다:

  • 인스턴스가 복제본 세트나 샤드 클러스터의 일부인 경우 배포서버의 다른 구성원

  • mongosh

  • OP_COMPRESSED 메시지 형식을 지원하는 드라이버입니다.

MongoDB는 다음과 같은 압축 옵션을 지원합니다.

  • 스내피

  • zlib (MongoDB 3.6부터 사용 가능)

  • zstd (MongoDB 4.2부터 사용 가능)

버전 3.6 및 4.0에서 mongodmongos 기본적으로 snappy 을 압축기로 사용하여 네트워크 압축을 활성화합니다.

버전 4.2부터 mongodmongos 인스턴스는 기본적으로 snappy,zstd,zlib 개의 압축기(순서대로)를 모두 사용합니다.

네트워크 압축을 사용하지 않으려면 값을 disabled로 설정합니다.

중요

양쪽 당사자가 네트워크 압축을 활성화하면 메시지가 압축됩니다. 그렇지 않으면 양 당사자 간의 메시지는 압축되지 않습니다.

여러 압축기를 지정하는 경우 통신 개시자뿐만 아니라 압축기를 나열하는 순서도 중요합니다. 예를 들어 이 다음 네트워크 압축기 mongoshzlib,snappy 지정하고 이 mongod 지정하는 snappy,zlib mongosh 경우 와 mongod 사이의 메시지는 zlib 을 사용합니다.

당사자가 공통 압축기를 하나 이상 공유하지 않는 경우 당사자 간의 메시지는 압축되지 않습니다. 예를 들어 mongosh 이 네트워크 압축기 zlib 를 지정하고 mongodsnappy 지정하는 경우 mongoshmongod 사이의 메시지는 압축되지 않습니다.

security:
keyFile: <string>
clusterAuthMode: <string>
authorization: <string>
transitionToAuth: <boolean>
javascriptEnabled: <boolean>
redactClientLogData: <boolean>
clusterIpSourceAllowlist:
- <string>
sasl:
hostName: <string>
serviceName: <string>
saslauthdSocketPath: <string>
enableEncryption: <boolean>
encryptionCipherMode: <string>
encryptionKeyFile: <string>
kmip:
keyIdentifier: <string>
rotateMasterKey: <boolean>
serverName: <string>
port: <string>
clientCertificateFile: <string>
clientCertificatePassword: <string>
clientCertificateSelector: <string>
serverCAFile: <string>
connectRetries: <int>
connectTimeoutMS: <int>
ldap:
servers: <string>
bind:
method: <string>
saslMechanisms: <string>
queryUser: <string>
queryPassword: <string | array>
useOSDefaults: <boolean>
transportSecurity: <string>
timeoutMS: <int>
userToDNMapping: <string>
authz:
queryTemplate: <string>
validateLDAPServerConfig: <boolean>
security.keyFile

유형: 문자열

MongoDB 인스턴스가 샤드 클러스터 또는 복제본 세트 에서 서로를 인증하는 데 사용하는 공유 암호를 저장하는 키 파일의 경로입니다. keyFilesecurity.authorization 을 의미합니다. 자세한 내용은 내부/멤버십 인증 을 참조하세요.

MongoDB 4.2부터 내부 멤버십 인증을 위한 키 파일은 YAML 형식을 사용하여 키 파일에 여러 키를 허용합니다. YAML 형식은 두 가지 모두 허용됩니다.

  • 단일 키 문자열(이전 버전과 동일)

  • 키 문자열의 순서

YAML 형식은 텍스트 파일 형식을 사용하는 기존의 단일 키 키파일과 호환됩니다.

security.clusterAuthMode

유형: 문자열

기본값: keyFile

클러스터 인증에 사용되는 인증 모드입니다. 내부 x.509 인증 사용하는 경우 여기에서 지정하세요. 이 옵션은 다음 값 중 하나를 .

설명
keyFile
인증에 키파일을 사용합니다. 키파일만 허용합니다.
sendKeyFile
롤링 업그레이드 목적으로 사용됩니다. 인증 시 키파일을 전송하지만 키파일과 x.509 인증서를 모두 허용할 수 있습니다.
sendX509
롤링 업그레이드 목적으로 사용됩니다. 인증 시 x.509 인증서를 전송하지만 키파일과 x.509 인증서를 모두 허용할 수 있습니다.
x509
권장하는 옵션입니다. 인증 시 x.509 인증서를 전송하고 x.509 인증서만 허용합니다.

--tlsCAFile 또는 tls.CAFile이(가) 지정되지 않았고 x.509 인증을 사용하지 않는 경우 tlsUseSystemCA 매개변수를 true(으)로 설정해야 합니다. 따라서 MongoDB는 TLS 활성화 서버에 연결할 때 시스템 전체 CA 인증서 저장소를 사용합니다.

x.509 인증을 사용하는 경우 --tlsCertificateSelector사용하지 않는 한 --tlsCAFile 또는 tls.CAFile 을 지정해야 합니다.

TLS 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

security.authorization

유형: 문자열

기본값: 사용 안 함

데이터베이스 리소스 및 작업에 대한 각 사용자의 액세스를 관리하기 위해 역할 기반 액세스 제어(RBAC)를 사용하거나 사용하지 않도록 설정합니다.

이 옵션을 다음 중 하나로 설정합니다:

설명
enabled
사용자는 권한이 부여된 데이터베이스 리소스 및 작업에만 액세스할 수 있습니다.
disabled
사용자는 모든 데이터베이스에 액세스하고 모든 작업을 수행할 수 있습니다.

자세한 내용은 Role-Based Access Control 을 참조하세요.

security.authorization 설정은 mongod 에만 사용할 수 있습니다.

security.transitionToAuth

유형: 부울

기본값: false

또는 mongod 가 배포의 mongos 다른 및 mongod 인스턴스와의 인증 및 비인증 연결을 수락하고 생성할 수 mongos 있도록 허용합니다. 인증 없는 구성에서 내부 인증 으로 복제본 세트 또는 샤드 클러스터의 롤링 전환을 수행하는 데 사용됩니다.security.keyFile 와 같은 내부 인증 메커니즘을 지정해야 합니다.

예를 들어,내부 인증에 키파일을 mongod 사용하는 경우 또는 는 일치하는 키 파일을 사용하여 mongos 배포의 mongos mongod 또는 와 인증 된 연결을 만듭니다. 보안 메커니즘이 일치하지 않는 경우 mongod 또는 mongos 인증되지 않은 연결을 대신 사용합니다.

security.transitionToAuth 함께 mongod mongos 실행되는 또는 는 사용자 액세스 제어 를 적용하지 않습니다. 사용자는 액세스 제어 검사 없이 배포에 연결하여 읽기, 쓰기 및 관리 작업을 수행할 수 있습니다.

security.javascriptEnabled

유형: 부울

기본값: true

서버 쪽 JavaScript 실행을 활성화하거나 비활성화합니다. 비활성화하면 $where 쿼리 연산자, mapReduce 명령, $accumulator$function같이 자바스크립트 코드의 서버 측 실행을 수행하는 작업을 사용할 수 없습니다.

이러한 작업을 사용하지 않는 경우 서버 측 스크립팅을 비활성화하세요.

security.javascriptEnabledmongodmongos 모두에 사용할 수 있습니다. 이전 버전에서는 mongod 에만 이 설정을 사용할 수 있습니다.

security.redactClientLogData

유형: 부울

MongoDB Enterprise에서만 사용할 수 있습니다.

mongod mongos 와 함께 실행되는 security.redactClientLogData 또는 mongod 는 로깅하기 전에 지정된 로그 이벤트와 함께 mongos 제공되는 모든 메시지를 수정합니다. 이렇게 하면 또는 가 데이터베이스에 저장된 잠재적으로 민감한 데이터를 진단 로그에 쓰는 것을 방지할 수 있습니다. 오류 또는 작업 코드, 줄 번호, 소스 파일 이름과 같은 메타데이터는 여전히 로그에서 볼 수 있습니다.

security.redactClientLogData 를 미사용 데이터 암호화TLS/SSL(전송 암호화) 과 함께 사용하면 규제 요구 사항을 준수할 수 있습니다.

예를 들어, MongoDB 배포는 하나 이상의 컬렉션에 PII(개인 식별 정보)를 저장할 수 있습니다. 또는 mongod mongos mongod 는 CRUD 작업, 샤딩 메타데이터 mongos 등과 관련된 이벤트를 기록합니다. 또는 가 이러한 로깅 작업의 일부로 PII를 노출할 수 있습니다. 와(과) 함께 실행되는 mongod 또는 은(는)mongos security.redactClientLogData 로그에 출력되기 전에 이러한 이벤트에 수반되는 모든 메시지를 제거하여 PII를 효과적으로 제거합니다.

로 실행되는 mongod 또는 mongossecurity.redactClientLogData 대한 진단은 로그 이벤트와 관련된 데이터가 부족하여 더 어려울 수 있습니다. 가 로그 출력에 security.redactClientLogData 미치는 영향에 대한 예는 프로세스 로깅 매뉴얼 페이지를 참조하십시오.

실행 중인 mongod 또는 mongos에서 setParameter redactClientLogData 매개 변수와 함께 사용하여 이 설정을 구성합니다.

security.clusterIpSourceAllowlist

유형: 목록

버전 5.0에 추가.

IP 주소/CIDR(Classless Inter-Domain Routing)는 mongod 가 복제본 세트의 다른 멤버 및 샤드 클러스터의 일부인 경우 인스턴스의 인증 요청의 유효성을 검사하는 mongos 범위입니다. 는 mongod 원래 IP가 목록에 명시적으로 있거나 목록의 CIDR 범위에 속하는지 확인합니다. IP 주소가 없으면 서버는 mongod 또는 을(를)mongos 인증하지 않습니다.

security.clusterIpSourceAllowlist 은(는) 인증없이 시작된mongod에는 영향을 주지 않습니다.

security.clusterIpSourceAllowlist 은(는) 각 IPv4/6 주소 또는 클래스 없는 도메인 간 라우팅(CIDR)을 지정해야 합니다. ) 범위를 YAML 목록으로 변환합니다.

security:
clusterIpSourceAllowlist:
- 192.0.2.0/24
- 127.0.0.1
- ::1

중요

클러스터 구성 요소 간의 security.clusterIpSourceAllowlist 정상적인 통신을 보장하기 위해 mongos 배포에 { }에 각 복제본 세트 멤버 또는 의 IP 주소를 포함하는 IP 주소 또는 CIDR 범위가 포함되어 있는지 확인합니다.

security.clusterIpSourceWhitelist

유형: 목록

버전 5 에서 더 이상 사용되지 않습니다.0: 대신 security.clusterIpSourceAllowlist 를 사용합니다.

IP 주소/CIDR(Classless Inter-Domain Routing)는 mongod 가 복제본 세트의 다른 멤버 및 샤드 클러스터의 일부인 경우 인스턴스의 인증 요청의 유효성을 검사하는 mongos 범위입니다. 는 mongod 원래 IP가 목록에 명시적으로 있거나 목록의 CIDR 범위에 속하는지 확인합니다. IP 주소가 없으면 서버는 mongod 또는 을(를)mongos 인증하지 않습니다.

security.clusterIpSourceWhitelist 은(는) 인증없이 시작된mongod에는 영향을 주지 않습니다.

security.clusterIpSourceWhitelist 은(는) 각 IPv4/6 주소 또는 클래스 없는 도메인 간 라우팅(CIDR)을 지정해야 합니다. ) 범위를 YAML 목록으로 변환합니다.

security:
clusterIpSourceWhitelist:
- 192.0.2.0/24
- 127.0.0.1
- ::1

중요

클러스터 구성 요소 간의 security.clusterIpSourceWhitelist 정상적인 통신을 보장하기 위해 mongos 배포에 { }에 각 복제본 세트 멤버 또는 의 IP 주소를 포함하는 IP 주소 또는 CIDR 범위가 포함되어 있는지 확인합니다.

security:
enableEncryption: <boolean>
encryptionCipherMode: <string>
encryptionKeyFile: <string>
kmip:
keyIdentifier: <string>
rotateMasterKey: <boolean>
serverName: <string>
port: <string>
clientCertificateFile: <string>
clientCertificatePassword: <string>
clientCertificateSelector: <string>
serverCAFile: <string>
connectRetries: <int>
connectTimeoutMS: <int>
activateKeys: <boolean>
keyStatePollingSeconds: <int>
security.enableEncryption

유형: 부울

기본값: false

WiredTiger 스토리지 엔진의 암호화를 활성화합니다. 암호화 키 및 구성을 전달하려면 true 로 설정해야 합니다.

참고

엔터프라이즈 기능

MongoDB Enterprise에서만 사용할 수 있습니다.

security.encryptionCipherMode

유형: 문자열

기본값: AES256-CBC

미사용 데이터 암호화에 사용할 수 있는 암호화 모드는 다음과 같습니다.

모드
설명
AES256-CBC
Cipher Block Chaining 모드에서 256비트 고급 암호화 표준
AES256-GCM

Galois/Counter 모드에서 256비트 고급 암호화 표준

Linux에서만 사용할 수 있습니다.

버전 4.0에서 변경됨: Windows용 MongoDB Enterprise에서는 더 이상 미사용 데이터 암호화를 위한 블록 암호로 AES256-GCM을(를) 지원하지 않습니다. 이 사용 방식은 Linux에서만 지원됩니다.

참고

엔터프라이즈 기능

MongoDB Enterprise에서만 사용할 수 있습니다.

security.encryptionKeyFile

유형: 문자열

KMIP 이외 의 프로세스를 통해 키를 관리할 때 로컬 키 파일의 경로입니다. KMIP 이외의 프로세스를 통해 키를 관리하는 경우에만 설정합니다. 데이터가 이미 KMIP를 사용하여 암호화된 경우 MongoDB에서 오류가 발생합니다.

security.enableEncryptiontrue 이어야 합니다.

참고

엔터프라이즈 기능

MongoDB Enterprise에서만 사용할 수 있습니다.

security.kmip.keyIdentifier

유형: 문자열

KMIP 서버에 있는 기존 키의 고유 KMIP 식별자입니다. 식별자와 연결된 키를 시스템 키로 사용하려면 포함합니다. mongod 인스턴스에 대해 암호화를 처음 활성화할 때만 설정을 사용할 수 있습니다. 참이 되려면 security.enableEncryption 가 필요합니다.

지정되지 않았을 경우 MongoDB는 KMIP 서버에 시스템 키로 사용할 새로운 키를 생성하도록 요청합니다.

KMIP 서버가 지정된 식별자의 키를 찾을 수 없거나 데이터가 이미 키로 암호화된 경우 MongoDB에서 오류가 발생합니다.

참고

엔터프라이즈 기능

MongoDB Enterprise에서만 사용할 수 있습니다.

security.kmip.rotateMasterKey

유형: 부울

기본값: false

참인 경우, 마스터키를 순환시키고 내부 키 저장소를 다시 암호화합니다.

참고

엔터프라이즈 기능

MongoDB Enterprise에서만 사용할 수 있습니다.

다음도 참조하세요.

security.kmip.serverName

유형: 문자열

연결할 KMIP 서버의 호스트 이름 또는 IP 주소입니다. 참이 되려면 security.enableEncryption 가 필요합니다.

MongoDB 4 부터 시작.2.1 ( 4.0.14), 여러 KMIP 서버를 쉼표로 구분된 목록으로 지정할 수 있습니다(예: server1.example.com,server2.example.com. 시작 시 mongod 는 나열된 순서대로 각 서버에 연결을 시도하고 연결을 설정할 수 있는 첫 번째 서버를 선택합니다. KMIP 서버 선택은 시작 시에만 발생합니다.

mongod 는 시작 시 KMIP 서버에 대한 연결을 확인합니다.

--kmipServerName 에 지정된 서버 이름은 KMIP 서버에서 제공하는 인증서의 주체 대체 이름 SAN 또는 일반 이름 CN 과 일치해야 합니다. SAN 는 시스템 이름 또는 IP 주소일 수 있습니다.

0}이 있으면 은 와 SAN 일치를 시도하지 않습니다. mongod CN

KMIP 서버의 호스트 이름 또는 IP 주소가 SAN 또는 CN 중 하나와 일치하지 않는 경우 mongod 가 시작되지 않습니다.

MongoDB 4.2부터는 SAN 비교를 수행할 때 MongoDB에서 DNS 이름 또는 IP 주소 비교가 지원됩니다. 이전 버전에서는 MongoDB에서 DNS 이름 비교만 지원됐습니다.

참고

엔터프라이즈 기능

MongoDB Enterprise에서만 사용할 수 있습니다.

security.kmip.port

유형: 문자열

기본값: 5696

KMIP 서버와 통신하는 데 사용하는 포트 번호입니다. security.kmip.serverName 필요합니다. 참이 되려면 security.enableEncryption 가 필요합니다.

security.kmip.serverName 으로 여러 KMIP 서버를 지정하는 경우 mongod 는 제공된 모든 KMIP 서버에 대해 security.kmip.port 로 지정된 포트를 사용합니다.

참고

엔터프라이즈 기능

MongoDB Enterprise에서만 사용할 수 있습니다.

security.kmip.clientCertificateFile

유형: 문자열

KMIP 서버에 MongoDB를 인증하는 데 사용되는 .pem 파일의 경로입니다. 표시된 .pem 파일에는 TLS/SSL 인증서와 키가 모두 포함되어 있어야 합니다.

이 설정을 사용하려면 security.kmip.serverName 설정도 지정해야 합니다.

참고

4 부터 시작됩니다.0, macOS 또는 Windows에서는 PEM 키 파일 대신 운영 체제의 보안 저장소에 있는 인증서를 사용할 수 있습니다. security.kmip.clientCertificateSelector 를 참조하세요.

참고

엔터프라이즈 기능

MongoDB Enterprise에서만 사용할 수 있습니다.

security.kmip.clientCertificatePassword

유형: 문자열

클라이언트 인증서를 해독하기 위한 비밀번호(예: security.kmip.clientCertificateFile)로, KMIP 서버에 MongoDB를 인증하는 데 사용됩니다. 인증서가 암호화된 경우에만 이 옵션을 사용합니다.

참고

엔터프라이즈 기능

MongoDB Enterprise에서만 사용할 수 있습니다.

security.kmip.clientCertificateSelector

유형: 문자열

버전 4 에 추가되었습니다.0: (및 5.0)

Windows 및 macOS에서 security.kmip.clientCertificateFile 의 대안으로 사용할 수 있습니다.

security.kmip.clientCertificateFilesecurity.kmip.clientCertificateSelector 옵션은 상호 배타적입니다. 하나만 지정할 수 있습니다.

운영 체제의 인증서 저장소에서 일치하는 인증서를 선택해 MongoDB를 KMIP 서버에 인증할 때 사용할 인증서 속성을 지정합니다.

security.kmip.clientCertificateSelector<property>=<value> 형식의 인수를 허용하며, 여기서 속성은 다음 중 하나일 수 있습니다.

속성
값 유형
설명
subject
ASCII 문자열
인증서의 주체 이름 또는 일반 이름
thumbprint
16진수 문자열

16진수로 표현되는 일련의 바이트로, SHA-1 다이제스트로 공개 키를 식별하는 데 사용됩니다.

thumbprint을(를) fingerprint(이)라고 부르기도 합니다.

참고

엔터프라이즈 기능

MongoDB Enterprise에서만 사용할 수 있습니다.

security.kmip.serverCAFile

유형: 문자열

CA 파일의 경로입니다. KMIP 서버에 대한 보안 클라이언트의 연결 유효성을 검사하는 데 사용됩니다.

참고

4 부터 시작됩니다.0, macOS 또는 Windows에서는 PEM 키 파일 대신 운영 체제의 보안 저장소에 있는 인증서를 사용할 수 있습니다. security.kmip.clientCertificateSelector 를 참조하세요. 보안 저장소를 사용할 때는 security.kmip.serverCAFile 을(를) 지정할 필요는 없지만 지정할 수도 있습니다.

참고

엔터프라이즈 기능

MongoDB Enterprise에서만 사용할 수 있습니다.

security.kmip.connectRetries

형식: int

기본값: 0

KMIP 서버에 대한 초기 연결을 재시도할 수 있는 횟수입니다. connectTimeoutMS 와 함께 사용하여 각 재시도 사이에 mongod 가 응답을 기다리는 시간을 제어합니다.

참고

엔터프라이즈 기능

MongoDB Enterprise에서만 사용할 수 있습니다.

security.kmip.connectTimeoutMS

형식: int

기본값: 5000

KMIP 서버의 응답을 기다리는 시간 제한(밀리초)입니다. connectRetries 설정이 지정된 경우 mongod 는 재시도할 때마다 connectTimeoutMS 로 지정된 값까지 기다립니다.

값은 1000 이상이어야 합니다.

참고

엔터프라이즈 기능

MongoDB Enterprise에서만 사용할 수 있습니다.

security.kmip.activateKeys

유형: 부울

기본값: true

버전 5.3에 추가.

키가 생성될 때마다 새로 생성된 모든 KMIP 키를 활성화하고, 이러한 키가 활성 상태에 있는지 주기적으로 확인합니다.

security.kmip.activateKeys 이(가) true 이고 KMIP 서버에 기존 키가 있는 경우, 먼저 키를 활성화해야 하며 그렇지 않으면 mongod 노드가 시작되지 않습니다.

mongod에서 사용 중인 키가 비활성 상태로 전환되면 kmipActivateKeys 이 거짓이 아닌 한 mongod 노드가 종료됩니다. 활성 키가 있는지 확인하려면 security.kmip.rotateMasterKey 를 사용하여 KMIP 마스터 키를 순환합니다.

security.kmip.keyStatePollingSeconds

형식: int

기본값: 900초

버전 5.3에 추가.

가 활성 키를 위해 KMIP 서버를 폴링하는 빈도(초)입니다.

폴링 비활성화를 비활성화하려면 값을 -1 ~로 설정합니다.

security.kmip.useLegacyProtocol

유형: 부울

기본값: false

버전 7.0에 추가됨: (및 6.0.6)

true일 때 mongod은(는) 기본 버전 대신 KMIP 프로토콜 버전인 1.0 또는 1.1을 사용합니다. 기본 KMIP 프로토콜은 버전 1.2입니다.

KMIP 버전 1.0 또는 1.1에서 감사 로그 암호화를 사용하려면 스타트업 시 auditEncryptKeyWithKMIPGet을(를) 지정해야 합니다.

KMIP 프로토콜 버전 1.0 또는 1.1을 사용하려면 로컬 값을 대체하고 mongod 구성 파일에 다음과 같은 항목을 추가하십시오.

security:
enableEncryption: true
kmip:
serverName: "mdbhost.somecompany.com"
serverCAFile: "security/libs/trusted-ca.pem"
clientCertificateFile: "security/libs/trusted-client.pem"
useLegacyProtocol: true
security:
sasl:
hostName: <string>
serviceName: <string>
saslauthdSocketPath: <string>
security.sasl.hostName

유형: 문자열

SASL 및 Kerberos 인증을 구성하기 위한 정규화된 서버 도메인 이름입니다. SASL 호스트 이름은 SASL 및 Kerberos 구성에 대해서만 호스트 이름을 재정의합니다.

security.sasl.serviceName

유형: 문자열

SASL을 사용하는 서비스의 등록 이름입니다. 이 옵션을 사용하면 인스턴스별로 Kerberos 주 이름의 기본 Kerberos 서비스 이름 구성 요소를 재정의할 수 있습니다. 지정하지 않으면 기본값이 mongodb 사용됩니다.

MongoDB는 시작 시에만 이 옵션을 설정할 수 있습니다. setParameter 는 이 설정을 변경할 수 없습니다.

이 옵션은 MongoDB Enterprise에서만 사용할 수 있습니다.

중요

드라이버가 대체 서비스 이름을 지원하는지 확인합니다.mongosh 새로운 에 연결하는 및 기타 MongoDB 도구에 serviceName 대해서는 gssapiServiceName 옵션을 참조하세요.

security.sasl.saslauthdSocketPath

유형: 문자열

0}에 대한 UNIX 도메인 소켓 파일의 경로입니다.saslauthd

security:
ldap:
servers: <string>
bind:
method: <string>
saslMechanisms: <string>
queryUser: <string>
queryPassword: <string | array>
useOSDefaults: <boolean>
transportSecurity: <string>
timeoutMS: <int>
retryCount: <int>
userToDNMapping: <string>
authz:
queryTemplate: <string>
validateLDAPServerConfig: <boolean>
security.ldap.servers

유형: 문자열

MongoDB Enterprise에서만 사용할 수 있습니다.

2} 또는 가 사용자를 mongod mongos 인증하거나 사용자가 지정된 데이터베이스에서 수행할 수 있는 작업을 결정하는 LDAP 서버입니다. 지정된 LDAP 서버에 복제된 인스턴스가 있는 경우 각 복제된 서버의 호스트와 포트를 쉼표로 구분된 목록으로 지정할 수 있습니다.

LDAP 인프라가 여러 LDAP 서버에 걸쳐 LDAP 디렉토리를 분할하는 경우,하나 의 LDAP 서버 또는 해당 서버의 복제된 security.ldap.servers 인스턴스를 으로 지정합니다. MongoDB는 RFC 에 정의된 대로 다음과 같은 LDAP 참조를 4511 4지원합니다.1.10. 인프라의 모든 LDAP 서버를 나열하는 데 security.ldap.servers 를 사용하지 마세요.

LDAP 서버의 접두사 앞에 srv:srv_raw:를 붙일 수 있습니다.

연결 문자열에 "srv:<DNS_NAME>"이 지정되어 있는 경우 mongod는 Active Directory를 지원하는 SRV에 "_ldap._tcp.gc._msdcs.<DNS_NAME>"이 있는지 확인합니다. 이를 찾을 수 없는 경우 mongod는 SRV에 대해 "_ldap._tcp.<DNS_NAME>"이 존재하는지 확인합니다. SRV 레코드를 찾을 수 없는 경우 mongod"srv_raw:<DNS_NAME>"을 대신 사용하라는 경고를 표시합니다.

연결 문자열이 "srv_raw:<DNS_NAME>"을 지정하는 경우 mongod"<DNS NAME>"에 대한 SRV 레코드 조회를 수행합니다.

이 설정은 setParameter 을 사용하여 실행 중인 mongod 또는 mongos에서 구성할 수 있습니다.

설정하지 않으면 mongod 또는 mongos LDAP 인증 또는 권한부여를 사용할 수 없습니다.

security.ldap.bind.queryUser

유형: 문자열

MongoDB Enterprise에서만 사용할 수 있습니다.

LDAP 서버에 연결하거나 LDAP 서버에서 쿼리를 수행할 때 mongod 또는 mongos 바인드되는 ID입니다.

다음 중 하나라도 해당하는 경우에만 필요합니다.

queryUserqueryPassword 와 함께 사용해야 합니다.

설정하지 않으면 mongod 또는 mongos 가 LDAP 서버에 바인딩을 시도하지 않습니다.

이 설정은 setParameter 을 사용하여 실행 중인 mongod 또는 mongos에서 구성할 수 있습니다.

참고

Windows MongoDB 배포는 useOSDefaultsqueryUser 대신 를 queryPassword 사용할 수 있습니다.queryUser 와 를 useOSDefaults 동시에 지정할 수는 없습니다.

security.ldap.bind.queryPassword

유형: 문자열 또는 배열

MongoDB Enterprise에서만 사용할 수 있습니다.

queryUser 을(를) 사용할 때 LDAP 서버에 바인딩하는 데 사용되는 비밀번호입니다. queryPasswordqueryUser 와 함께 사용해야 합니다.

설정하지 않으면 mongod 또는 mongos LDAP 서버에 바인딩을 시도하지 않습니다.

8}을 사용하여 실행 중인 또는 mongos 에서 이 mongod setParameter 설정을 구성할 수 있습니다.

ldapQueryPassword setParameter 명령은 문자열 또는 문자열 배열을 허용합니다. ldapQueryPassword 배열에 설정하면, MongoDB는 성공할 때까지 각 암호를 순서대로 시도합니다. 비밀번호 배열을 사용하여 다운타임 없이 LDAP 계정 비밀번호를 롤오버할 수 있습니다.

참고

Windows MongoDB 배포는 useOSDefaultsqueryUser 대신 를 queryPassword 사용할 수 있습니다.queryPassword 와 를 useOSDefaults 동시에 지정할 수는 없습니다.

security.ldap.bind.useOSDefaults

유형: 부울

기본값: false

Windows 플랫폼용 MongoDB Enterprise에서만 사용할 수 있습니다.

mongod mongos 2} 또는 가 LDAP 서버에 연결할 때 Windows 로그인 자격 증명을 사용하여 인증 또는 바인딩할 수 있도록 허용합니다.

다음과 같은 경우에만 필요합니다.

useOSDefaults 을 사용하여 queryUserqueryPassword 을(를) 대체합니다.

security.ldap.bind.method

유형: 문자열

기본값: 단순

MongoDB Enterprise에서만 사용할 수 있습니다.

mongod 또는 mongos 가 LDAP 서버에 인증하는 데 사용하는 메서드입니다. queryUserqueryPassword 와 함께 사용하여 LDAP 서버에 연결합니다.

method 다음 값을 지원합니다.

  • simple - mongod 2} 또는 는 간편 인증을 mongos 사용합니다.

  • sasl - mongod 2} 또는 mongos 는 인증에 SASL 프로토콜을 사용합니다.

sasl 을 지정하면 security.ldap.bind.saslMechanisms 를 사용하여 사용 가능한 SASL 메커니즘을 구성할 수 있습니다. mongod 또는 mongos 는 기본적으로 DIGEST-MD5 메커니즘을 사용합니다.

security.ldap.bind.saslMechanisms

유형: 문자열

기본값입니다: DIGEST-MD5

MongoDB Enterprise에서만 사용할 수 있습니다.

쉼표로 구분된 SASL 메커니즘 mongod 또는 mongos 목록으로, LDAP 서버에 인증할 때 사용할 수 있습니다. mongod 8} 또는 과 LDAP 서버는 하나 이상의 메커니즘에 동의해야 mongos 합니다. mongod mongos 14} 또는 은 런타임에 호스트 머신에 설치된 모든 SASL 메커니즘 라이브러리를 동적으로 로드합니다.

2} 또는 호스트와 원격 LDAP 서버 호스트 mongod mongos 모두에 선택한 SASL 메커니즘에 적합한 라이브러리를 설치 및 구성합니다. 운영 체제에는 기본적으로 특정 SASL 라이브러리가 포함되어 있을 수 있습니다. 설치 및 구성에 대한 지침은 각 SASL 메커니즘과 관련된 설명서를 참조하세요.

Kerberos 인증에 GSSAPI SASL 메커니즘을 사용하는 경우 mongod 또는 mongos 호스트 컴퓨터에 대해 다음을 확인합니다:

Linux
Windows
Active Directory 서버에 연결하는 경우 Windows Kerberos 구성은 자동으로 티켓 부여 티켓을 생성합니다. 사용자가 시스템에 로그인할 때.useOSDefaultstruemongod 설정하여 또는 가 Active Directory 서버에 연결할 때 생성된 자격 증명을 사용하고 쿼리를 실행할 수 있도록 허용합니다.mongos

이 옵션을 사용하려면 methodsasl 로 설정합니다.

참고

SASL 메커니즘의 전체 목록은 IANA 목록 을 참조하세요. . 해당 서비스와 호환되는 SASL 메커니즘을 확인하려면 해당 LDAP 또는 Active Directory 서비스의 설명서를 참조하세요.

MongoDB는 SASL 메커니즘 라이브러리의 출처가 아닙니다. 또한, MongoDB 설명서는 특정 SASL 메커니즘 설치나 구성을 위한 절대적인 출처가 아닙니다. 설명서와 지원은 SASL 메커니즘 라이브러리 공급업체나 소유자에게 요청하시기 바랍니다.

SASL에 관한 자세한 내용은 다음 리소스를 참조하세요.

security.ldap.transportSecurity

유형: 문자열

기본값: tls

MongoDB Enterprise에서만 사용할 수 있습니다.

기본적으로 mongod 또는 mongos LDAP 서버에 대한 TLS/SSL 보안 연결을 생성합니다.

Linux 배포의 경우 파일에서 적절한 TLS 옵션을 구성해야 /etc/openldap/ldap.conf 합니다. 운영 체제의 패키지 관리자는 종속성을 통해 MongoDB Enterprise 설치의 일부로 이 파일을 생성합니다.libldap TLS Options ldap.conf OpenLDAP 설명서 에서 에 대한 설명서를 참조하세요. 자세한 내용은

Windows 배포서버의 경우, 반드시 LDAP 서버 CA 인증서를 Windows 인증서 관리 도구에 추가해야 합니다.도구의 정확한 이름과 기능은 운영 체제의 버전에 따라 다를 수 있습니다.인증서 관리에 관한 자세한 정보는 Windows 버전별 설명서를 참조하세요.

transportSecuritynone 로 설정하여 mongod 또는 mongos 와 LDAP 서버 간의 TLS/SSL을 비활성화합니다.

경고

transportSecuritynone 로 설정하면 mongod 또는 mongos 와 LDAP 서버 간에 일반 텍스트 정보와 자격 증명이 전송될 수 있습니다.

security.ldap.timeoutMS

형식: int

기본값: 10000

MongoDB Enterprise에서만 사용할 수 있습니다.

LDAP 서버가 요청에 응답할 때까지 대기해야 하는 시간(밀리초) mongod 또는 mongos입니다.

timeoutMS 값을 늘리면 실패의 원인이 연결 시간 초과인 경우 MongoDB 서버와 LDAP 서버 간의 연결 실패를 방지할 수 있습니다. timeoutMS 값을 줄이면 MongoDB가 LDAP 서버의 응답을 기다리는 시간이 줄어듭니다.

이 설정은 setParameter 을 사용하여 실행 중인 mongod 또는 mongos에서 구성할 수 있습니다.

security.ldap.retryCount

버전 6.1에 추가.

형식: int

기본값: 0

MongoDB Enterprise에서만 사용할 수 있습니다.

네트워크 오류 후 서버 LDAP 관리자가 작업을 다시 시도한 횟수입니다.

이 설정은 setParameter 을 사용하여 실행 중인 mongod 또는 mongos에서 구성할 수 있습니다.

security.ldap.userToDNMapping

유형: 문자열

MongoDB Enterprise에서만 사용할 수 있습니다.

인증을 위해 mongod 또는 mongos 에 제공된 사용자 이름을 LDAP DN(고유 이름)에 매핑합니다. 다음 시나리오에서는 userToDNMapping 를 사용하여 사용자 이름을 LDAP DN으로 변환해야 할 수 있습니다.

  • 사용자가 완전한 LDAP DN이 아닌 사용자 이름으로 MongoDB에서 인증하는 간단한 LDAP 바인딩을 사용해 LDAP 인증을 실행하는 경우

  • DN이 필요한 LDAP authorization query template 를 사용합니다.

  • 다양한 인증 메커니즘(예: x.509, kerberos)을 사용하여 Mongo DB에 인증하는 클라이언트의 사용자 이름을 권한 부여를 위해 전체 LDAP DN으로 변환합니다.

userToDNMapping 은(는) 문서의 정렬된 배열을 나타내는 따옴표로 묶인 JSON 문자열을 기대합니다. 각 문서에는 정규 표현식 match 와 들어오는 사용자 이름을 변환하는 데 사용되는 substitution 또는 ldapQuery 템플릿이 포함되어 있습니다.

배열의 각 문서는 다음과 같은 형식을 갖습니다.

{
match: "<regex>"
substitution: "<LDAP DN>" | ldapQuery: "<LDAP Query>"
}
필드
설명
예제
match
제공된 사용자 이름과 일치하는 ECMAScript 형식의 정규 표현식(regex)입니다. 괄호로 묶인 각 섹션은 substitution 또는 ldapQuery에서 사용하는 regex 캡처 그룹을 나타냅니다.
"(.+)ENGINEERING" "(.+)DBA"
substitution

정규식과 일치하는 인증 이름을 LDAP DN으로 변환하는 LDAP DN(고유 이름)match 서식 지정 템플릿입니다.중괄호로 묶인 각 숫자 값은 해당 정규식 캡처 그룹 으로 대체됩니다.match regex를 통해 인증 사용자 이름에서 추출합니다.

대체 결과는 RFC4514 이어야 합니다. 이스케이프된 문자열.

"cn={0},ou=engineering, dc=example,dc=com"
ldapQuery
정규식과 일치하는 인증 match 이름을 RFC4515 및 RFC 에 따라 인코딩된 LDAP 쿼리 URI에 삽입하는 LDAP 쿼리 서식4516 지정 템플릿입니다. 중괄호로 묶인 각 숫자 값은 해당 정규식 캡처 그룹 으로 match 대체됩니다. 표현식을 통해 인증mongod 사용자 이름에서 추출됩니다. 또는 mongos 는 LDAP 서버에 대해 쿼리를 실행하여 인증된 사용자의 LDAP DN을mongod 검색합니다. 또는 변환이 성공하려면 mongos mongod mongos 정확히 하나의 반환된 결과가 필요하며, 또는 는 이 변환을 건너뜁니다.
"ou=engineering,dc=example, dc=com??one?(user={0})"

배열의 각 문서에 대해 substitution 또는 ldapQuery 사용해야 합니다. 동일한 문서에서 둘 다 지정할 수는 없습니다 .

인증 또는 권한 부여를 수행할 때 mongod 또는 mongos 지정된 순서대로 배열의 각 문서를 살펴보고 match 필터와 비교하여 인증 사용자 이름을 확인합니다. 일치하는 항목이 발견되면 mongod 또는 mongos 변환을 적용하고 출력을 사용하여 사용자를 인증합니다. mongod 또는 mongos 는 배열의 나머지 문서를 확인하지 않습니다.

제공된 문서가 제공된 인증 이름과 일치하지 않으면 mongod 또는 mongos 문서 목록을 계속 진행하여 일치하는 문서를 추가로 찾습니다. 문서에서 일치하는 항목이 없거나 문서에서 설명하는 변환이 실패하면 mongod 또는 mongos 오류를 반환합니다.

mongod 또는 mongos 는 LDAP 서버의 네트워킹 또는 인증 실패로 인해 변환 중 하나를 평가할 수 없는 경우에도 오류를 반환합니다. mongod 또는 mongos 연결 요청을 거부하고 배열의 나머지 문서를 확인하지 않습니다.

MongoDB 5 부터 시작.0, userToDNMapping 는 매핑 문서 대신 빈 문자열 "" 또는 빈 배열 [ ] 을 허용합니다. userToDNMapping 에 빈 문자열 또는 빈 배열을 제공하는 경우 MongoDB는 인증된 사용자 이름을 LDAP DN으로 매핑합니다. 이전에는 빈 매핑 문서를 제공하면 매핑이 실패했습니다.

예제

다음은 두 개의 변환 문서를 보여줍니다. 첫 번째 문서는 @ENGINEERING 로 끝나는 모든 문자열과 일치하여 접미사 앞에 오는 모든 항목을 정규식 캡처 그룹에 배치합니다. 두 번째 문서는 @DBA 로 끝나는 모든 문자열과 일치하여 접미사 앞에 오는 모든 항목을 정규식 캡처 그룹에 배치합니다.

중요

--ldapUserToDNMapping에 배열을 문자열로 전달해야 합니다.

"[
{
match: "(.+)@ENGINEERING.EXAMPLE.COM",
substitution: "cn={0},ou=engineering,dc=example,dc=com"
},
{
match: "(.+)@DBA.EXAMPLE.COM",
ldapQuery: "ou=dba,dc=example,dc=com??one?(user={0})"
}
]"

사용자 이름이 alice@ENGINEERING.EXAMPLE.COM인 사용자가 첫 번째 문서와 일치합니다. Regex 캡처 그룹 {0}은 문자열 alice에 해당합니다. 결과 출력은 DN "cn=alice,ou=engineering,dc=example,dc=com"입니다.

사용자 이름이 bob@DBA.EXAMPLE.COM 인 사용자가 두 번째 문서와 일치합니다. 정규식 캡처 그룹 {0} 은 문자열 bob에 해당합니다. 결과 출력은 LDAP 쿼리 "ou=dba,dc=example,dc=com??one?(user=bob)"입니다. {mongod 6} 또는 은 mongos LDAP 서버에 대해 이 쿼리를 실행하여 결과 을 반환합니다."cn=bob,ou=dba,dc=example,dc=com"

userToDNMapping 이 설정되지 않은 경우 mongod 또는 mongos 는 LDAP 서버에 대해 사용자를 인증하거나 권한을 부여하려고 할 때 사용자 이름에 변환을 적용하지 않습니다.

이 설정은 실행 중인 mongod 또는 mongos에서 setParameter 데이터베이스 명령을 사용하여 구성할 수 있습니다.

security.ldap.authz.queryTemplate

유형: 문자열

MongoDB Enterprise에서만 사용할 수 있습니다.

RFC4515 을 준수하는 형식의 mongod 상대 LDAP 쿼리 URL입니다. 및 RFC 가 인증된 사용자가 속한 LDAP 그룹을 가져오기 위해4516 security.ldap.servers 실행합니다. 쿼리는 에 지정된 하나 이상의 호스트를 기준으로 합니다.

URL에서 다음과 같은 대체 토큰을 사용할 수 있습니다.

대체 토큰
설명
{USER}
인증된 사용자 이름을 대체하거나 이 지정된 transformed userToDNMapping 경우 사용자 이름을 대체합니다.
{PROVIDED_USER}

제공된 사용자 이름(예: 인증 또는 LDAP transformation 이전)을 대체합니다.

버전 4.2에 추가되었습니다.

쿼리 URL을 구성할 때 LDAP 매개 변수의 순서가 RFC4516을 준수하는지 확인하세요.

[ dn [ ? [attributes] [ ? [scope] [ ? [filter] [ ? [Extensions] ] ] ] ] ]

쿼리에 속성이 포함된 경우 mongod 쿼리에서 이 엔터티가 멤버인 DN의 목록을 검색한다고 가정합니다.

쿼리에 속성이 포함되지 않은 경우 mongod 쿼리에서 사용자가 멤버인 모든 엔티티를 검색한다고 가정합니다.

쿼리에서 반환된 각 LDAP DN에 대해 mongod admin 데이터베이스에서 권한이 부여된 사용자에게 해당 역할을 할당합니다. 4} 데이터베이스의 역할이 DN과 정확히 일치하는mongod 경우 admin 은 사용자에게 해당 역할에 할당된 역할 및 권한을 부여합니다. 역할 생성에 대한 자세한 내용은 db.createRole() 방법을 참조하세요.

예제

이 LDAP 쿼리는 LDAP 사용자 개체의 memberOf 속성에 나열된 모든 그룹을 반환합니다.

"{USER}?memberOf?base"

LDAP 구성에 memberOf 속성이 사용자 스키마의 일부로 포함되어 있지 않거나, 그룹 멤버십을 보고하는 데 다른 속성이 있거나, 속성을 통해 그룹 멤버십을 추적하지 못할 수 있습니다. 고유한 LDAP 구성과 관련하여 쿼리를 구성합니다.

설정하지 않으면 mongod 은 LDAP를 사용하는 사용자를 인증할 수 없습니다.

이 설정은 실행 중인 mongod에서 setParameter 데이터베이스 명령을 사용하여 구성할 수 있습니다.

참고

RFC 에 대한 설명 ,RFC 또는 LDAP4515 쿼리는 MongoDB 문서의 범위를 벗어납니다. RFC를직접 검토하거나 선호하는 LDAP 리소스를 사용하세요.4516

security.ldap.validateLDAPServerConfig

유형: 부울

기본값: true

MongoDB Enterprise에서만 사용할 수 있습니다.

mongod 또는 mongos 인스턴스가 시작의 일부로 LDAP server(s) 의 가용성을 확인하는지 여부를 결정하는 플래그입니다.

  • true mongod mongos 0}이면 또는 인스턴스가 가용성 검사를 수행하여 LDAP 서버를 사용할 수 있는 경우에만 계속 시작합니다.

  • 0}이면 false mongod 또는 인스턴스는 가용성 확인을 건너뜁니다.mongos 즉, LDAP 서버를 사용할 수 없는 경우에도 인스턴스가 시작됩니다.

setParameter

MongoDB 서버 매개 변수에 설명된 MongoDB매개 변수 또는 매개 변수를 설정합니다.

YAML 구성 파일에서 매개 변수를 설정하려면 다음 형식을 사용합니다:

setParameter:
<parameter1>: <value1>
<parameter2>: <value2>

예를 들어, 구성 파일에서 enableLocalhostAuthBypass 를 지정하려면

setParameter:
enableLocalhostAuthBypass: false
setParameter.ldapUserCacheInvalidationInterval

형식: int

기본값: 30

LDAP 인증을 사용하는 mongod서버와 함께 사용합니다.

외부 사용자 캐시 플러시 사이의 대기 간격 (초) mongod 5}가 외부 사용자 캐시를 플러시한 후 MongoDB는 다음에 LDAP 권한이 있는 사용자가 작업을 실행할 때 LDAP 서버에서 권한 부여 데이터를 다시 mongod 가져옵니다.

지정된 값을 늘리면 mongod 시간이 늘어나고 LDAP 서버가 동기화되지 않을 수 있지만 LDAP 서버의 로드는 줄어듭니다. 반대로 지정된 값을 줄이면 시간 mongod 이 줄어들고 LDAP 서버의 부하가 증가하면서 LDAP 서버가 동기화되지 않을 수 있습니다.

setParameter:
ldapUserCacheInvalidationInterval: <int>

버전 6.1에서 변경되었습니다:

  • MongoDB는 항상 저널링을 지원합니다. 결과적으로 MongoDB는 storage.journal.enabled 옵션과 해당 --journal--nojournal 명령줄 옵션을 제거합니다.

storage:
dbPath: <string>
journal:
commitIntervalMs: <num>
directoryPerDB: <boolean>
syncPeriodSecs: <int>
engine: <string>
wiredTiger:
engineConfig:
cacheSizeGB: <number>
journalCompressor: <string>
directoryForIndexes: <boolean>
maxCacheOverflowFileSizeGB: <number>
collectionConfig:
blockCompressor: <string>
indexConfig:
prefixCompression: <boolean>
inMemory:
engineConfig:
inMemorySizeGB: <number>
oplogMinRetentionHours: <double>
storage.dbPath

유형: 문자열

기본값:

  • /data/db Linux 및 macOS에서

  • \data\db Windows

mongod 인스턴스가 데이터를 저장하는 디렉터리입니다.

storage.dbPath 설정은 mongod 에만 사용할 수 있습니다.

참고

구성 파일

패키지 관리자 설치에 포함된 기본 mongod.conf 구성 파일은 storage.dbPath 에 대해 다음과 같은 플랫폼별 기본값을 사용합니다.

플랫폼
패키지 관리자
기본값 storage.dbPath
RHL/CentOS 및 아마존
yum
/var/lib/mongo
SUSE
zypper
/var/lib/mongo
우분투 및 데비안
apt
/var/lib/mongodb
macOS
brew
/usr/local/var/mongodb

Linux 패키지 초기화 스크립트는 storage.dbPath 가 기본값에서 변경될 것으로 예상하지 않습니다. Linux 패키지를 사용하고 storage.dbPath 을(를) 변경하는 경우 자체 초기화 스크립트를 사용하고 내장 스크립트를 비활성화해야 합니다.

storage.journal.commitIntervalMs

유형: 숫자

기본값: 100

mongod 프로세스에서 저널 작업 간에 허용하는 최대 시간 (밀리초) 입니다. 값의 범위는 1~500밀리초입니다. 값이 낮을수록 디스크 성능이 저하되는 대신 저널의 내구성이 높아집니다.

WiredTiger에서 기본 저널 커밋 간격은 100 밀리초입니다. 또한 j:true 를 포함하거나 암시하는 쓰기는 즉시 저널 동기화를 유발합니다. 동기화 빈도에 영향을 미치는 자세한 내용이나 추가 조건은 저널링 프로세스를 참조하세요.

storage.journal.commitIntervalMs 설정은 mongod 에만 사용할 수 있습니다.

인메모리 저장소 엔진을 사용하는 인스턴스에는 mongod사용할 수 없습니다.

참고

4 의 알려진 문제.2.0: 4 에서 storage.journal.commitIntervalMs 이 누락되었습니다.2.0.

storage.directoryPerDB

유형: 부울

기본값: false

true 인 경우, MongoDB는 별도의 디렉토리를 사용하여 각 데이터베이스의 데이터를 저장합니다. 디렉토리는 storage.dbPath 디렉토리 아래에 있으며 각 하위 디렉토리 이름은 데이터베이스 이름에 해당합니다.

storage.directoryPerDB 설정은 mongod 에만 사용할 수 있습니다.

인메모리 저장소 엔진을 사용하는 인스턴스에는 mongod사용할 수 없습니다.

MongoDB 5 부터 시작.0, storage.directoryPerDB 가 활성화된 상태에서 데이터베이스의 최종 컬렉션을 삭제하거나 데이터베이스 자체를 삭제하면 해당 데이터베이스의 새로 빈 하위 디렉토리가 삭제됩니다.

기존 배포에 대한 storage.directoryPerDB 옵션을 변경하려면 다음을 수행합니다.

  • 독립형 인스턴스의 경우:

    1. 기존 mongodump mongod 인스턴스에서 를 사용하여 백업을 생성합니다.

    2. mongod 인스턴스를 중지합니다.

    3. storage.directoryPerDB 추가하고 새 데이터 디렉토리를 구성합니다.

    4. mongod 인스턴스를 다시 시작합니다.

    5. mongorestore 를 사용하여 새 데이터 디렉토리를 채웁니다.

  • 복제본 세트의 경우:

    1. 보조 구성원을 중지합니다.

    2. storage.directoryPerDB 추가하고 해당 세컨더리 멤버에 새 데이터 디렉토리를 구성합니다.

    3. 보조 구성원을 다시 시작합니다.

    4. 초기 동기화를 사용하여 새 데이터 디렉토리를 채웁니다.

    5. 다른 보 조구성원도 동일한 방식으로 업데이트합니다.

    6. 프라이머리를 물러나게 하고, 물러난 구성원을 같은 방식으로 업데이트합니다.

storage.syncPeriodSecs

유형: 숫자

기본값: 60

MongoDB가 데이터를 데이터 파일로 플러시하기까지 경과할 수 있는 시간입니다.

프로덕션 시스템에서는 이 값을 설정하지 마십시오. 거의 모든 상황에서 기본 설정을 사용해야 합니다.

mongod 프로세스는 데이터를 저널에 매우 빠르게 기록하고 데이터 파일에는 느리게 기록합니다. storage.syncPeriodSecs 은(는) 저널링 에는 영향을 주지 않지만 storage.syncPeriodSecs0 로 설정된 경우 저널은 결국 사용 가능한 디스크 공간을 모두 사용합니다.

storage.syncPeriodSecs 설정은 mongod 에만 사용할 수 있습니다.

인메모리 저장소 엔진을 사용하는 인스턴스에는 mongod사용할 수 없습니다.

WiredTiger내구성 있는 데이터를 제공하기 위해 체크포인트를 사용합니다. 자세한 내용은 저널링 및 WiredTiger 스토리지 엔진을 참조하세요.

storage.engine

기본값: wiredTiger

참고

버전 4.2부터는 MongoDB가 사용 중단된 MMAPv1 스토리지 엔진을 제거합니다.

mongod 데이터베이스의 스토리지 엔진. 사용 가능한 값은 다음과 같습니다:

설명
wiredTiger
WiredTiger 스토리지 엔진을 지정합니다.
inMemory

인메모리 스토리지 엔진을 지정합니다.

MongoDB Enterprise에서만 사용할 수 있습니다.

storage.engine 에서 지정한 스토리지 엔진이 아닌 다른 스토리지 엔진에서 생성한 데이터 파일이 포함된 storage.dbPathmongod 를 시작하려고 하면 mongod 시작을 거부합니다.

storage.oplogMinRetentionHours

유형: 더블

oplog 항목을 보존할 최소 시간 수를 지정하며, 여기서 소수점 값은 시간의 분수를 나타냅니다. 예를 들어 1.5 값은 1시간 30분을 나타냅니다.

값은 0보다 크거나 같아야 합니다. 0 값은 구성된 최대 oplog 크기를 유지하기 위해 mongod 명령에서 가장 오래된 항목부터 시작하여 oplog를 잘라야 함을 나타냅니다.

기본값은 0입니다.

3}으로 mongod 시작하는 는 oplogMinRetentionHours 다음과 같은 경우에만 oplog 항목을 제거합니다:

  • oplog가 구성된 최대 크기에 도달하고

  • oplog 항목이 호스트 시스템 시계를 기준으로 구성된 시간보다 오래된 경우

최소 oplog 보존 기간으로 구성한 경우 mongod 다음과 같은 동작을 합니다:

  • oplog는 구성된 시간 동안 oplog 항목을 유지하기 위해 제한 없이 늘릴 수 있습니다. 하지만 이로 인해 쓰기의 양이 많아지고 보유 기간이 늘어나며 시스템 디스크 공간이 줄어들거나 고갈될 수 있습니다.

  • oplog가 최대 크기를 초과하여 커지면 mongod oplog가 최대 크기로 돌아가거나 더 작은 최대 크기로 구성된 경우에도 해당 디스크 공간을 계속 보유할 수 있습니다. Oplog 크기를 줄이면 디스크 공간이 즉시 반환되지 않음을참조하세요.

  • 2}는 oplog 항목 보존을 적용할 때 시스템 벽시계와 oplog 항목 생성 벽시계 시간을 mongod 비교합니다. 클러스터 구성 요소 간의 클록 드리프트는 예기치 않은 oplog 유지 동작을 초래할 수 있습니다. 클러스터 구성원 간의 시계 동기화에 대한 자세한 내용은 시계 동기화를 참조하세요.

mongod 을(를) 시작한 후 최소 oplog 보존 기간을 변경하려면 replSetResizeOplog 를 사용합니다. replSetResizeOplog 를 사용하면 mongod 프로세스를 다시 시작하지 않고도 oplog의 크기를 동적으로 조정할 수 있습니다. replSetResizeOplog 를 사용하여 변경한 내용을 재시작 후에도 유지하려면 oplogMinRetentionHours 의 값을 업데이트합니다.

storage:
wiredTiger:
engineConfig:
cacheSizeGB: <number>
journalCompressor: <string>
directoryForIndexes: <boolean>
maxCacheOverflowFileSizeGB: <number>
collectionConfig:
blockCompressor: <string>
indexConfig:
prefixCompression: <boolean>
storage.wiredTiger.engineConfig.cacheSizeGB

형식: float

WiredTiger가 모든 데이터에 사용하는 내부 캐시의 최대 크기를 정의합니다. 인덱스 빌드에 사용되는 메모리(maxIndexBuildMemoryUsageMegabytes 참조)는 WiredTiger 캐시 메모리와 분리되어 있습니다.

값의 범위는 0.25GB에서 10000GB까지입니다.

MongoDB 3.4부터는 기본 WiredTiger 내부 캐시 크기가 다음 중 큰 값으로 설정됩니다.

  • (RAM - 1GB)의 50%

  • 256MB

예를 들어 총 RAM이 4GB인 시스템에서 WiredTiger 캐시는 1 사용합니다.5GB RAM(0.5 * (4 GB - 1 GB) = 1.5 GB). 반대로 총 1 인 시스템에서는 25 GB RAM WiredTiger는 WiredTiger 캐시에 256 MB를 할당하는데, 이는 전체 RAM에서 1기가바이트를 뺀 값의 절반 이상이기 때문입니다(0.5 * (1.25 GB - 1 GB) = 128 MB < 256 MB).

참고

컨테이너에서 실행할 때 등의 일부 인스턴스에서는 데이터베이스 메모리 제한이 총 시스템 메모리보다 낮을 수 있습니다. 이러한 인스턴스에서는 총 시스템 메모리가 아니라 이 메모리 제한이 사용 가능한 최대 RAM으로 사용됩니다.

메모리 제한을 보려면 hostInfo.system.memLimitMB 참조하세요.

WiredTiger 내부 캐시 크기를 기본값 이상으로 늘리지 마세요.

MongoDB는 WiredTiger를 통해 내부 캐시와 파일 시스템 캐시 모두를 활용합니다.

파일 시스템 캐시를 사용하면 MongoDB는 WiredTiger 캐시나 다른 프로세스에서 사용하지 않는 모든 여유 메모리를 자동으로 사용합니다.

참고

storage.wiredTiger.engineConfig.cacheSizeGB 는 WiredTiger 내부 캐시의 크기를 제한합니다. 운영 체제는 사용 가능한 여유 메모리를 파일 시스템 캐시에 사용하므로 압축된 MongoDB 데이터 파일을 메모리에 유지할 수 있습니다. 또한 운영 체제는 여유 RAM을 사용하여 파일 시스템 차단과 파일 시스템 캐시를 버퍼링합니다.

추가적인 RAM 소비를 수용하려면 WiredTiger 내부 캐시 크기를 줄여야 할 수 있습니다.

기본 WiredTiger 내부 캐시 크기 값은 머신당 단일 mongod 인스턴스가 있다고 가정합니다. 단일 머신에 여러 MongoDB 인스턴스가 포함된 경우 다른 mongod 인스턴스를 수용할 수 있도록 설정을 줄여야 합니다.

시스템에서 사용 가능한 모든 RAM에 액세스할 수 없는 mongod 컨테이너(예: lxc, cgroups, Docker storage.wiredTiger.engineConfig.cacheSizeGB 등)에서 를 실행하는 경우 를 다음 값으로 설정해야 합니다. 컨테이너에서 사용 가능한 RAM의 양보다 적습니다. 정확한 양은 컨테이너에서 실행 중인 다른 프로세스에 따라 달라집니다. 를 memLimitMB 참조하세요.

storage.wiredTiger.engineConfig.journalCompressor

기본값: snappy

WiredTiger 저널 데이터를 압축하는 데 사용할 압축 유형을 지정합니다.

사용할 수 있는 압축 옵션은 다음과 같습니다.

storage.wiredTiger.engineConfig.directoryForIndexes

유형: 부울

기본값: false

storage.wiredTiger.engineConfig.directoryForIndexestrue 일 때, mongod 는 인덱스와 컬렉션을 데이터 디렉토리 (예: storage.dbPath) 아래의 별도 하위 디렉토리에 저장합니다. 구체적으로, mongodindex 라는 하위 디렉토리에 인덱스를 저장하고 collection 이라는 하위 디렉토리에 컬렉션 데이터를 저장합니다.

기호 링크를 사용하면 인덱스에 대해 다른 위치를 지정할 수 있습니다. 구체적으로, mongod 인스턴스가 실행 중이 아닌 경우 index 하위 디렉터리를 대상으로 이동하고 데이터 디렉터리 아래에 새 대상에 대한 index 라는 심볼릭 링크를 만듭니다.

storage.wiredTiger.engineConfig.zstdCompressionLevel

유형: integer

기본값: 6

zstd 압축기를 사용할 때 적용되는 압축 수준을 지정합니다.

값의 범위는 1에서 22까지입니다.

zstdCompressionLevel 에 지정된 값이 높을수록 적용되는 압축도 높아집니다.

blockCompressor 이(가) zstd(으)로 설정된 경우에만 적용됩니다.

(MongoDB 5.0부터 사용 가능)

storage.wiredTiger.collectionConfig.blockCompressor

기본값: snappy

컬렉션 데이터의 기본 압축을 지정합니다. 컬렉션을 만들 때 컬렉션별로 재정의할 수 있습니다.

사용할 수 있는 압축 옵션은 다음과 같습니다.

storage.wiredTiger.collectionConfig.blockCompressor 는 생성된 모든 컬렉션에 영향을 줍니다. 기존 MongoDB 배포에서 storage.wiredTiger.collectionConfig.blockCompressor 값을 변경하면 모든 새 컬렉션은 지정된 압축기를 사용합니다. 기존 컬렉션은 생성 시 지정된 압축기 또는 당시의 기본 압축기를 계속 사용합니다.

storage.wiredTiger.indexConfig.prefixCompression

기본값: true

인덱스 데이터에 대한 접두사 압축 활성화하거나 비활성화합니다.

인덱스 데이터에 대한 접두사 압축 storage.wiredTiger.indexConfig.prefixCompression 을 사용하려면 에 을 지정하고,true false 인덱스 데이터에 대한 접두사 압축을 사용하지 않으려면 을 지정합니다.

storage.wiredTiger.indexConfig.prefixCompression 설정은 생성된 모든 인덱스에 영향을 줍니다. 기존 MongoDB 배포에서 storage.wiredTiger.indexConfig.prefixCompression 값을 변경하면 모든 새 인덱스는 접두사 압축을 사용합니다. 기존 인덱스는 영향을 받지 않습니다.

storage:
inMemory:
engineConfig:
inMemorySizeGB: <number>
storage.inMemory.engineConfig.inMemorySizeGB

형식: float

기본값: 물리적 RAM의 50%(1GB 미만)

값의 범위는 256MB에서 10TB까지이며, 부동 소수점도 가능합니다.

인덱스, 가 복제본 세트, 복제본 세트 또는 샤드 클러스터 mongod 메타데이터의 일부인 경우 oplog 등을 포함하여 인메모리 스토리지 엔진 데이터에 할당할 최대 메모리 양입니다.

인메모리 스토리지 엔진은 물리적 RAM에서 1GB를 뺀 값의 50%를 사용하도록 기본 설정되어 있습니다.

참고

엔터프라이즈 기능

MongoDB Enterprise에서만 사용할 수 있습니다.

operationProfiling:
mode: <string>
slowOpThresholdMs: <int>
slowOpSampleRate: <double>
filter: <string>
operationProfiling.mode

유형: 문자열

기본값: off

프로파일링 해야 하는 작업을 지정합니다. 사용할 수 있는 수준은 다음과 같습니다.

수준
설명
off
프로파일러가 꺼져 있고 데이터를 수집하지 않습니다. 이것이 기본 설정된 프로파일러 수준입니다.
slowOp
프로파일러는 slowms 값보다 오래 걸리는 작업에 대한 데이터를 수집합니다.
all
프로파일러가 모든 작업의 데이터를 수집합니다.

경고

프로파일링은 성능을 저하시키고 시스템 로그에서 암호화되지 않은 쿼리 데이터를 노출시킬 수 있습니다. 프로덕션 배포서버에서 프로파일러를 구성하고 활성화하기 전에 이것이 성능과 보안에 미치는 영향을 신중하게 고려하세요.

잠재적인 성능 저하에 대한 자세한 내용은 프로파일러 오버헤드를 참조하십시오.

operationProfiling.slowOpThresholdMs

유형: integer

기본값: 100

느린 작동 시간 임계값(밀리초 단위)입니다. 이 임계값보다 오래 실행되는 작업은 느린 것으로 간주됩니다.

를 로 logLevel 0설정하면 MongoDB는 slowOpSampleRate의해 결정된 속도로 진단 로그에 느린 작업을 기록합니다.

logLevel 설정이 높으면 지연 시간에 관계없이 모든 작업이 진단 로그에 표시되지만, 세컨더리에 의한 느린 oplog 항목 메시지 로깅은 예외입니다. 세컨더리는 느린 oplog 항목만 기록합니다. logLevel 를 늘려도 모든 oplog 항목이 기록되지는 않습니다.

이 설정은 mongodmongos사용할 수 있습니다.

  • mongod 2} 인스턴스의 경우 이 설정은 진단 로그와 프로파일러(사용 설정된 경우)에 모두 영향을 줍니다.

  • mongos 2} 인스턴스의 경우 에서는 프로파일링을 사용할 수 없으므로 이 설정은 진단 로그에만 영향을 미치고 프로파일러에는 영향을 미치지 mongos 않습니다.

operationProfiling.slowOpSampleRate

유형: 더블

기본값: 1.0

프로파일링하거나 기록해야 하는 느린 작업의 비율입니다. operationProfiling.slowOpSampleRate 은 0 ~ 1 사이의 값을 허용합니다.

버전 4.0에서 변경되었습니다: 2} 설정은 slowOpSampleRate mongod mongos 및 에 사용할 수 있습니다. 이전 버전에서는 slowOpSampleRate mongod에서만 사용할 수 있습니다.

  • mongod 2} 인스턴스의 경우 이 설정은 진단 로그와 프로파일러(사용 설정된 경우)에 모두 영향을 줍니다.

  • mongos mongos2}인스턴스의 경우 에서는 프로파일링을 사용할 수 없으므로 이 설정은 진단 로그에만 영향을 미치고 프로파일러에는 영향을 미치지 않습니다.

operationProfiling.filter

Type: 쿼리 문서의 문자열 표현

프로파일링되고 기록되는 작업을 제어하는 필터 식입니다.

filter 을(를) 설정하면 slowOpThresholdMsslowOpSampleRate 이(가) 프로파일링 및 느린 쿼리 로그 줄에 사용되지 않습니다.

구성 파일에서 프로필 필터를 설정하면 해당 필터는 배포의 모든 데이터베이스에 적용됩니다. 특정 데이터베이스에 대한 프로필 필터를 설정하려면 db.setProfilingLevel() 메서드를 사용합니다.

이 옵션은 다음과 같은 형식으로 쿼리 문서에 대한 문자열을 표현합니다.

{ <field1>: <expression1>, ... }

<field>프로파일러 출력의 모든 필드일 수 있습니다. <expression>쿼리 조건 표현식입니다.

구성 파일에서 프로파일링 필터를 지정하려면 다음과 같이 해야 합니다:

  • 필터 문서를 작은따옴표로 묶어 문자열로 전달하려면 필터 문서를 작은따옴표로 묶습니다.

  • 구성 파일의 YAML 형식을 사용합니다.

예를 들어, 다음 filter 2초 이상 걸리는 query 작업을 기록하도록 프로파일러를 구성합니다.

operationProfiling:
mode: all
filter: '{ op: "query", millis: { $gt: 2000 } }'
replication:
oplogSizeMB: <int>
replSetName: <string>
enableMajorityReadConcern: <boolean>
replication.oplogSizeMB

유형: integer

oplog 의 최대 크기(MB)입니다. oplogSizeMB 설정은 디스크의 크기가 아닌 압축되지 않은 oplog의 크기를 구성합니다.

참고

2}가 삭제되는 것을 방지하기 위해 oplog가 구성된 크기 제한을 초과하여 커질 수 majority commit point 있습니다.

기본적으로 mongod 프로세스는 사용 가능한 최대 공간을 기준으로 oplog를 생성합니다. 64비트 시스템의 경우 oplog는 일반적으로 사용 가능한 디스크 공간의 5%입니다.

mongod 가 처음으로 oplog를 생성한 후에는 replication.oplogSizeMB 옵션을 변경해도 oplog의 크기에 영향을 주지 않습니다. mongod 을(를) 시작한 후 최대 oplog 크기를 변경하려면 replSetResizeOplog 를 사용합니다. replSetResizeOplog 를 사용하면 mongod 프로세스를 다시 시작하지 않고도 oplog의 크기를 동적으로 조정할 수 있습니다. replSetResizeOplog 를 사용하여 변경한 내용을 재시작 후에도 유지하려면 oplogSizeMB 값을 업데이트합니다.

자세한 내용은 oplog 크기에서 확인하세요.

replication.oplogSizeMB 설정은 mongod 에만 사용할 수 있습니다.

replication.replSetName

유형: 문자열

mongod 가 속한 복제본 세트의 이름입니다. 복제본 세트의 모든 호스트는 세트 이름이 같아야 합니다.

애플리케이션이 2개 이상의 복제본 세트에 연결된 경우 각 세트의 이름이 달라야 합니다. 일부 드라이버는 복제본 세트 이름으로 복제본 세트 연결을 그룹화합니다.

replication.replSetName 설정은 mongod 에만 사용할 수 있습니다.

MongoDB 4.0부터 도입됨,

replication.enableMajorityReadConcern

기본값: true

"majority" 읽기 고려를 위한 지원을 구성합니다.

MongoDB 5 부터 시작.0, enableMajorityReadConcern 는 변경할 수 없으며 항상 true 로 설정됩니다. --enableMajorityReadConcern 옵션을 사용하여 과반수 읽기 문제를 지원하지 않는 스토리지 엔진을 시작하려고 하면 실패하고 오류 메시지가 반환됩니다.

이전 버전의 MongoDB에서는 enableMajorityReadConcern 를 구성할 수 있었습니다.

경고

프라이머리-세컨더리-중재자(PSA) 아키텍처를 사용 중이라면 다음을 고려하세요.

  • 쓰기 고려 "majority"는 세컨더리를 사용할 수 없거나 지연되었을 때 성능 문제를 일으킬 수 있습니다. 이러한 문제를 완화하는 방법은 PSA 복제본 세트의 성능 문제 완화를 참조하세요.

  • 글로벌 기본값 "majority"를 사용하고 있고, 쓰기 고려가 과반수 크기보다 작으면 쿼리가 오래된 (완전히 복제되지 않은) 부실 데이터를 반환할 수 있습니다.

sharding:
clusterRole: <string>
archiveMovedChunks: <boolean>
sharding.clusterRole

유형: 문자열

2} 인스턴스가 샤딩된 클러스터에서 mongod 갖는 역할입니다. 이 설정을 다음 중 하나로 설정합니다:

설명
configsvr

이 인스턴스를 구성 서버 로 시작합니다. 인스턴스는 기본적으로 포트 27019 에서 시작됩니다.

MongoDB 인스턴스를 clusterRole configsvr 로 구성할 때는 replSetName 도 지정해야 합니다.

shardsvr

이 인스턴스를 샤드 로 시작합니다. 인스턴스는 기본적으로 포트 27018 에서 시작됩니다.

MongoDB 인스턴스를 clusterRole shardsvr 로 구성할 때는 replSetName 도 지정해야 합니다.

참고

sharding.clusterRole 를 설정하려면 mongod 인스턴스가 복제와 함께 실행 중이어야 합니다. 인스턴스를 복제본 세트 멤버로 배포하려면 replSetName 설정을 사용하고 복제본 세트의 이름을 지정합니다.

sharding.clusterRole 설정은 mongod 에만 사용할 수 있습니다.

sharding.archiveMovedChunks

유형: 부울

기본값: false.

청크 마이그레이션이 진행되는 중 샤드는 해당 샤드에서 마이그레이션된 문서를 저장하지 않습니다.

참고

MongoDB EnterpriseMongoDB Atlas 에서만 사용할 수 있습니다.

auditLog:
destination: <string>
format: <string>
path: <string>
filter: <string>
auditLog.auditEncryptionKeyIdentifier

유형: 문자열

버전 6.0에 추가.

감사 로그 암호화를 위한 Key Management Interoperability Protocol(KMIP) 키의 고유 식별자를 지정합니다.

auditLog.auditEncryptionKeyIdentifierauditLog.localAuditKeyFile 는 함께 사용할 수 없습니다.

참고

MongoDB Enterprise 에서만 사용할 수 있습니다. MongoDB Enterprise와 Atlas의 구성 요구 사항은 서로 다릅니다.

auditLog.compressionMode

유형: 문자열

버전 5.3에 추가.

감사 로그 암호화 를 위한 압축 모드를 지정합니다. 또한 auditLog.auditEncryptionKeyIdentifier 또는 auditLog.localAuditKeyFile 를 사용하여 감사 로그 암호화를 활성화해야 합니다.

auditLog.compressionMode 다음 값 중 하나로 설정할 수 있습니다.

설명
zstd
zstd 알고리즘을 사용하여 감사 로그를 압축합니다.
none (기본값)
감사 로그를 압축하지 마세요.

참고

MongoDB Enterprise 에서만 사용할 수 있습니다. MongoDB Enterprise와 Atlas의 구성 요구 사항은 서로 다릅니다.

auditLog.destination

유형: 문자열

설정된 경우 auditLog.destination감사 를 활성화하고 mongos 또는 mongod 가 모든 감사 이벤트를 전송하는 위치를 지정합니다.

auditLog.destination 다음 값 중 하나를 가질 수 있습니다.

설명
syslog

시스템 로그에 감사 이벤트를 JSON 형식으로 출력합니다. Windows에서는 사용할 수 없습니다. 감사 메시지의 시스템 로그 심각도 수준은 info이고, 시설 수준은 user입니다.

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

console
stdout에 감사 이벤트를 JSON 형식으로 출력합니다.
file
auditLog.format 에 지정된 형식으로 auditLog.path 에 지정된 파일에 감사 이벤트를 출력합니다

참고

MongoDB EnterpriseMongoDB Atlas 에서만 사용할 수 있습니다.

auditLog.filter

유형: 문서의 문자열 표현

감사 시스템이 기록하는 작업 유형을 제한하는 필터입니다. 이 옵션은 다음과 같은 형식으로 쿼리 문서에 대한 문자열을 표현합니다.

{ <field1>: <expression1>, ... }

<field>은(는) param 문서에서 반환된 필드를 포함해 감사 메시지에 있는 그 어떤 필드도 될 수 있습니다. <expression>은(는) 쿼리 조건 표현식입니다.

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

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

참고

MongoDB EnterpriseMongoDB Atlas 에서만 사용할 수 있습니다.

auditLog.format

유형: 문자열

destination 인 경우 감사 출력 파일의 file 형식입니다. 옵션은 다음 값 중 하나를 auditLog.format 가집니다.

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

참고

MongoDB EnterpriseMongoDB Atlas 에서만 사용할 수 있습니다.

auditLog.localAuditKeyFile

유형: 문자열

버전 5.3에 추가.

감사 로그 암호화를 위한 로컬 감사 키 파일의 경로와 파일 이름을 지정합니다.

참고

키가 보호되지 않았으므로 테스트에만 auditLog.localAuditKeyFile 를 사용합니다. 키를 보호하려면 auditLog.auditEncryptionKeyIdentifier 및 외부 키 관리 상호 운용성 프로토콜(KMIP) 서버를 사용합니다.

auditLog.localAuditKeyFileauditLog.auditEncryptionKeyIdentifier 는 함께 사용할 수 없습니다.

참고

MongoDB Enterprise 에서만 사용할 수 있습니다. MongoDB Enterprise와 Atlas의 구성 요구 사항은 서로 다릅니다.

auditLog.path

유형: 문자열

의 값이 인 destination 경우 감사 출력 file 파일입니다. 옵션은 전체 경로 이름 또는 상대 경로 이름을 auditLog.path 사용할 수 있습니다.

auditLog.runtimeConfiguration

유형: 부울

노드에서 감사 필터 및 AuditAuthorizationSuccess 변수의 런타임 구성을 허용하는지 여부를 지정합니다. 0}이면 true 노드가 온라인 감사 필터 관리에 참여할 수 있습니다.

replication:
localPingThresholdMs: <int>
sharding:
configDB: <string>
replication.localPingThresholdMs

유형: integer

기본값: 15

mongos 가 클라이언트에서 읽기 작업을 전달할 세컨더리 복제본 세트 멤버를 결정하는 데 사용하는 핑 시간(밀리초)입니다. 기본값 15 은 모든 클라이언트 드라이버의 기본값에 해당합니다.

mongos세컨더리 멤버에 대한 읽기를 허용하는 요청을 받으면 mongos 는 다음을 수행합니다.

  • 핑 시간이 가장 짧은 세트의 멤버를 찾습니다.

  • 세트에서 가장 가까운 적합한 멤버로부터 핑 시간 15밀리초 이내에 있는 복제 세트 멤버의 목록을 생성합니다.

    replication.localPingThresholdMs 옵션의 값을 지정하는 경우 mongos 는 이 값에서 허용하는 지연 시간 내에 있는 복제본 멤버 목록을 구성합니다.

  • 이 목록에서 무작위로 읽을 멤버를 선택합니다.

replication.localPingThresholdMs 설정으로 비교된 멤버에 사용된 핑 시간은 최근 핑 시간의 이동 평균으로, 최대 10 초마다 계산됩니다. 결과적으로 mongos 에서 평균을 다시 계산할 때까지 일부 쿼리가 임계값을 초과하는 멤버에게 도달할 수 있습니다.

자세한 내용은 읽기 기본 설정 문서의 복제본 세트에 대한 읽기 기본 설정 섹션을 참조하십시오.

sharding.configDB

유형: 문자열

샤드 클러스터구성 서버입니다.

분할된 클러스터에 대한 구성 서버는 복제본 세트로 배포됩니다. 복제본 세트 구성 서버는 WiredTiger 스토리지 엔진을실행해야 합니다.

구성 서버 복제본 세트 이름과 구성 서버 복제본 세트 멤버 중 하나 이상의 호스트 이름 및 포트를 지정합니다.

sharding:
configDB: <configReplSetName>/cfg1.example.net:27019, cfg2.example.net:27019,...

샤드된 클러스터의 mongos 인스턴스는 동일한 구성 서버 복제 세트 이름을 지정해야 하지만 복제 세트의 다른 구성원의 호스트 이름과 포트를 지정할 수 있습니다.

processManagement:
windowsService:
serviceName: <string>
displayName: <string>
description: <string>
serviceUser: <string>
servicePassword: <string>
processManagement.windowsService.serviceName

유형: 문자열

기본값: MongoDB

Windows 서비스로 실행하는 경우 mongos 또는 mongod 서비스 이름입니다. 이 이름을 net start <name>net stop <name> 연산에 사용합니다.

processManagement.windowsService.serviceName--install 또는 --remove 옵션과 함께 사용해야 합니다.

processManagement.windowsService.displayName

유형: 문자열

기본값: MongoDB

서비스 관리 애플리케이션에 MongoDB에 대해 나열된 이름입니다.

processManagement.windowsService.description

유형: 문자열

기본값: MongoDB 서버

mongos mongod 2} 또는 서비스 설명을 실행합니다.

processManagement.windowsService.description--install 옵션과 함께 사용해야 합니다.

공백이 포함된 설명의 경우 설명을 따옴표로 묶어야 합니다.

processManagement.windowsService.serviceUser

유형: 문자열

특정 사용자의 컨텍스트에 있는 mongos 또는 mongod 서비스입니다. 이 사용자에게는 "서비스 계정으로 로그온" 권한이 있어야 합니다.

processManagement.windowsService.serviceUser--install 옵션과 함께 사용해야 합니다.

processManagement.windowsService.servicePassword

유형: 문자열

또는 mongos mongod 옵션으로 processManagement.windowsService.serviceUser 실행할 경우 의 비밀번호입니다.<user>

processManagement.windowsService.servicePassword--install 옵션과 함께 사용해야 합니다.

버전 4.2부터 MongoDB는 더 이상 사용되지 않는 MMAPv1 스토리지 엔진과 MMAPv1 관련 구성 옵션을 제거합니다.

제거된 구성 파일 설정
명령줄 옵션 제거
storage.mmapv1.journal.commitIntervalMs
storage.mmapv1.journal.debugFlags
mongod --journalOptions
storage.mmapv1.nsSize
mongod --nssize
storage.mmapv1.preallocDataFiles
mongod --noprealloc
storage.mmapv1.quota.enforced
mongod --quota
storage.mmapv1.quota.maxFilesPerDB
mongod --quotaFiles
storage.mmapv1.smallFiles
mongod --smallfiles
storage.repairPath
mongod --repairpath
replication.secondaryIndexPrefetch
mongod --replIndexPrefetch

MongoDB의 이전 버전에 대해서는 해당 버전의 MongoDB 매뉴얼을 참조하세요. 예를 들면 다음과 같습니다.

← 데이터 정렬 로캘 및 기본 매개변수