Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / / / / /

Queryable Encryption 라이브러리 설치 및 구성

이 페이지의 내용

  • 시작하기 전
  • 라이브러리 선택
  • 절차
  • 다음 단계

MongoDB는 쿼리를 암호화된 쿼리로 변환하고 데이터를 암호화 및 해독하기 위해 두 라이브러리 중 하나를 사용합니다. 최신 버전은 자동 암호화 공유 라이브러리입니다.

계속하기 전에 이전 작업에 따라Queryable Encryption 호환 운전자 및 종속성설치합니다.

자동 암호화 공유 라이브러리는 클라이언트 애플리케이션 이 자동 암호화 를 수행할 수 있도록 하는 동적 라이브러리 입니다. 동적 라이브러리는 컴파일 타임이 아닌 런타임에 애플리케이션 이 액세스하는 기능 설정하다 입니다. 자동 암호화 공유 라이브러리는 다음 작업을 수행합니다.

  • 암호화 스키마를 읽어 암호화하거나 해독할 필드를 결정합니다.

  • 애플리케이션이 암호화된 필드에서 지원되지 않는 작업을 실행하는 것을 방지합니다.

자동 암호화 공유 라이브러리는 다음 중 어느 것도 수행하지 않습니다:

  • 데이터 암호화 또는 복호화 수행

  • 암호화 키 자료에 액세스

  • 네트워크를 통해 데이터 수신

자동 암호화 공유 라이브러리는 mongocryptd 대신 선호되는 대안이며 자동 암호화 를 수행하기 위해 다른 프로세스 를 시작할 필요가 없습니다.

중요

자동 암호화 공유 라이브러리 사용하기

새 프로젝트 를 시작하는 경우 자동 암호화 공유 라이브러리를 사용하세요. 자동 암호화 공유 라이브러리는 mongocryptd 대체하며 새 프로세스 를 시작할 필요가 없습니다.

mongocryptd MongoDB Enterprise MongoDB Server와 함께 설치됩니다.

사용 중 암호화 하여 MongoDB 클라이언트 를 만들면 기본값 으로 mongocryptd 프로세스 가 자동으로 시작됩니다.

mongocryptd 프로세스는 다음과 같습니다:

  • 지정된 자동 암호화 규칙을 사용하여 읽기 및 쓰기 작업에서 암호화할 필드를 표시합니다.

  • 암호화된 필드에서 지원하지 않는 작업의 실행을 방지합니다.

  • 데이터베이스 연결에 지정된 암호화 스키마를 분석합니다. 자동 암호화 규칙은 JSON schema 구문의 엄격한 하위 집합을 사용합니다. 규칙에 유효하지 않은 자동 암호화 구문이나 document validation 구문이 포함된 경우 mongocryptd 는 오류를 반환합니다

mongocryptd 이전 기능만 수행하며 다음과 같은 작업은 수행하지 않습니다:

  • mongocryptd 암호화나 복호화를 수행하지 않습니다.

  • mongocryptd 어떠한 암호화 키 자료에도 접근하지 않습니다.

  • mongocryptd 네트워크를 통해 대기하지 않습니다.

필드 암호화 및 자동 암호 해독을 수행하기 위해 드라이버는 Apache 라이선스가 부여된 libmongocrypt 라이브러리.

MongoDB 다운로드 센터 에서 자동 암호화 공유 라이브러리를 다운로드하려면 버전과 플랫폼을 선택한 다음 라이브러리를 선택합니다.

사용 가능한 릴리스 및 패키지의 확장된 목록을 보려면 MongoDB Enterprise 다운로드를 참조하세요.

1

Version 드롭다운 메뉴에서 7.0.0 (current)을(를) 선택합니다.

2

Platform 드롭다운에서 플랫폼을 선택합니다.

3

Package 드롭다운 메뉴에서 crypt_shared를 선택합니다.

4

Download를 클릭합니다.

운전자 가 자동 암호화 공유 라이브러리를 검색하는 방법을 구성하려면 다음 매개 변수를 사용합니다.

이름
설명
cryptSharedLibPath

자동 암호화 공유 라이브러리 패키지 crypt_shared 의 절대 경로를 지정합니다.

기본값: undefined

cryptSharedLibRequired

운전자 가 자동 암호화 공유 라이브러리를 사용해야 하는지 여부를 지정합니다. true 인 경우 자동 암호화 공유 라이브러리를 사용할 수 없는 경우 운전자 는 오류를 반환합니다. false 인 경우 운전자 는 다음과 같은 일련의 작업을 수행합니다.

  1. 자동 암호화 공유 라이브러리를 사용하려고 시도합니다.

  2. 자동 암호화 공유 라이브러리를 사용할 수 없는 경우 운전자 는 mongocryptd 을(를) 시작하여 연결을 시도합니다.

기본값: false

이러한 매개변수를 구성하는 방법을 보여주는 예시를 보려면 Quick Start을 참조하세요.

1

mongocryptd을(를) 설치합니다.

지원되는 Linux 운영 체제의 경우: MongoDB Server 패키지를 설치하려면 Linux 에서 설치하기 튜토리얼 을 따라 mongodb-enterprise 서버 패키지를 설치합니다. 또는 mongodb-enterprise-cryptd 를 지정하여 mongocryptd 바이너리만 설치합니다. 패키지 관리자는 시스템 PATH의 위치에 바이너리를 설치합니다.

OSX의 경우: MongoDB Server 패키지를 설치 하려면 MacOS에 설치하기 튜토리얼 을 따르세요. 패키지 관리자는 시스템 PATH의 위치에 바이너리를 설치합니다.

Windows 의 경우: MongoDB Server 패키지를 설치하려면 Windows 에서 설치하기 튜토리얼 을 따르세요. 설치 후 시스템 PATH에 mongocryptd 패키지를 추가해야 합니다. 문서화된 Windows 설치 권장사항에 따라 mongocryptd 바이너리를 시스템 PATH에 추가합니다.

공식 tarball/ZIP 아카이브 에서 설치하려면 공식 아카이브에서 설치하려면 문서화된 운영 체제 권장사항에 따라 시스템 PATH에 mongocryptd 바이너리를 추가하세요.

2

라이브러리를 구성합니다:

드라이버가 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'])

라이브러리를 설치한 후 선택한 키 관리 시스템에서 고객 마스터 키 를 생성합니다 .

돌아가기

libmongocrypt 설치