문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ / /

x를 사용합니다. 자체 관리형 MongoDB를 사용한 멤버십 인증을 위한 509 인증서

이 페이지의 내용

  • 노드 x.509 인증서
  • 복제본 세트/샤드 클러스터 구성
  • 추가 정보

MongoDB는 x를 지원합니다. 보안 TLS/SSL 연결 에 사용할 509 인증서 인증 . 샤드 클러스터 멤버와 복제본 세트 멤버는 x를 사용할 수 있습니다.509 인증서를 사용하여 키 파일 을 사용하는 대신 클러스터 또는 복제본 세트에 대한 멤버십을 확인합니다. 멤버십 인증은 내부 프로세스입니다.

참고

MongoDB는 TLS 1.1 이상이 사용 가능한 시스템에서 TLS 1.0 암호화를 지원하지 않습니다.

내부 인증을 활성화하면 자체 관리 배포서버에서 역할 기반 액세스 제어 도 활성화됩니다. 배포에서 연결하고 작업을 수행하려면 클라이언트가 사용자로 인증되어야 합니다.

중요

TLS/SSL, PKI(공개 키 기반 구조) 인증서, 특히 x.509 인증서 및 인증 기관에 대한 자세한 설명은 이 문서에 설명되어있지 않습니다.이 튜토리얼은 유효한 x.509 인증서에 액세스할 수 있고, TLS/SSL에 대한 딕셔너리 지식을 갖고 있다고 가정합니다.

참고

유효한 x.509 인증서가 있어야 합니다.

--tlsAllowInvalidCertificates 또는 net.tls.allowInvalidCertificates: true 를 지정하는 경우 유효하지 않은 인증서는 TLS 연결을 설정하는 데만 충분하지만 인증에는 충분하지 않습니다 .

멤버 인증서를 사용하여 샤딩된 클러스터 또는 복제본 세트에 대한 멤버 자격을 확인합니다. 회원 인증서 파일 경로는 net.tls.clusterFilenet.tls.certificateKeyFile 옵션으로 구성됩니다. 멤버에게는 다음과 같은 구성 요구 사항이 있습니다.

  • 클러스터 멤버 구성은 인증에 사용되는 속성 중 하나 이상에 대해 비어 있지 않은 값을 지정해야 합니다. 기본적으로 MongoDB는 다음을 허용합니다.

    • 조직 (O)

    • 조직 단위 (OU)

    • 도메인 구성 요소 (DC)

    net.tls.clusterAuthX509.extensionValue를 설정하여 인증에 사용할 대체 속성을 지정할 수 있습니다.

  • 클러스터 멤버 구성에는 동일한 net.tls.clusterAuthX509.attributes이 포함되어야 하며 일치하는 값을 사용해야 합니다. 속성 순서는 중요하지 않습니다. 다음 예에서는 OOU 설정하지만 DC는 설정하지 않습니다.

    net:
    tls:
    clusterAuthX509:
    attributes: O=MongoDB, OU=MongoDB Server

참고

enforceUserClusterSeparation 매개변수를 비활성화하면 다음 동작이 적용됩니다.

  • 구성 파일에서 clusterAuthModekeyFile 인 경우 O/OU/DC 검사가 비활성화됩니다. 이를 통해 멤버 인증서를 보유한 클라이언트는 $external 데이터베이스에 저장된 사용자로 인증할 수 있습니다.

  • 구성 파일에 clusterAuthMode 이(가) keyFile 이(가) 아닌 경우 서버가 시작되지 않습니다.

enforceUserClusterSeparation 매개 변수를 false 로 설정하면 서버는 애플리케이션이 인증에 사용하는 클라이언트 인증서와 액세스 권한이 있는 클러스터 내 인증서를 구분하지 않습니다. clusterAuthModekeyFile 인 경우에는 효과가 없습니다. 그러나 clusterAuthMode 이(가) x509 인 경우 허용된 체계를 사용하는 사용자 인증서는 클러스터 인증서와 병합되어 권한 있는 액세스 권한이 부여됩니다.

다음을 수행하면 기존 인증서에 내부 권한이 부여됩니다.

  1. 이 매개변수에서 허용하는 이름으로 사용자를 생성합니다.

  2. enforceUserClusterSeparation 매개 변수를 false 로 설정합니다.

  3. clusterAuthModex509로 설정합니다.

enforceUserClusterSeparation 플래그에서 생성할 수 있는 상승된 권한을 가진 사용자를 제거했는지 확인하지 않고는 keyFile 에서 x509 으)로 업그레이드해서는 안 됩니다.

enforceUserClusterSeparation 매개변수를 false 로 설정하려면 시작 중에 다음 명령을 실행합니다.

mongod --setParameter enforceUserClusterSeparation=false

인증서에는 다음과 같은 요구 사항이 있습니다.

  • 단일 인증 기관 (CA)은 샤딩된 클러스터 또는 복제본 세트의 멤버에 대해 모든 x.509 인증서를 발급해야 합니다.

  • Subject Alternative Name (SAN) 항목 중 하나 이상은 다른 클러스터 멤버가 사용하는 서버 호스트 이름과 일치해야 합니다. SAN을 비교할 때 MongoDB는 DNS 이름 또는 IP 주소 중 하나를 비교할 수 있습니다.

    subjectAltName 을 지정하지 않으면 MongoDB는 대신 CN(일반 이름)을 비교합니다. 그러나 이러한 CN 사용은 RFC 에 따라 더 이상 사용되지 않습니다.2818

  • certificateKeyFile로 사용되는 인증서에 extendedKeyUsage이 포함되어 있는 경우 clientAuth ("TLS 웹 클라이언트 인증")와 serverAuth ("TLS 웹 서버 인증")을 모두 포함해야 합니다.

    extendedKeyUsage = clientAuth, serverAuth
  • clusterFile로 사용된 인증서에 extendedKeyUsage가 포함되어 있다면, 그 값은 반드시 clientAuth를 포함해야 합니다.

    extendedKeyUsage = clientAuth

롤링 업그레이드 절차를 제외하고, 복제 세트 또는 샤드 클러스터의 모든 구성 요소는 동일한 --clusterAuthMode 설정을 사용하여 배포의 다른 모든 구성 요소에 안전하게 연결할 수 있도록 해야 합니다.

복제본 세트 배포의 경우 여기에는 복제본 세트의 mongod 멤버가 모두 포함됩니다.

샤드 클러스터 배포의 경우, 여기에는 mongod 또는 mongos 인스턴스가 모두 포함됩니다.

참고

mongod mongos { 2} 및 는 기본적으로 로컬 호스트에 바인딩됩니다. 배포 구성원이 다른 호스트에서 실행되거나 원격 클라이언트를 배포에 연결하려는 경우 --bind_ip 또는 net.bindIp 를 지정해야 합니다.

참고

이 섹션의 절차에서는 tls 설정/옵션을 사용합니다. 더 이상 사용되지 않는 ssl 별칭을 사용하는 절차에 대해서는 명령줄 옵션 사용(ssl)을 참조하세요.

MongoDB가 항상 TLS 1.0 이상을 지원해 왔기에 tls 설정/옵션은 ssl 옵션과 동일한 기능을 제공합니다.

mongod --replSet <name> --tlsMode requireTLS --clusterAuthMode x509 --tlsClusterFile <path to membership certificate and key PEM file> --tlsCertificateKeyFile <path to TLS/SSL certificate and key file> --tlsCAFile <path to root CA file> --bind_ip localhost,<hostname(s)|ip address(es)>

중요

--tlsCertificateSelector 또는 --net.tls.certificateSelector을(를) 사용하지 않는 한, x.509 인증을 사용하려면 반드시 --tlsCAFile 또는 net.tls.CAFile을(를) 지정해야 합니다.

특정 구성에 필요한 추가 옵션(TLS/SSL 등)을 포함합니다. 다음의 경우:

security:
clusterAuthMode: x509
net:
tls:
mode: requireTLS
certificateKeyFile: <path to its TLS/SSL certificate and key file>
CAFile: <path to root CA PEM file to verify received certificate>
clusterFile: <path to its certificate key file for membership authentication>
bindIp: localhost,<hostname(s)|ip address(es)>

중요

--tlsCertificateSelector 또는 --net.tls.certificateSelector을(를) 사용하지 않는 한, x.509 인증을 사용하려면 반드시 --tlsCAFile 또는 net.tls.CAFile을(를) 지정해야 합니다.

특정 구성에 필요한 추가 옵션(TLS/SSL 등)을 포함합니다.

자세한 내용은 TLS/SSL을 위한 mongodmongos 구성을 참조하세요.

참고

이 섹션의 절차에서는 더 이상 사용되지 않는 ssl 설정/옵션을 사용합니다. tls 별칭을 사용하는 절차에 대해서는 명령줄 옵션 사용(tls)을 참조하세요.

MongoDB가 항상 TLS 1.0 이상을 지원해 왔기에 tls 설정/옵션은 ssl 옵션과 동일한 기능을 제공합니다.

내부 클러스터 멤버 인증을 위한 x.509 인증서를 지정하려면 복제 세트의 멤버에 대한 다음 예제에서와 같이 추가 TLS/SSL 옵션 --clusterAuthMode--sslClusterFile을 추가합니다.

mongod --replSet <name> --sslMode requireSSL --clusterAuthMode x509 --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)>

중요

--tlsCertificateSelector 또는 --net.tls.certificateSelector을(를) 사용하지 않는 한, x.509 인증을 사용하려면 반드시 --tlsCAFile 또는 net.tls.CAFile을(를) 지정해야 합니다.

특정 구성에 필요한 추가 옵션(TLS/SSL 등)을 포함합니다.

security:
clusterAuthMode: x509
net:
ssl:
mode: requireSSL
PEMKeyFile: <path to TLS/SSL certificate and key PEM file>
CAFile: <path to root CA PEM file>
clusterFile: <path to x.509 membership certificate and key PEM file>
bindIp: localhost,<hostname(s)|ip address(es)>

중요

--tlsCertificateSelector 또는 --net.tls.certificateSelector을(를) 사용하지 않는 한, x.509 인증을 사용하려면 반드시 --tlsCAFile 또는 net.tls.CAFile을(를) 지정해야 합니다.

특정 구성에 필요한 추가 옵션(TLS/SSL 등)을 포함합니다.

자세한 내용은 TLS/SSL을 위한 mongodmongos 구성을 참조하세요.

키 파일 내부 인증에서 x로 업그레이드합니다.509 내부 인증에 대한 자세한 내용은 자체 관리형 MongoDB를 키 파일 인증에서 x로 업그레이드를 참조하세요.509 인증.

DN 가 다른 새 인증서로 인증서를 롤링 업데이트하려면 x의 롤링 업데이트를 참조하세요.509 자체 관리형 클러스터에 새 DN이 포함된 인증서.

돌아가기

샤드 클러스터 키 회전

다음

x로 업그레이드합니다. 키 파일의 509