TLS/SSL 구성
개요
이 가이드 에서는 TLS/SSL 를 구성하는 방법을 학습 수 있습니다. MongoDB Spark Connector 와 MongoDB deployment 간의 통신을 보호합니다.
TLS/SSL을 사용하려면 애플리케이션과 각 Spark 작업자가 ID를 증명하는 암호화 인증서에 액세스할 수 있어야 합니다. 인증서를 JVM 신뢰 저장소와 JVM 키 저장소에 저장합니다. Spark 구성 파일을 통해 또는 명령줄에서 Spark 작업을 시작할 때 이러한 인증서에 대한 액세스를 구성할 수 있습니다.
JVM 보안 저장소 만들기
JVM 신뢰 저장소는 애플리케이션이 상호 작용하는 다른 애플리케이션을 안전하게 식별하는 인증서를 저장합니다. 이러한 인증서를 사용하면 사용자의 애플리케이션은 다른 애플리케이션에 대한 연결이 진짜이고 안전하다는 것을 증명할 수 있습니다.
keytool 을 사용하여 신뢰 저장소 생성 JDK의 일부로 제공되는 명령줄 도구:
keytool -importcert -trustcacerts -file <path to certificate authority file> -keystore <path to trust store> -storepass <password>
JVM 키 저장소 만들기
JVM 키 저장소는 사용자의 애플리케이션을 안전하게 식별하는 인증서를 다른 애플리케이션에 저장합니다. 이러한 인증서를 사용하면 다른 애플리케이션에서 사용자의 애플리케이션에 대한 연결이 진짜이고 안전하다는 것을 증명할 수 있습니다.
keytool 을 사용하여 키 저장소 만들기 , 또는 openssl 명령줄 도구.
TLS/SSL 활성화
연결 URI의 tls
매개변수를 통해 MongoDB 인스턴스 연결에 TLS/SSL을 활성화할 수 있습니다.
다음 예제에서는 TLS/SSL을 활성화하기 위해 true
에 tls
옵션이 할당된 연결 URI를 보여줍니다.
"mongodb+srv://<username>:<password>@<cluster-url>?tls=true"
연결 string 생성에 대한 자세한 내용은 서버 매뉴얼의 연결 string 가이드 를 참조하세요.
인증서 저장소에 대한 액세스 구성
JVM 신뢰 저장소와 JVM 키 저장소에 저장된 인증서에 액세스하도록 Spark 애플리케이션을 구성하려면 다음 시스템 속성을 설정해야 합니다.
javax.net.ssl.rustStore
javax.net.ssl.rustStorePassword
javax.net.ssl.keyStore
javax.net.ssl.keyStorePassword
Spark 구성 파일에서 속성 설정
다음과 같이 Spark 구성 파일에서 시스템 속성을 설정할 수 있습니다.
spark.executor.extraJavaOptions=-Djavax.net.ssl.trustStore=<Path to your trust store> -Djavax.net.ssl.trustStorePassword=<Your trust store password> -Djavax.net.ssl.keyStore=<Path to your key store> -Djavax.net.ssl.keyStorePassword=<Your key store password>" spark.driver.extraJavaOptions=-Djavax.net.ssl.trustStore=<Path to your trust store> -Djavax.net.ssl.trustStorePassword=<Your trust store password> -Djavax.net.ssl.keyStore=<Path to your key store> -Djavax.net.ssl.keyStorePassword=<Your key store password>"
명령줄에서 속성 설정
Spark 작업을 제출할 때 --conf
플래그를 사용하여 시스템 속성을 추가하면 명령줄에서 시스템 속성을 설정할 수 있습니다.
./bin/spark-submit --name "<Your app name>" \ --master "<Master URL>" \ --conf "spark.executor.extraJavaOptions=-Djavax.net.ssl.trustStore=<Path to your trust store> -Djavax.net.ssl.trustStorePassword=<Your trust store password> -Djavax.net.ssl.keyStore=<Path to your key store> -Djavax.net.ssl.keyStorePassword=<Your key store password>" \ sparkApplication.jar \ --conf "spark.driver.extraJavaOptions=-Djavax.net.ssl.trustStore=<Path to your trust store> -Djavax.net.ssl.trustStorePassword=<Your trust store password> -Djavax.net.ssl.keyStore=<Path to your key store> -Djavax.net.ssl.keyStorePassword=<Your key store password>" \ sparkApplication.jar