AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

인증 및 권한 부여 구성 mongot

이 페이지를 사용하여 mongot 및 MongoDB Community Edition 배포서버에 대한 인증 및 권한 부여를 구성합니다. Kubernetes 연산자용 MongoDB 컨트롤러와 함께 mongot 을 사용하는 방법에 대한 자세한 내용은 Kubernetes와 함께 MongoDB Search 및 벡터 검색을 참조하십시오.

mongot 각각의 보안 구성이 필요한 두 개의 고유한 채널을 통해 통신합니다.

  • 동기화 소스 (syncSource.replicaSet, syncSource.router): 복제를 위한 mongot의 MongoDB 배포서버에 대한 아웃바운드 연결입니다. 여기서 인증 메커니즘을 구성하면 mongotmongod 또는 mongos에 대해 인증할 수 있습니다.

  • gRPC 서버 (server.grpc): mongodmongot 에 연결하여 검색 쿼리 및 인덱스 관리 명령을 수행하는 인바운 채널입니다. mongodmongot 는 mTLS를 통해 서로 인증합니다.

참고

상태 확인(healthCheck)과 지표(metrics) 엔드포인트는 TLS 또는 인증을 지원하지 않습니다. 네트워크 계층에서 이 포트에 대한 액세스를 제한합니다.

인증을 구성하기 전에 다음 사항을 검토하세요.

  • 동기화 소스에 대해 정확히 하나의 인증 메커니즘을 구성해야 합니다. SCRAM 또는 X.509입니다. 두 메커니즘은 각 연결 블록에 대해 상호 배타적입니다.

  • 샤딩된 클러스터의 경우 mongot 설정 파일에 syncSource.replicaSetsyncSource.router 을 모두 지정하고 각 연결에 대해 인증을 독립적으로 구성해야 합니다. syncSource.routersyncSource.replicaSet에 의해 임의되지 않으므로 명시적으로 구성해야 합니다. 각 샤드에는 고유한 전용 mongot 인스턴스가 필요합니다.

    • syncSource.replicaSet mongot 인스턴스를 해당 샤드의 복제본 세트에 매핑합니다.

    • syncSource.router 클러스터 전체 조정을 위한 mongos 연결을 제공합니다.

  • mongot 이 인증하려면 searchCoordinator 내장 역할이 MongoDB 배포서버에 존재해야 합니다. 이 역할은 MongoDB 8.2 이상에서 사용할 수 있습니다.

다음 setParameter 옵션을 mongod 설정 파일에 추가한 후 mongod를 다시 시작합니다.

setParameter:
mongotHost: <host>:<port>
searchIndexManagementHostAndPort: <host>:<port>
skipAuthenticationToSearchIndexManagementServer: false
useGrpcForSearch: true

setParameter 옵션은 mongod 서버에 mongot의 위치를 찾고 통신하는 방법을 지시하는 서버 매개변수를 설정합니다. mongot 이 배포서버에 연결하려면 이 매개변수를 먼저 설정해야 합니다.

mongod 설정 파일에 대한 자세한 내용은 자체 관리형 설정 파일 옵션을 참조하세요.

mongot 이 MongoDB 배포서버에 인증할 수 있도록 동기화 소스 연결에 다음 인증 메커니즘 중 하나를 구성합니다.

SCRAM 은 사용자 이름과 비밀번호를 사용하여 mongot 를 MongoDB 배포서버에 인증합니다.

mongot에 대한 SCRAM을 구성하려면 다음 단계를 완료하세요.

1

searchCoordinator 역할을 사용하여 MongoDB 복제본 세트에 사용자를 만듭합니다.

mongosh에서 다음 명령을 실행합니다.

use admin
db.createUser({
user: "mongotUser",
pwd: "<password>",
roles: [ { role: "searchCoordinator", db: "admin" } ]
})
2

<password> 을 비밀번호로 대체한 다음 운영 체제에 맞는 명령을 실행하여 비밀번호 파일을 생성합니다. 파일에는 후미 줄 바꿀이 포함되어 있으면 안 됩니다.

Linux 또는 macOS의 경우:

echo -n "<password>" > /etc/mongot/secrets/passwordFile
chmod 400 /etc/mongot/secrets/passwordFile

Windows 명령 프롬프트:

echo|set /p="<password>" > passwordFile

Windows Powershell용:

[System.IO.File]::WriteAllText("passwordFile", "<password>")
3

syncSource.replicaSet 아래에 scramAuth 블록을 추가합니다. 샤딩된 클러스터의 경우 syncSource.router 아래에도 동일한 블록을 추가합니다. hostAndPort 에 여러 호스트를 나열합니다. 호스트 하나가 사용할 수 없는 경우에도 mongot 가 복제본 세트를 계속 발견할 수 있도록 합니다.

syncSource:
replicaSet:
hostAndPort:
- "<host1>:27017"
- "<host2>:27017"
scramAuth:
username: mongotUser
authSource: admin
passwordFile: /etc/mongot/secrets/passwordFile
tls:
enabled: false

샤딩된 클러스터의 경우 syncSource.replicaSetsyncSource.router 모두에서 scramAuth 를 구성합니다. syncSource.replicaSetmongot 를 샤드의 복제본 세트에 대해 인증하고, syncSource.router 는 클러스터 전역 조정을 위해 mongotmongos 에 대해 인증합니다. 두 연결에 대해 동일한 자격 증명을 사용하거나, 독립적으로 관리하는 경우 별도 자격 증명을 사용할 수 있습니다.

syncSource:
replicaSet:
hostAndPort:
- "<shard-host1>:27017"
- "<shard-host2>:27017"
scramAuth:
username: mongotShardUser
authSource: admin
passwordFile: /etc/mongot/secrets/shard-passwordFile
tls:
enabled: false
router:
hostAndPort:
- "<mongos1>:27017"
- "<mongos2>:27017"
scramAuth:
username: mongotRouterUser
authSource: admin
passwordFile: /etc/mongot/secrets/router-passwordFile
tls:
enabled: false

mongot 설정 파일에 대한 자세한 내용은 mongot 구성을 참조하세요.

4

MongoDB 배포서버에 TLS가 활성화되어 있는 경우 tls.enabledtrue (으)로 설정하고 필요에 따라 mongot 설정 파일에 다음 필드를 제공합니다.

필드
설명

caFile

하나 이상의 X.509 인증서가 포함된 PEM 파일 mongod의 서버 인증서를 확인하는 CA 인증서. 이 필드를 생략하면 mongot 은 JVM 기본 신뢰 저장소를 사용합니다.

tlsCertificateKeyFile

클라이언트의 X.509 인증서와 개인 키가 모두 포함된 PEM 파일입니다. mongod 이 클라이언트 인증서를 확인하는 경우에만 필요합니다.

tlsCertificateKeyFilePasswordFile

클라이언트 인증서 키를 해독하는 비밀번호입니다. tlsCertificateKeyFile 에 비밀번호가 보호되어 있는 경우에만 필요합니다.

X.509 인증을 사용하면 mongot 은 사용자 이름과 비밀번호 대신 TLS 클라이언트 인증서로 MongoDB 배포에 인증할 수 있습니다. X.509를 사용하면 TLS가 항상 활성화됩니다.

mongot에 대한 X.509 을 구성하려면 다음 단계를 완료합니다.

1

searchCoordinator 역할을 사용하여 MongoDB 복제본 세트에 사용자를 만듭니다. 사용자 이름은 클라이언트 인증서의 주제와 정확히 일치해야 합니다.

mongosh에서 다음 명령을 실행합니다.

use $external
db.createUser({
user: "CN=mongot,OU=...",
roles: [ { role: "searchCoordinator", db: "admin" } ]
})
2

syncSource.replicaSet 아래에 x509 블록을 추가합니다. 샤딩된 클러스터의 경우 syncSource.router 아래에 동일한 블록을 추가합니다.

x509 블록에서는 tlsCertificateKeyFilecaFile 는 필수 사항입니다. hostAndPort 에 여러 호스팅을 나열합니다. 호스팅 하나가 사용할 수 없는 경우에도 mongot 은 복제본 세트를 계속 발견할 수 있습니다.

syncSource:
replicaSet:
hostAndPort:
- "<host1>:27017"
- "<host2>:27017"
x509:
tlsCertificateKeyFile: /etc/mongot/tls/mongot-client.pem
caFile: /etc/mongot/tls/ca.pem
# tlsCertificateKeyFilePasswordFile: /etc/mongot/secrets/cert-key-password
필드
설명

tlsCertificateKeyFile

필수 사항입니다. X.509 인증서와 개인 키가 모두 포함된 PEM 파일입니다.

caFile

필수 사항입니다. 하나 이상의 X.509 인증서가 포함된 PEM 파일 mongod의 인증서를 확인하는 CA 인증서.

tlsCertificateKeyFilePasswordFile

선택 사항. 키가 암호화된 경우 tlsCertificateKeyFile에서 개인 키를 해독하는 비밀번호가 포함된 파일입니다.

샤딩된 클러스터의 경우 syncSource.replicaSetsyncSource.router 모두에서 x509 를 구성합니다. 두 연결에 대해 동일한 필드 구조를 사용하고 syncSource.router.hostAndPortmongos 엔드포인트를 제공합니다.

syncSource:
replicaSet:
hostAndPort:
- "<shard-host1>:27017"
- "<shard-host2>:27017"
x509:
tlsCertificateKeyFile: /etc/mongot/tls/mongot-client.pem
caFile: /etc/mongot/tls/ca.pem
# tlsCertificateKeyFilePasswordFile: /etc/mongot/secrets/cert-key-password
router:
hostAndPort:
- "<mongos1>:27017"
- "<mongos2>:27017"
x509:
tlsCertificateKeyFile: /etc/mongot/tls/mongot-client.pem
caFile: /etc/mongot/tls/ca.pem
# tlsCertificateKeyFilePasswordFile: /etc/mongot/secrets/cert-key-password

gRPC 서버는 mongodmongot 에 연결하여 검색 쿼리 및 인덱스 관리 명령을 수행하는 인바운드 채널입니다. TLS를 사용하여 이 채널을 전송 계층에서 보안합니다. mongodmongot을 상호 인증하려면 mTLS를 사용하세요.

mongotserver.grpc.tls.mode 옵션과 mongodsearchTLSMode 매개변수로 TLS 모드를 구성합니다. searchTLSMode을 설정하지 않으면 searchTLSMode 의 기본값이 globalTLS이므로 mongodmongot 에 대한 연결의 net.tls.mode 에서 TLS 모드를 상속합니다.

mongot 설정 파일에서 다음 TLS 모드 중 하나를 구성할 수 있습니다.

TLS 없음. mongodmongot 이 동일한 호스트에서 실행되는 배포에서만 이 모드를 사용하세요.

server:
grpc:
address: "localhost:27028"
tls:
mode: "disabled"

mongot 서버 인증서를 제시하며 mongod 은 연결을 설정하기 전에 인증서를 확인합니다. 이 모드에는 certificateKeyFile이(가) 필요합니다.

server:
grpc:
address: "0.0.0.0:27028"
tls:
mode: "tls"
certificateKeyFile: /etc/mongot/tls/mongot-server.pem
# certificateKeyFilePasswordFile: /etc/mongot/secrets/server-key-password

mongotmongod 모두 서로의 인증서를 제시하고 확인합니다. 이 모드에는 certificateKeyFilecaFile가 필요합니다. mtls를 사용하는 경우 mongod 에도 mongot에 대한 연결의 해당 TLS 설정을 구성해야 합니다.

server:
grpc:
address: "0.0.0.0:27028"
tls:
mode: "mtls"
certificateKeyFile: /etc/mongot/tls/mongot-server.pem
caFile: /etc/mongot/tls/ca.pem