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

내부/멤버십 인증

이 페이지의 내용

  • 키파일
  • x.509
  • 다음 단계

복제본 세트샤드 클러스터 의 멤버가 서로 인증하도록 요구할 수 있습니다. 멤버의 내부 인증을 위해 MongoDB는 키파일 또는 x를 사용할 수 있습니다.509 인증서.

선택한 메서드는 모든 내부 커뮤니케이션에 사용됩니다. 예를 들어 클라이언트가 지원되는 인증 메커니즘 중 하나를 사용하여 mongos에 인증하면 mongos는 구성된 내부 인증 메서드를 사용하여 필요한 mongod 프로세스에 연결합니다.

참고

내부 인증을 활성화하면 클라이언트 권한 부여도 활성화됩니다.

키파일은 멤버의 공유 비밀번호가 포함된 SCRAM 과제 및 응답 인증 메커니즘을 사용합니다.

키 길이는 6~1024자 사이여야 하며 base64 세트의 문자만 포함할 수 있습니다. MongoDB는 크로스 플랫폼 편의를 위해 공백 문자를 제거합니다(예: x0d, x09x20). 결과적으로 다음 작업은 동일한 키를 생성합니다.

echo -e "mysecretkey" > key1
echo -e "my secret key" > key1
echo -e "my secret key\n" > key2
echo -e "my secret key" > key3
echo -e "my\r\nsecret\r\nkey\r\n" > key4

내부 멤버십 인증 을 위한 키 파일은 YAML 형식을 사용하여 키 파일에 여러 키를 허용합니다. YAML 형식은 다음 중 하나를 허용합니다.

  • 단일 키 문자열(이전 버전과 동일)

  • 키 문자열의 순서

YAML 형식은 텍스트 파일 형식을 사용하는 기존의 단일 키 키파일과 호환됩니다.

예를 들면 다음과 같습니다.

파일에 여러 키를 지정할 수 있는 기능을 사용하면 다운타임 없이 키를 롤링 업그레이드할 수 있습니다. 복제본 세트의 키 순환샤드 클러스터의 키 순환을 참조하세요.

배포의 모든 mongodmongos 인스턴스는 하나 이상의 공통 키를 공유해야 합니다.

UNIX 시스템에서는 키 파일에 그룹 또는 월드 권한이 없어야 합니다. Windows 시스템에서는 키 파일 권한이 확인되지 않습니다.

복제본 세트 또는 샤드 클러스터의 멤버를 호스팅하는 각 서버에 키파일을 저장해야 합니다.

[1] MongoDB의 암호화된 스토리지 엔진의 경우 로컬 키 관리에 사용되는 키파일에는 하나의 키만 포함할 수 있습니다.

키파일을 지정하려면 security.keyFile 설정 또는 --keyFile 명령줄 옵션을 사용합니다.

키파일 내부 인증의 예는 복제본 세트를 키파일 인증으로 업데이트를 참조하세요.

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

참고

MongoDB가 TLS 1 지원을 비활성화합니다. TLS가 1 인 시스템에서 0 암호화.1+를 사용할 수 있습니다.

멤버 인증서를 사용하여 샤딩된 클러스터 또는 복제본 세트에 대한 멤버 자격을 확인합니다. 회원 인증서 파일 경로는 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

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

  • 단일 인증 기관 (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

복제본 세트 (각 mongod 인스턴스) 또는 샤딩된 클러스터 (각 mongodmongos 인스턴스)의 각 멤버간의 내부 인증을 위해 TLS를 사용할 수 있습니다.

내부 인증에 TLS를 사용하려면 다음 설정을 사용합니다.

mongodmongos 인스턴스는 클라이언트에게 신원을 증명하기 위해 인증서 키 파일을 사용하지만, 인증서 키 파일은 멤버십 인증에도 사용할 수 있습니다. 클러스터 파일을 지정하지 않으면 구성원은 멤버십 인증에 인증서 키 파일을 사용합니다. net.tls.certificateKeyFile 또는 --tlsCertificateKeyFile 를 사용하여 인증서 키 파일을 지정합니다.

클라이언트 인증과 멤버십 인증 모두에 인증서 키 파일을 사용하려면 인증서는 다음 중 하나여야 합니다.

  • extendedKeyUsage 생략 또는

  • 지정 extendedKeyUsage = serverAuth, clientAuth

x.509 내부 인증의 예는 멤버십 인증을 위한 x.509 인증서 사용을 참조하세요.

키파일 내부 인증에서 x.509 내부 인증으로 업그레이드하려면 키파일 인증에서 x.509 인증으로 업그레이드를 참조하십시오.

← OpenID Connect로 MongoDB 구성하기

이 페이지의 내용