현재 키 파일 인증 사용 중인 자체 관리형 클러스터를 X.509 인증 업그레이드 하려면 다음 롤링 업그레이드 프로세스를 사용합니다.
참고
MongoDB TLS 1.2+를 사용할 수 있는 시스템에서 TLS 1.0 및 TLS 1.1 암호화 에 대한 지원 비활성화합니다.
업그레이드 절차(tls 옵션 사용)
참고
MongoDB는 net.ssl 설정(및 --ssl 명령줄 옵션)에 대응하는 net.tls 설정(및 --tls 명령줄 옵션)을 제공합니다. MongoDB는 항상 TLS 1.0 이상을 지원해 왔기 때문에 새로운 tls 설정은 ssl 설정과 동일한 기능을 제공합니다.
이 섹션의 절차에서는 tls 설정/옵션을 사용합니다. ssl 설정/옵션을 사용하는 절차에 대해서는 업그레이드 절차( ssl 옵션 사용)를 참조하세요.
TLS/SSL 및 키 파일을 사용하여 클러스터 업그레이드( 옵션 사용)tls
참고
이 절차에서는 tls 설정/옵션을 사용합니다. ssl 설정/옵션을 사용하는 절차에 대해서는 현재 TLS/SSL을 사용하는 클러스터( ssl 옵션 사용)를 참조하세요.
TLS/SSL 및 키 파일 인증 사용하는 클러스터의 경우, X.509 클러스터 인증 으로 업그레이드 하려면 다음 롤링 업그레이드 프로세스 사용하세요.
cluster의 각 노드에 대해 구성 파일 에 다음 설정을 추가하고 다시 시작합니다.
security.clusterAuthModesendKeyFile(으)로 설정합니다. 이 설정 값을 사용하면 각 노드 계속해서 키 파일을 전송하여 자신을 멤버로 인증합니다. 그러나 각 노드 다른 노드로부터 키 파일 또는 X.509 인증서를 수신하여 해당 노드를 인증할 수 있습니다.
net.tls.clusterFile- 멤버십 인증을 위해 노드 인증서 키 파일의 적절한 경로로 설정합니다.
mongod/mongos는 cluster의 다른 구성원에게 이 파일을 표시하여 자신을 구성원으로 식별합니다.
특정 구성에 적합한 다른 TLS/SSL 옵션 및 기타 옵션을 포함합니다.
예를 들면 다음과 같습니다.
net: tls: mode: requireTLS certificateKeyFile: /etc/ssl/mongodb.pem CAFile: /etc/ssl/caToValidateReceivedCertificates.pem clusterFile: "/etc/ssl/myReplMembershipCertificateKeyFile.pem" security: clusterAuthMode: sendKeyFile keyFile: /my/securely/located/membershipkey replication: replSetName: myReplicaSet net: bindIp: localhost,mongodb0.example.net port: 27017 systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true storage: dbPath: "/var/lib/mongodb" processManagement: fork: true 계속하기 전에
security.clusterAuthMode및net.tls.clusterFile설정을 포함하도록 cluster의 모든 노드를 업데이트합니다.각 노드에 연결하고
setParameter명령을 사용하여clusterAuthMode를sendX509로 업데이트합니다. [1]db.adminCommand( { setParameter: 1, clusterAuthMode: "sendX509" } ) sendX509을 사용하면 각 노드 를net.tls.clusterFile전송하여 자신을 멤버로 인증합니다. 그러나 각 노드 다른 노드로부터 키 파일 또는 X.509 인증서를 수신하여 해당 노드를 인증할 수 있습니다.계속하기 전에 cluster의 모든 노드를 이 설정으로 업그레이드하세요.
선택 사항이지만 권장됩니다. 마지막으로 클러스터의 각 노드에 대해 노드에 연결하고
setParameter명령을 사용하여 인증에 X.509 인증서만 사용하도록clusterAuthMode를x509로 업데이트. [1]db.adminCommand( { setParameter: 1, clusterAuthMode: "x509" } ) 모든 노드를 업그레이드 후 적절한 X.설정으로 구성 파일 편집하여 509 나중에 다시 시작할 때509 클러스터 X. 인증 사용하도록 합니다. 예시 를 들면 다음과 같습니다.
net: tls: mode: requireTLS certificateKeyFile: /etc/ssl/mongodb.pem CAFile: /etc/ssl/caToValidateReceivedCertificates.pem clusterFile: "/etc/ssl/myReplMembershipCertificateKeyFile.pem" security.clusterAuthMode: x509 replication: replSetName: myReplicaSet net: bindIp: localhost,mongodb0.example.net port: 27017 systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true storage: dbPath: "/var/lib/mongodb" processManagement: fork: true
팁
구성 파일 대신 명령줄 옵션을 사용하여 mongod 및 mongos를 구성할 수도 있습니다.
mongod에 대해서는 ---tlsMode---tlsCertificateKeyFile---tlsCAFile---tlsClusterFile---clusterAuthMode을(를) 참조하세요.mongos에 대해서는 ---tlsMode---tlsCertificateKeyFile---tlsCAFile---tlsClusterFile---clusterAuthMode을(를) 참조하세요.
TLS/SSL이 아닌 키 파일을 사용하여 클러스터 업데이트( 옵션 사용)tls
참고
이 절차에서는 tls 옵션을 사용합니다. ssl 설정/옵션을 사용하는 절차에 대해서는 현재 TLS/SSL을 사용하지 않는 클러스터( ssl 옵션 사용)를 참조하세요.
TLS/SSL이 아닌 키 파일 인증 사용하는 클러스터의 경우 X.509 멤버십 인증 및 TLS/SSL 연결로 업그레이드 .
cluster의 각 노드에 대해 구성 파일 에 다음 설정을 추가하고 다시 시작합니다.
net.tls.modeallowTLS로 설정합니다. 이 값을 사용하면 노드가 TLS/SSL과 비TLS/비SSL 수신 연결을 모두 수락할 수 있습니다. 발신 연결이 TLS/SSL을 사용하지 않습니다.
net.tls.certificateKeyFile- TLS/SSL 인증서 및 키가 포함된 파일의 경로로 설정합니다.
mongod/mongos는 인스턴스의 ID를 설정하기 위해 이 파일을 클라이언트에 제공합니다. TLS/SSL을 사용할 때 필요합니다.
net.tls.clusterFile- 멤버십 인증을 위해 노드 인증서 키 파일의 적절한 경로로 설정합니다.
mongod/mongos는 cluster의 다른 구성원에게 이 파일을 표시하여 자신을 구성원으로 식별합니다.
net.tls.CAFile- 수신한 인증서를 확인하기 위한 인증서 체인이 포함된 파일의 경로로 설정합니다.
security.clusterAuthModesendKeyFile(으)로 설정합니다. 이를 통해 각 노드 자신을 멤버로 인증하기 위해 키 파일을 계속 보낼 수 있습니다. 그러나 각 노드 다른 노드로부터 키 파일 또는 X.509 인증서를 수신하여 해당 노드를 인증할 수 있습니다.
특정 구성에 적합한 다른 TLS/SSL 옵션 및 기타 옵션을 포함합니다.
예를 들면 다음과 같습니다.
net: tls: mode: allowTLS certificateKeyFile: /etc/ssl/mongodb.pem clusterFile: "/etc/ssl/myReplMembershipCertificateKeyFile.pem" CAFile: /etc/ssl/caToValidateReceivedCertificates.pem security: clusterAuthMode: sendKeyFile keyFile: /my/securely/located/membershipkey replication: replSetName: myReplicaSet net: bindIp: localhost,mongodb0.example.net port: 27017 systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true storage: dbPath: "/var/lib/mongodb" processManagement: fork: true net.tls.mode,net.tls.certificateKeyFile,net.tls.clusterFile및security.clusterAuthMode를 포함하도록 cluster의 모든 노드를 업그레이드합니다.각 노드에 연결하고
setParameter명령 [1] 을 사용하여 다음을 수행합니다.tlsMode를preferSSL로 업데이트합니다.tlsMode을preferTLS로 설정하면 노드는 TLS/SSL과 비 TLS/비SSL 수신 연결을 모두 허용하고 발신 연결은 TLS/SSL을 사용합니다.clusterAuthMode를sendX509로 업데이트합니다.clusterAuthMode을(를)sendX509(으)로 설정하다 각 노드net.tls.clusterFile을(를) 전송하여 자신을 멤버로 인증합니다. 그러나 각 노드 해당 노드를 인증하기 위해 다른 노드의 키 파일 또는 X.509 인증서를 계속 허용합니다.
db.adminCommand( { setParameter: 1, tlsMode: "preferTLS" } ); db.adminCommand( { setParameter: 1, clusterAuthMode: "sendX509" } ); 계속하기 전에 cluster의 모든 노드를 이 설정으로 업그레이드하세요.
모든 노드를 업그레이드 후 적절한 TLS/SSL 및 X.509 설정으로 구성 파일 편집하여 이후 다시 시작할 때 클러스터 X.509 인증 사용하도록 합니다.
net: tls: mode: preferTLS certificateKeyFile: /etc/ssl/mongodb.pem clusterFile: "/etc/ssl/myReplMembershipCertificateKeyFile.pem" CAFile: /etc/ssl/caToValidateReceivedCertificates.pem security: clusterAuthMode: sendX509 replication: replSetName: myReplicaSet net: bindIp: localhost,mongodb0.example.net port: 27017 systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true storage: dbPath: "/var/lib/mongodb" processManagement: fork: true 참고
이때,
cluster의 노드가 TLS/SSL 연결을 사용합니다. 그러나 노드는 클라이언트 애플리케이션에서 비TLS/SSL 연결을 허용할 수 있습니다.
노드는 멤버십 인증 위해 X.509 인증서를 전송하지만, 다른 노드의 멤버십을 확인하기 위해 다른 노드의 X.509 인증서 또는 키 파일을 수락할 수 있습니다.
클라이언트 애플리케이션에서 TLS/SSL 연결을 시행하다 하고 멤버십 인증 에 X.509 만 허용하려면 다음 단계를 참조하세요.
선택 사항이지만 권장됩니다. 멤버십 인증 에
TLS/SSL연결만 사용하고 X.509 인증서만 사용하도록 모든 노드를 업데이트합니다.중요
이 TLS/SSL 연결 요구 사항은 모든 연결에 적용됩니다. 즉, 클라이언트뿐만 아니라 cluster의 멤버와도 함께 사용할 수 있습니다. 즉, 클라이언트는 TLS/SSL 연결을 지정하고 cluster에 연결할 때 인증서 키 파일을 제공해야 합니다. TLS/SSL 연결에 대한 자세한 내용은 클라이언트 인증서가 필요한 MongoDB 인스턴스에 연결을 참조하세요. 클라이언트가 인증서를 제시하는 경우에만 유효성 검사를 참조하십시오.
net.tls.mode를requireTLS로,security.clusterAuthMode를x509로 업데이트합니다.예를 들면 다음과 같습니다.
net: tls: mode: requireTLS certificateKeyFile: /etc/ssl/mongodb.pem clusterFile: "/etc/ssl/myReplMembershipCertificateKeyFile.pem" CAFile: /etc/ssl/caToValidateReceivedCertificates.pem security: clusterAuthMode: x509 replication: replSetName: myReplicaSet net: bindIp: localhost,mongodb0.example.net port: 27017 systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true storage: dbPath: "/var/lib/mongodb" processManagement: fork: true
팁
구성 파일 대신 명령줄 옵션을 사용하여 mongod 및 mongos를 구성할 수도 있습니다.
mongod에 대해서는 ---tlsMode---tlsCertificateKeyFile---tlsCAFile---tlsClusterFile---clusterAuthMode을(를) 참조하세요.mongos에 대해서는 ---tlsMode---tlsCertificateKeyFile---tlsCAFile---tlsClusterFile---clusterAuthMode을(를) 참조하세요.
업그레이드 절차(ssl 옵션 사용)
참고
MongoDB는 net.ssl 설정(및 --ssl 명령줄 옵션)에 대응하는 net.tls 설정(및 --tls 명령줄 옵션)을 제공합니다. MongoDB는 항상 TLS 1.0 이상을 지원해 왔기 때문에 새로운 tls 설정은 ssl 설정과 동일한 기능을 제공합니다.
이 섹션의 절차에서는 ssl 옵션을 사용합니다. tls 옵션을 사용하는 절차에 대해서는 업그레이드 절차( tls 옵션 사용)를 참조하세요.
현재 TLS/SSL을 사용하는 클러스터(ssl 옵션 사용)
참고
이 절차에서는 ssl 옵션을 사용합니다. tls 옵션을 사용하는 절차에 대해서는 현재 TLS/SSL을 사용하는 클러스터( ssl 옵션 사용)를 참조하세요.
TLS/SSL 및 키 파일 인증 사용하는 클러스터의 경우, X.509 클러스터 인증 으로 업그레이드 하려면 다음 롤링 업그레이드 프로세스 사용하세요.
클러스터의 각 노드에 대해
--clusterAuthMode옵션을sendKeyFile로 설정하고 옵션--sslClusterFile를 노드 인증서의 적절한 경로로 설정하여 노드를 시작합니다. 특정 구성에 필요한 기타 옵션뿐만 아니라 다른 TLS/SSL 옵션 을 포함합니다. 예를 들면 다음과 같습니다.mongod --replSet <name> --sslMode requireSSL --clusterAuthMode sendKeyFile --sslClusterFile <path to membership certificate and key PEM file> --sslPEMKeyFile <path to TLS/SSL Certificate and key PEM file> --sslCAFile <path to root CA PEM file> --bind_ip localhost,<hostname(s)|ip address(es)> 이 설정을 사용하면 각 노드 계속해서 해당 키 파일을 사용하여 자신을 멤버로 인증합니다. 그러나 이제 각 노드 다른 노드의 키 파일 또는 X.509 인증서를 수락하여 해당 노드를 인증할 수 있습니다. 클러스터 의 모든 노드를 이 설정으로 업그레이드합니다.
그런 다음 cluster의 각 노드에 대해 노드에 연결하고
setParameter명령을 사용하여clusterAuthMode를sendX509로 업데이트합니다. [1] 예를 들면 다음과 같습니다.db.adminCommand( { setParameter: 1, clusterAuthMode: "sendX509" } ) 이 설정을 사용하면 각 노드 이전 단계에서
--sslClusterFile옵션으로 지정된 X.509 인증서를 사용하여 자신을 멤버로 인증합니다. 그러나 각 노드 해당 노드를 인증하기 위해 다른 노드의 키 파일 또는 X.509 인증서를 계속 수락합니다. 클러스터 의 모든 노드를 이 설정으로 업그레이드합니다.선택 사항이지만 권장됩니다. 마지막으로 클러스터의 각 노드에 대해 노드에 연결하고
setParameter명령을 사용하여 인증에 X.509 인증서만 사용하도록clusterAuthMode를x509로 업데이트. [1] 예시:db.adminCommand( { setParameter: 1, clusterAuthMode: "x509" } ) 모든 노드를 업그레이드 후 적절한 X.설정으로 구성 파일 편집하여 509 나중에 다시 시작할 때509 클러스터 X. 인증 사용하도록 합니다.
다양한 모드와 해당 설명은 --clusterAuthMode 를 참조하세요.
현재 TLS/SSL을 사용하지 ssl 않는 클러스터( 옵션 사용)
참고
이 절차에서는 ssl 옵션을 사용합니다. tls 옵션을 사용하는 절차에 대해서는 TLS/SSL이 아닌 키 파일을 사용하여 클러스터 업데이트( tls 옵션 사용)를 참조하세요.
TLS/SSL이 아닌 키 파일 인증 사용하는 클러스터의 경우 X.509 인증 으로 업그레이드 하려면 다음 롤링 업그레이드 프로세스 사용하세요.
클러스터의 각 노드에 대해
--sslMode옵션을allowSSL로,--clusterAuthMode옵션을sendKeyFile로,--sslClusterFile옵션을 노드 인증서의 적절한 경로로 설정하여 노드를 시작합니다. 특정 구성에 필요한 기타 옵션뿐만 아니라 다른 TLS/SSL 옵션 을 포함합니다. 예를 들면 다음과 같습니다.mongod --replSet <name> --sslMode allowSSL --clusterAuthMode sendKeyFile --sslClusterFile <path to membership certificate and key PEM file> --sslPEMKeyFile <path to TLS/SSL certificate and key PEM file> --sslCAFile <path to root CA PEM file> --bind_ip localhost,<hostname(s)|ip address(es)> --sslMode allowSSL설정을 사용하면 노드가 TLS/SSL 및 비 TLS/비 SSL 수신 연결을 모두 수락할 수 있습니다. 노드의 발신 연결이 TLS/SSL을 사용하지 않습니다.--clusterAuthMode sendKeyFile설정을 사용하면 각 노드 계속해서 해당 키 파일을 사용하여 자신을 멤버로 인증할 수 있습니다. 그러나 이제 각 노드 다른 노드의 키 파일 또는 X.509 인증서를 수락하여 해당 노드를 인증할 수 있습니다.클러스터의 모든 노드를 이 설정으로 업그레이드합니다.
그런 다음 cluster의 각 노드에 대해 노드에 연결하고
setParameter명령을 사용하여sslMode를preferSSL로,clusterAuthMode를sendX509로 업데이트합니다. [1] 예:db.adminCommand( { setParameter: 1, sslMode: "preferSSL", clusterAuthMode: "sendX509" } ) sslMode을(를)preferSSL(으)로 설정하면 노드는 TLS/SSL과 비TLS/비SSL 수신 연결을 모두 허용하고, 발신 연결은 TLS/SSL을 사용합니다.clusterAuthMode를sendX509로 설정하다 하면 각 노드 이전 단계에서--sslClusterFile옵션으로 지정된 X.509 인증서를 사용하여 자신을 멤버로 인증합니다. 그러나 각 노드 해당 노드를 인증하기 위해 다른 노드의 키 파일 또는 X.509 인증서를 계속 수락합니다.클러스터의 모든 노드를 이 설정으로 업그레이드합니다.
선택 사항이지만 권장됩니다. 마지막으로 cluster의 각 노드에 대해 노드에 연결하고
setParameter명령을 사용하여sslMode를requireSSL로,clusterAuthMode를x509로 업데이트합니다. [1] 예:db.adminCommand( { setParameter: 1, sslMode: "requireSSL", clusterAuthMode: "x509" } ) sslMode를requireSSL로 설정하면 노드는 TLS/SSL 연결만 사용합니다.clusterAuthMode를x509로 설정하다 노드 인증 에 X.509 인증서만 사용합니다.모든 노드를 업그레이드 후 적절한 TLS/SSL 및 X.509 설정으로 구성 파일 편집하여 이후 다시 시작할 때 클러스터 X.509 인증 사용하도록 합니다.
다양한 모드와 해당 설명은 --clusterAuthMode 를 참조하세요.
| [1] | (1, 2, 3, 4, 5, 6, 7) setParameter 명령을 사용하는 대신 적절한 TLS/SSL 및 x509 옵션과 값을 사용하여 노드를 다시 시작할 수도 있습니다. |