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

TLS 지원 복제본 세트에 연결

이 튜토리얼에서는 mongosh TLS지원 자체 관리 복제본 세트 에 연결하는 방법을 보여줍니다.

시작하기 전에 다음 사항이 있는지 확인하세요.

  • 자체 관리형 배포에서 TLS 구성의 단계를 사용하여 TLS를 사용하도록 구성한 복제본 세트

  • 배포서버에서 MongoDB 액세스 제어가 활성화되고 최소 하나의 관리자 사용자가 생성되어 있어야 합니다. 액세스 제어를 설정하려면 자체 관리형 배포서버에서 액세스 제어 사용을 참조하십시오. 이 사용자에게는 clusterMonitor 권한이 있어야 합니다.

  • X.509 인증을 사용하여 배포서버에 연결하려면 OpenSSL이 설치되어 있어야 클라이언트 인증서를 생성할 수 있습니다.

  • Access to mongosh.

상호 TLS 또는 X.509 클라이언트 인증을 사용하지 않으려면 다음 절차를 따르세요. 서버 구성에서 allowConnectionsWithoutCertificatestrue 로 설정하면 클라이언트는 인증서를 제시하지 않고도 연결할 수 있으며 SCRAM으로 인증할 수 있습니다.

1

다음 옵션을 사용하여 mongosh 를 복제본 세트에 연결합니다.

mongosh "mongodb://mongo0.example.com:27017,mongo1.example.com:27017,mongo2.example.com:27017" \
--tls --tlsCAFile /etc/ssl/mongodb/ca.pem
  • --tls 연결에 대한 TLS 암호화를 활성화합니다.

  • --tlsCAFile가 서버 인증서에 서명한 CA 인증서로 mongosh 설정하다 되어 가 서버의 인증서를 확인할 수 있습니다.

클라이언트 인증서 없이 연결하면 TLS 암호화된 세션이 설정되지만 인증은 수행되지 않습니다. 대부분의 명령을 실행하려면 SCRAM과 같은 메카니즘으로 인증해야 합니다.

2

db.auth() 메서드를 사용하여 관리자 사용자 이름과 비밀번호로 인증합니다.

3

다음을 실행하여 인증 상태를 확인합니다.

db.adminCommand({ connectionStatus: 1 })

authInfo.authenticatedUsers 에 예상되는 사용자가 포함되어 있는지 확인합니다.

배포서버에 연결할 때 상호 TLS 및 X.509 클라이언트 인증을 사용하려면 다음 절차에 따라 클라이언트 인증서를 만들고 인증합니다.

1

경고

서버 노드와 동일한 인증서를 사용하지 마십시오. 서버 인증서가 클라이언트 인증에 유효하더라도 X.509 인증을 위해 새로운 클라이언트 인증서를 생성해야 합니다.

TLS 서버 인증서 얻기에 설명된 프로세스를 사용하여 클라이언트 인증서를 생성합니다. 다음과 같이 조정합니다.

  • 설정 파일에서 serverAuth 대신 extendedKeyUsage = clientAuth 을(를) 설정합니다.

  • 노드 클라이언트 인증 인증서에 서명한 CA는 클라이언트 인증서에도 서명해야 합니다. 일반적으로 이는 ca.pem입니다. 하지만 클라이언트 인증을 위해 별도의 인증서를 받은 경우 클라이언트 인증서에 대해 다른 CA가 있을 수 있습니다.

  • 인증서 튜토리얼에서 사용된 노드 고유 이름 대신 출력 파일 이름을 client.key, client.crt, client.pem 로 지정합니다.

프로세스가 완료되면 mongosh을 실행하는 매신의 보안 위치에 client.pem 을 복사합니다.

cp client.pem /etc/ssl/mongodb/client.pem
2

클라이언트 인증서의 주제를 식별합니다. 연결 후 예상한 클라이언트 인증서로 인증되었다는 것을 확인하려면 이 값이 필요합니다.

주제를 보려면 다음 명령을 실행합니다.

openssl x509 -in /etc/ssl/mongodb/client.pem -noout -subject

출력은 다음과 유사하게 표시됩니다.

subject=C=US, ST=New-York, L=New York City, O=MongoDB, CN=myUser

이 튜토리얼의 뒷부분에서 사용할 수 있도록 주체 이름을 저장합니다. 이 예시 에서 주체 이름은 C=US, ST=New-York, L=New York City, O=MongoDB, CN=myUser입니다.

3

다음 옵션을 사용하여 mongosh 를 복제본 세트에 연결합니다.

mongosh "mongodb://mongo0.example.com:27017,mongo1.example.com:27017,mongo2.example.com:27017" \
--tls \
--tlsCAFile /etc/ssl/mongodb/ca.pem \
--tlsCertificateKeyFile /etc/ssl/mongodb/client.pem
  • --tls 연결에 대한 TLS 암호화를 활성화합니다.

  • --tlsCAFile가 서버 인증서에 서명한 CA 인증서로 설정하다 mongosh 되어 가 서버 연결을 확인할 수 있습니다.

  • --tlsCertificateKeyFile 서버가 X.509로 연결을 인증하는 데 사용하는 클라이언트 인증서와 개인 키를 제공합니다.

이로써 TLS를 통해 MongoDB 배포서버에 연결됩니다.

4

db.auth() 메서드를 사용하여 관리자 사용자 이름과 비밀번호로 인증합니다.

5

db.createUser() 메서드를 사용하여 클라이언트 인증서의 주제 이름에 해당하는 사용자를 $external 데이터베이스에서 생성합니다. 사용자 이름을 이전에 확인한 클라이언트 인증서의 주제로 대체합니다.

db.getSiblingDB("$external").runCommand({
createUser: "C=US, ST=New-York, L=New York City, O=MongoDB, CN=myUser",
roles: [
{ role: "readWriteAnyDatabase", db: "admin" }
]
})

사용자를 생성한 후 db.auth() 메서드를 사용하여 X.509를 사용하여 $external 데이터베이스에 인증합니다.

db.getSiblingDB("$external").auth({
mechanism: "MONGODB-X509",
user: "C=US, ST=New-York, L=New York City, O=MongoDB, CN=myUser"
})
6

다음을 실행하여 인증 상태를 확인합니다.

db.adminCommand({ connectionStatus: 1 })

authInfo.authenticatedUsers 에 예상되는 사용자가 포함되어 있는지 확인합니다.

이 튜토리얼을 완료하면 mongosh 이 암호화된 TLS 연결을 통해 SCRAM 또는 X.509로 인증된 복제본 세트에 연결됩니다.

이 페이지 평가하기