자체 관리형 MongoDB 를 키 파일 인증에서 x로 업그레이드합니다.509 인증
현재 키 파일 인증 을 사용 중인 클러스터를 x로 업그레이드 합니다.509 인증, 다음 롤링 업그레이드 프로세스를 사용합니다.
참고
MongoDB는 TLS 1.1 이상이 사용 가능한 시스템에서 TLS 1.0 암호화를 지원하지 않습니다.
업그레이드 절차(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 및 키 파일 인증을 사용하는 cluster의 경우 x.509 cluster 인증으로 업그레이드하려면 다음 롤링 업그레이드 프로세스를 사용하세요.
cluster의 각 노드에 대해 구성 파일 에 다음 설정을 추가하고 다시 시작합니다.
security.clusterAuthMode
sendKeyFile
로 설정합니다. 이 설정 값을 사용하면 각 노드는 계속해서 키 파일을 전송하여 자신을 구성원으로 인증합니다. 그러나 각 노드는 다른 노드로부터 키 파일 또는 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의 모든 노드를 이 설정으로 업그레이드하세요.
선택 사항이지만 권장됩니다. 마지막으로 cluster의 각 노드에 대해 노드에 연결하고
setParameter
명령을 사용하여 인증에 x.509 인증서만 사용하도록clusterAuthMode
를x509
로 업데이트합니다. [1]db.adminCommand( { setParameter: 1, clusterAuthMode: "x509" } ) 모든 노드를 업그레이드한 후 적절한 x.509 설정으로 구성 파일 을 편집하여 나중에 다시 시작할 때 cluster가 x.509 인증을 사용하도록 합니다. 예를 들면 다음과 같습니다.
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이 아닌 키 파일 인증을 사용하는 cluster의 경우, x.509 멤버십 인증 및 TLS/SSL 연결로 업그레이드하세요:
cluster의 각 노드에 대해 구성 파일 에 다음 설정을 추가하고 다시 시작합니다.
net.tls.mode
allowTLS
로 설정합니다. 이 값을 사용하면 노드가 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.clusterAuthMode
sendKeyFile
로 설정합니다. 이를 통해 각 노드는 자신을 구성원으로 인증하기 위해 계속해서 키 파일을 보낼 수 있습니다. 그러나 각 노드는 다른 노드로부터 키 파일 또는 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 설정으로 구성 파일 을 편집하여 나중에 다시 시작할 때 cluster가 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 및 키 파일 인증을 사용하는 cluster의 경우 x.509 cluster 인증으로 업그레이드하려면 다음 롤링 업그레이드 프로세스를 사용하세요.
클러스터의 각 노드에 대해
--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의 모든 노드를 이 설정으로 업그레이드합니다.
그런 다음 cluster의 각 노드에 대해 노드에 연결하고
setParameter
명령을 사용하여clusterAuthMode
를sendX509
로 업데이트합니다. [1] 예를 들면 다음과 같습니다.db.adminCommand( { setParameter: 1, clusterAuthMode: "sendX509" } ) 이 설정을 사용하면 각 노드는 해당 x를 사용합니다. 이전 단계에서
--sslClusterFile
옵션으로 지정된 509 인증서를 사용하여 자신을 구성원으로 인증합니다. 그러나 각 노드는 계속해서 키 파일 또는 x 중 하나를 허용합니다.509 다른 멤버의 인증서를 사용하여 해당 멤버를 인증합니다. 클러스터의 모든 노드를 이 설정으로 업그레이드합니다.선택 사항이지만 권장됩니다. 마지막으로 cluster의 각 노드에 대해 노드에 연결하고
setParameter
명령을 사용하여 인증에 x.509 인증서만 사용하도록clusterAuthMode
를x509
로 업데이트합니다. [1] 예:db.adminCommand( { setParameter: 1, clusterAuthMode: "x509" } ) 모든 노드를 업그레이드한 후 적절한 x.509 설정으로 구성 파일 을 편집하여 나중에 다시 시작할 때 cluster가 x.509 인증을 사용하도록 합니다.
다양한 모드와 해당 설명은 --clusterAuthMode
를 참조하세요.
현재 TLS/SSL을 사용하지 ssl
않는 클러스터( 옵션 사용)
참고
이 절차에서는 ssl
옵션을 사용합니다. tls
옵션을 사용하는 절차에 대해서는 TLS/SSL이 아닌 키 파일을 사용하여 클러스터 업데이트( tls
옵션 사용)를 참조하세요.
TLS/SSL이 아닌 키 파일 인증을 사용하는 cluster의 경우 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
로 설정하면 각 노드는 해당 x를 사용합니다. 이전 단계에서--sslClusterFile
옵션으로 지정된 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 설정으로 구성 파일 을 편집하여 나중에 다시 시작할 때 cluster가 x.509 인증을 사용하도록 합니다.
다양한 모드와 해당 설명은 --clusterAuthMode
를 참조하세요.
[1] | (1, 2, 3, 4, 5, 6, 7) setParameter 명령을 사용하는 대신 적절한 TLS/SSL 및 x509 옵션과 값을 사용하여 노드를 다시 시작할 수도 있습니다. |