버전 7.0에 추가.
클러스터 구성원은 멤버십 인증에 X.509 인증서 를 사용하여 동일한 배포서버에 있는 다른 서버를 식별할 수 있습니다. 이 튜토리얼에서는 롤링 업데이트 수행하여 인증서 DN(고유 이름) 속성을 사용하는 것에서 확장 값을 사용하여 클러스터 의 구성원을 식별하는 것으로 마이그레이션 방법을 설명합니다.
설정으로 구성된 서버 연결 요청 받으면 제시된 인증서의 net.tls.clusterAuthX509.extensionValue 확장 값 문자열을 설정 및 매개변수의 extensionValue tlsClusterAuthX509Override 구성된 값과 비교합니다. 값이 일치하면 연결을 클러스터 멤버로 취급합니다.
새 인증서를 채택하는 cluster는 tlsClusterAuthX509Override 매개 변수를 사용하여 인증서 순환 절차 중에 다른 DN 속성을 가진 X.509 인증서를 수락할 수 있습니다. 모든 구성원이 새 값으로 인증서를 사용하면 재정의를 제거하여 이제 오래된 인증서 거부를 시작합니다.
이 작업에 관한 정보
및 설정을 clusterFile certificateKeyFile 사용하여 설정하다 구성원 인증서에 조직 및 MongoDB MongoDB Server 조직 단위를 사용하는 고유 이름(DN) 속성이 있는 복제본 세트 생각해 보세요. 이러한 DN 속성은 net.tls.clusterAuthX509.attributes 설정을 사용하여 설정하다 됩니다.
security: clusterAuthMode: x509 net: tls: mode: requireTLS certificateKeyFile: /etc/mycerts/10gen-server1.pem CAFile: /etc/mycerts/ca.pem clusterFile: /etc/mycerts/10gen-cluster1.pem clusterCAFile: /etc/mycerts/ca.pem clusterAuthX509: attributes: O=MongoDB, OU=MongoDB Server
참고
다음 절차에서는 새 X.509 인증서가 멤버십 인증서 및 기타 모든 요구 사항을 충족하고 클러스터 구성이 고유 이름(DN) 값을 사용하여 피어 인증서를 식별한다고 가정합니다. 자세한 내용은 멤버 인증서 요구 사항을 참조하세요.
단계
이 단계에서는 attributes 설정으로 구성된 cluster에서 새 X.509 인증서를 사용하도록 멤버 인증서를 업데이트합니다.
처음에, cluster는 고유 이름 값을 사용하여 노드를 식별합니다. 새 인증서를 사용하면 서버는 대신 mongodb://example.mongodb.net 확장 값을 사용하여 구성원을 식별하고 인증서 속성을 무시합니다.
TLS 클러스터 멤버십 구성 업데이트
각 서버의 구성 파일을 업데이트합니다.
clusterAuthX509설정을 설정으로 대체하여 새 인증서와attributesextensionValue일치하도록 설정을 변경합니다.이전 인증서의 고유 이름 속성을 사용하려면
tlsClusterAuthX509Override매개변수를 설정합니다.
예를 들면 다음과 같습니다.
net: tls: mode: requireTLS certificateKeyFile: /etc/mycerts/mongodb-server1.pem CAFile: /etc/mycerts/ca.pem clusterFile: /etc/mycerts/mongodb-cluster1.pem clusterCAFile: /etc/mycerts/ca.pem clusterAuthX509: extensionValue: mongodb://example.mongodb.net security: clusterAuthMode: x509 setParameter: tlsClusterAuthX509Override: "{ attributes: 'O=MongoDB, OU=MongoDB Server' }"
보조 cluster 멤버 다시 시작
각 세컨더리 cluster 멤버를 다시 시작합니다:
mongosh를 사용하여 각 세컨더리 클러스터 멤버에 연결한 다음,db.shutdownServer()메서드를 사용하여 서버를 중지합니다.use admin db.shutdownServer() 서버를 다시 시작합니다.
rs.status()메서드를 사용하여 멤버 상태를 확인합니다.rs.status().members 이 멤버의
stateStr필드에SECONDARY값이 표시될 때까지 기다렸다가 다음 세컨더리를 다시 시작하세요.
이제 서버의 복제본 세트는 이전 DN 속성뿐만 아니라 새 확장 값이 있는 인증서를 사용하여 구성원의 Peering 연결을 허용합니다.
프라이머리 cluster 멤버 재시작
프라이머리 멤버를 다시 시작합니다.
mongosh을 사용하여 프라이머리에 연결한 다음rs.stepDown()메서드를 사용하여 멤버를 프라이머리로 강등합니다.rs.stepDown() cluster는 새 인증서로 보조 인증서를 새 프라이머리 역할을 하도록 승격합니다.
db.shutdownServer()메서드를 사용하여 서버를 종료합니다:use admin db.shutdownServer() 서버를 다시 시작합니다.
복제본 세트의 프라이머리 서버는 이전 고유 이름 속성뿐만 아니라 새 확장 값이 있는 인증서를 사용하여 구성원의 Peering 연결을 허용하는 세컨더리로 다시 시작됩니다.
TLS 인증서 업데이트
각 서버의 구성 파일을 업데이트합니다.
새 인증서를 사용하도록
net.tls.certificateKeyFile설정을 변경합니다.새 인증서를 사용하도록
net.tls.clusterFile설정을 변경합니다.
예를 들면 다음과 같습니다.
net: tls: mode: requireTLS certificateKeyFile: /etc/mycerts/mongodb-server2.pem CAFile: /etc/mycerts/ca.pem clusterFile: /etc/mycerts/mongodb-cluster2.pem clusterCAFile: /etc/mycerts/ca.pem clusterAuthX509: extensionValue: mongodb://example.mongodb.net security: clusterAuthMode: x509 setParameter: tlsClusterAuthX509Override: "{ attributes: 'O=MongoDB, OU=MongoDB Server' }"
보조 cluster 멤버 다시 시작
각 세컨더리 cluster 멤버를 다시 시작합니다:
mongosh를 사용하여 각 세컨더리 클러스터 멤버에 연결한 다음,db.shutdownServer()메서드를 사용하여 서버를 중지합니다.use admin db.shutdownServer() 서버를 다시 시작합니다.
rs.status()메서드를 사용하여 멤버 상태를 확인합니다.rs.status().members 이 멤버의
stateStr필드에SECONDARY값이 표시될 때까지 기다렸다가 다음 세컨더리를 다시 시작하세요.
이제 복제본 세트의 세컨더리 서버가 새로운 X.509 인증서를 사용합니다.
프라이머리 cluster 멤버 재시작
프라이머리 멤버를 다시 시작합니다.
mongosh을 사용하여 프라이머리에 연결한 다음rs.stepDown()메서드를 사용하여 멤버를 프라이머리로 강등합니다.rs.stepDown() cluster는 새 인증서로 보조 인증서를 새 프라이머리 역할을 하도록 승격합니다.
db.shutdownServer()메서드를 사용하여 서버를 종료합니다:use admin db.shutdownServer() 서버를 다시 시작합니다.
복제본 세트의 프라이머리 서버는 강등되고 새 X.509 인증서를 사용하는 세컨더리 서버로 다시 시작됩니다.
고유 이름 인증 재정의 구성 제거
이제 cluster의 모든 멤버가 새 X.509 인증서를 사용하므로 구성 setParameter tlsClusterAuthX509Override 파일을 업데이트하여 매개 변수에 대한 설정을 제거합니다.
예를 들면 다음과 같습니다.
net: tls: mode: requireTLS certificateKeyFile: /etc/mycerts/mongodb-server1.pem CAFile: /etc/mycerts/ca.pem clusterFile: /etc/mycerts/mongodb-cluster1.pem clusterCAFile: /etc/mycerts/ca.pem clusterAuthX509: extensionValue: mongodb://example.mongodb.net security: clusterAuthMode: x509
이렇게 하면 서버가 시작 시 이전 인증서 설정을 구성하지 않습니다.
보조 cluster 멤버 다시 시작
각 세컨더리 cluster 멤버를 다시 시작합니다:
mongosh를 사용하여 각 세컨더리 클러스터 멤버에 연결한 다음,db.shutdownServer()메서드를 사용하여 서버를 중지합니다.use admin db.shutdownServer() 서버를 다시 시작합니다.
rs.status()메서드를 사용하여 멤버 상태를 확인합니다.rs.status().members 이 멤버의
stateStr필드에SECONDARY값이 표시될 때까지 기다렸다가 다음 세컨더리를 다시 시작하세요.
복제본 세트의 세컨더리 서버가 다시 시작되고 더 이상 이전 X.509 인증서에서의 연결을 허용하지 않습니다.
프라이머리 cluster 멤버 재시작
프라이머리 멤버를 다시 시작합니다.
mongosh을 사용하여 프라이머리에 연결한 다음rs.stepDown()메서드를 사용하여 멤버를 프라이머리로 강등합니다.rs.stepDown() cluster는 새 인증서로 보조 인증서를 새 프라이머리 역할을 하도록 승격합니다.
db.shutdownServer()메서드를 사용하여 서버를 종료합니다:use admin db.shutdownServer() 서버를 다시 시작합니다.
프라이머리 서버는 더 이상 이전 X.509 인증서에서의 연결을 허용하지 않는 세컨더리 서버로 다시 시작됩니다.