Queryable Encryption을 위한 mongocryptd 설치 및 구성하기
개요
팁
자동 암호화 공유 라이브러리 사용하기
새 프로젝트를 시작하는 경우 공유 라이브러리라고 하는 crypt_shared
암호화 도우미를 사용하세요. 자동 암호화 공유 라이브러리는 mongocryptd
대체하며 새 프로세스를 생성할 필요가 없습니다.
mongocryptd
MongoDB Enterprise MongoDB Server와 함께 설치됩니다.
Queryable Encryption이 활성화된 MongoDB 클라이언트를 생성할 때, 기본적으로 mongocryptd
프로세스가 자동으로 시작됩니다.
mongocryptd
프로세스는 다음과 같습니다:
지정된 자동 암호화 규칙을 사용하여 읽기 및 쓰기 작업에서 암호화할 필드를 표시합니다.
암호화된 필드에서 지원하지 않는 작업의 실행을 방지합니다.
데이터베이스 연결에 지정된 암호화 스키마를 분석합니다. 자동 암호화 규칙은 JSON schema 구문의 엄격한 하위 집합을 사용합니다. 규칙에 유효하지 않은 자동 암호화 구문이나
document validation
구문이 포함된 경우mongocryptd
는 오류를 반환합니다
mongocryptd
이전 기능만 수행하며 다음과 같은 작업은 수행하지 않습니다:
mongocryptd
암호화나 복호화를 수행하지 않습니다.mongocryptd
어떠한 암호화 키 자료에도 접근하지 않습니다.mongocryptd
네트워크를 통해 대기하지 않습니다.
클라이언트 사이드 필드 수준 암호화 및 자동 암호 해독을 수행하기 위해 드라이버는 Apache 라이선스가 부여된 libmongocrypt 라이브러리
설치
지원되는 Linux 운영 체제의 경우 Linux에서 설치하기 튜토리얼을 따라 mongodb-enterprise
서버 패키지를 설치합니다. 또는 mongocryptd
바이너리만 설치하려면 mongodb-enterprise-cryptd
를 지정하세요. 패키지 관리자는 시스템 PATH에 있는 위치에 바이너리를 설치합니다 (예: /usr/bin/
).
OSX의 경우, MacOS에 설치하기 튜토리얼을 따라 Server 패키지를 설치합니다. 패키지 관리자는 시스템 PATH에 있는 위치에 바이너리를 설치합니다.
Windows의 경우, Windows에 설치하기 튜토리얼을 따라 서버 패키지를 설치합니다. 설치 후 시스템 PATH에 mongocryptd
패키지를 추가해야 합니다. mongocryptd
바이너리를 시스템 PATH에 추가하는 방법에 대한 지침은 문서화된 Windows 설치 권장사항을 참조하십시오.
공식 tarball 또는 ZIP 아카이브를 통해 설치하는 경우, 운영 체제에 대해 문서화된 권장사항에 따라 시스템 PATH에 mongocryptd
바이너리를 추가하세요.
구성
드라이버가 mongocryptd
프로세스에 접근할 수 있다면, 기본적으로 프로세스를 생성합니다.
참고
mongocryptd 포트의 사용
드라이버에서 지정한 포트에서 mongocryptd
프로세스가 이미 실행 중인 경우, 드라이버는 경고를 로그에 기록하고 새 프로세스를 생성하지 않고 계속할 수 있습니다. 드라이버에 의해 지정된 모든 설정은 기존 프로세스가 종료되고 새로운 암호화된 클라이언트가 연결을 시도할 때만 적용됩니다.
다음 매개 변수를 통해 드라이버가 mongocryptd
를 시작하는 방법을 구성하세요:
이름 | 설명 |
---|---|
포트 | The port from which mongocryptd listens for messages.Default: 27020 |
idleShutdownTimeoutSecs | Number of idle seconds the mongocryptd process waits
before exiting.Default: 60 |
mongocryptdURI | The URI on which to run the mongocryptd process.Default: "mongodb://localhost:27020" |
mongocryptdBypassSpawn | When true , prevents the driver from automatically
spawning mongocryptd .Default: false |
mongocryptdSpawnPath | The full path to mongocryptd .Default: Defaults to empty string and spawns from the system path. |
중요
부팅 시 시작하기
가능하다면 mongocryptd
를 요청할 때 시작하기 보다는 부팅 할 때 시작하세요.
예시
애플리케이션에서 사용 중인 드라이버에 해당하는 탭을 클릭하여 mongocryptd
프로세스를 구성하는 방법의 예시를 확인하세요:
다음 코드 스니펫은 mongocryptd
의 수신 대기 포트 구성을 설정합니다.
var extraOptions = new Dictionary<string, object>() { { "mongocryptdSpawnArgs", new [] { "--port=30000" } }, }; autoEncryptionOptions.With(extraOptions: extraOptions);
다음 코드 스니펫은 mongocryptd
의 기본 시간 초과 구성을 설정합니다.
var extraOptions = new Dictionary<string, object>() { { "idleShutdownTimeoutSecs", 60 }, }; autoEncryptionOptions.With(extraOptions: extraOptions);
다음 코드 스니펫은 mongocryptd
의 수신 대기 포트 구성을 설정합니다.
extraOptions := map[string]interface{}{ "mongocryptdSpawnArgs": []string{ "--port=30000", }, }
다음 코드 스니펫은 mongocryptd
의 기본 시간 초과 구성을 설정합니다.
extraOptions := map[string]interface{}{ "mongocryptdSpawnArgs": []string{ "--idleShutdownTimeoutSecs=75", }, }
다음 코드 스니펫은 mongocryptd
의 수신 대기 포트 구성을 설정합니다.
List<String> spawnArgs = new ArrayList<String>(); spawnArgs.add("--port=30000"); Map<String, Object> extraOpts = new HashMap<String, Object>(); extraOpts.put("mongocryptdSpawnArgs", spawnArgs); AutoEncryptionSettings autoEncryptionSettings = AutoEncryptionSettings.builder() ... .extraOptions(extraOpts);
다음 코드 스니펫은 mongocryptd
의 기본 시간 초과 구성을 설정합니다.
List<String> spawnArgs = new ArrayList<String>(); spawnArgs.add("--idleShutdownTimeoutSecs") .add("60"); Map<String, Object> extraOpts = new HashMap<String, Object>(); extraOpts.put("mongocryptdSpawnArgs", spawnArgs); AutoEncryptionSettings autoEncryptionSettings = AutoEncryptionSettings.builder() ... .extraOptions(extraOpts);
다음 코드 스니펫은 mongocryptd
의 수신 대기 포트 구성을 설정합니다.
autoEncryption: { ... extraOptions: { mongocryptdSpawnArgs: ["--port", "30000"], mongocryptdURI: 'mongodb://localhost:30000', }
참고
NodeJS 드라이버에서 mongocryptdURI
은(는) 수신 포트와 일치해야 합니다.
다음 코드 스니펫은 mongocryptd
의 기본 시간 초과 구성을 설정합니다.
autoEncryption: { ... extraOptions: { mongocryptdSpawnArgs: ["--idleShutdownTimeoutSecs", "75"] }
다음 코드 스니펫은 mongocryptd
의 수신 대기 포트 구성을 설정합니다.
auto_encryption_opts = AutoEncryptionOpts(mongocryptd_spawn_args=['--port=30000'])
다음 코드 스니펫은 mongocryptd
의 기본 시간 초과 구성을 설정합니다.
auto_encryption_opts = AutoEncryptionOpts(mongocryptd_spawn_args=['--idleShutdownTimeoutSecs=75'])