개요
이 가이드에서는 MongoDB Kafka Connector 작업자와 MongoDB cluster 간의 통신을 보호하는 방법을 배울 수 있습니다.
연결을 보호하려면 다음 작업을 수행해야 합니다.
참고
If you host your MongoDB cluster on MongoDB Atlas or your cluster does not explicitly require certificates, you can already communicate securely and do not need to follow the steps in this guide.
전제 조건
이 가이드를 사용하려면 다음 개념에 대한 사전 지식이 필요합니다.
작업자에 인증서 저장
connector 작업자 인스턴스를 실행하는 각 서버에 대한 인증서 자격 증명을 보호하기 위해 키 저장소 및 신뢰 저장소 에 인증서를 저장합니다.
키 저장소
키 저장소를 사용하여 개인 키와 ID 인증서를 저장할 수 있습니다. 키 저장소는 키와 인증서를 사용하여 외부 호스트에 대해 클라이언트의 ID를 확인합니다.
작업자 인스턴스에 연결하기 위해 클라이언트 인증서가 SSL/TLS 구성에 필요한 경우, 보안 비공개 키를 생성하고 중간 CA와 함께 번들로 제공되는 클라이언트 인증서를 포함합니다. 그런 다음 openssl 명령으로 PKCS 12 파일을 생성하여 이 정보를 키 저장소에 저장합니다.
openssl pkcs12 -export -inkey <your private key> \ -in <your bundled certificate> \ -out <your output pkcs12 file>
신뢰 저장소
신뢰 저장소를 사용하여 CA의 인증서를 저장할 수 있습니다. 신뢰 저장소는 인증서를 사용하여 클라이언트가 신뢰하는 당사자를 식별합니다. 이러한 인증서의 몇 가지 예로는 루트 CA, 중간 CA 및 MongoDB cluster의 최종 엔티티 인증서를 들 수 있습니다.
다음 keytool 명령을 사용하여 신뢰하는 당사자의 인증서를 신뢰 저장소로 가져옵니다.
keytool -import -trustcacerts -import -file <your root or intermediate CA>
SSL/TLS 구성에 MongoDB cluster에 대한 최종 엔터티 인증서가 필요한 경우 다음 명령을 사용하여 이를 신뢰 저장소로 가져옵니다.
keytool -import -file <your server bundled certificate> -keystore <your keystore name>
테스트 목적으로 클라이언트 키 저장소 및 신뢰 저장소를 설정하는 방법에 대한 자세한 내용은 테스트용 OpenSSL 클라이언트 인증서를 참조하세요.
connector에 자격 증명 추가
커넥터 작업자는 KAFKA_OPTS 환경 변수에서 JVM 옵션을 처리합니다. 환경 변수에는 키 저장소 및 신뢰 저장소의 경로와 비밀번호가 포함됩니다.
KAFKA_OPTS 변수에 있는 다음 JVM 옵션을 내보냅니다.
export KAFKA_OPTS="\ -Djavax.net.ssl.trustStore=<your path to truststore> \ -Djavax.net.ssl.trustStorePassword=<your truststore password> \ -Djavax.net.ssl.keyStore=<your path to keystore> \ -Djavax.net.ssl.keyStorePassword=<your keystore password>"
작업자가 JVM 옵션을 처리할 때 connector는 키 저장소 및 신뢰 저장소의 SSL/TLS 프로토콜과 인증서를 사용하여 연결을 시도합니다.