개요
클라이언트 측 필드 레벨 암호화(CSFLE)를 사용하기 위해 설치해야 하는 애플리케이션 및 라이브러리에 대해 알아보세요.
필요한 사항
CSFLE를 사용하려면 먼저 개발 환경에서 다음 항목을 설정해야 합니다.
(선택 사항) 자동 암호화 공유 라이브러리 를 다운로드합니다. 자동 암호화 공유 라이브러리는 mongocryptd 보다 선호되는 대안이며 새 프로세스 를 생성할 필요가 없습니다.
mongocryptd은 여전히 지원됩니다.
x64 운영 체제를 사용하고 있는지 확인합니다. CSFLE에는 x64 지원 필요합니다.
운전자 버전 3.0 이상을 사용하는 경우 다음 단계도 완료해야 합니다.
MongoDB 설치합니다. NuGet의 드라이버.Encryption 패키지 . 이 패키지 자동 암호화 활성화합니다.
애플리케이션이 Linux에서 실행되는 경우 libmongocrypt 를 수동으로 설치합니다. 그런 다음
LIBMONGOCRYPT_PATH환경 변수를libmongocrypt파일 의 절대 경로로 설정하다 .애플리케이션 64비트 Linux 에서 실행되고 운전자 버전 3.4.3 이하를 사용하는 경우
.csproj파일 에 다음 XML 줄을 추가합니다. 설치한MongoDB.Driver.Encryption패키지 의 버전과 일치하도록<MongoDriverEncryptionVersion>요소의 값을 변경합니다.
<PropertyGroup> <!-- replace the version here with your package version --> <MongoDriverEncryptionVersion>3.4.2</MongoDriverEncryptionVersion> <MongoDriverEncryptionPath>$(NuGetPackageRoot)mongodb.driver.encryption\$(MongoDriverEncryptionVersion)</MongoDriverEncryptionPath> </PropertyGroup> <PropertyGroup> <!-- Suppresses the duplicate file error --> <ErrorOnDuplicatePublishOutputFiles>false</ErrorOnDuplicatePublishOutputFiles> </PropertyGroup> <!-- Ensures the correct library after build or publish --> <Target Name="EnsureCorrectMongoEncryption" AfterTargets="Build;Publish" Condition="'$(RuntimeIdentifier)' != ''"> <!-- Determine paths based on current operation --> <PropertyGroup> <_TargetDir Condition="Exists('$(PublishDir)')">$(PublishDir)</_TargetDir> <_TargetDir Condition="'$(_TargetDir)' == ''">$(OutputPath)</_TargetDir> </PropertyGroup> <!-- Copy the correct library based on runtime identifier (RID) --> <ItemGroup> <_CorrectMongoLib Include="$(MongoDriverEncryptionPath)/runtimes/linux/native/x64/libmongocrypt.so" Condition="'$(RuntimeIdentifier)' == 'linux-x64'" /> <_CorrectMongoLib Include="$(MongoDriverEncryptionPath)/runtimes/linux/native/arm64/libmongocrypt.so" Condition="'$(RuntimeIdentifier)' == 'linux-arm64'" /> <_CorrectMongoLib Include="$(MongoDriverEncryptionPath)/runtimes/linux/native/alpine/libmongocrypt.so" Condition="'$(RuntimeIdentifier)' == 'linux-musl-arm64'" /> </ItemGroup> <!-- Copy with overwrite --> <Copy SourceFiles="@(_CorrectMongoLib)" DestinationFolder="$(_TargetDir)" Condition="'@(_CorrectMongoLib)' != ''" OverwriteReadOnlyFiles="true" /> <Message Text="Fixed MongoDB encryption library for $(RuntimeIdentifier)" Condition="'@(_CorrectMongoLib)' != ''" /> </Target>
(선택 사항) 자동 암호화 공유 라이브러리 를 다운로드합니다. 자동 암호화 공유 라이브러리는 mongocryptd 보다 선호되는 대안이며 새 프로세스를 생성할 필요가 없습니다.
mongocryptd는 계속 지원됩니다.
libmongocrypt 를 설치합니다.
libmongocrypt라이브러리에는 암호화 관리하는 네이티브 라이브러리와 통신하기 위한 바인딩이 포함되어 있습니다.
(선택 사항) 자동 암호화 공유 라이브러리 를 다운로드합니다. 자동 암호화 공유 라이브러리는 mongocryptd 보다 선호되는 대안이며 새 프로세스를 생성할 필요가 없습니다.
mongocryptd는 계속 지원됩니다.
mongodb-crypt를 설치합니다.
mongodb-crypt라이브러리에는 암호화 관리하는 네이티브 라이브러리와 통신하기 위한 바인딩이 포함되어 있습니다.
(선택 사항) 자동 암호화 공유 라이브러리 를 다운로드합니다. 자동 암호화 공유 라이브러리는 mongocryptd 보다 선호되는 대안이며 새 프로세스를 생성할 필요가 없습니다.
mongocryptd는 계속 지원됩니다.
암호화
libmongocrypt라이브러리의 Node.js 래퍼인 mongodb-client-encryption을 설치합니다.libmongocrypt라이브러리에는 암호화 관리하는 네이티브 라이브러리와 통신하기 위한 바인딩이 포함되어 있습니다.
Node.js 드라이버 버전 6.0.0 이상을 사용하는 경우 mongodb-client-encryption 의 주요 버전 번호가 드라이버와 동일해야 합니다.
예를 예시 Node.js 운전자 v6.xx에는 mongodb-client-encryption v6.xx가 필요합니다.
(선택 사항) 자동 암호화 공유 라이브러리 를 다운로드합니다. 자동 암호화 공유 라이브러리는 mongocryptd 보다 선호되는 대안이며 새 프로세스를 생성할 필요가 없습니다.
mongocryptd는 계속 지원됩니다.
pymongocrypt
libmongocrypt암호화 라이브러리용 Python 래퍼를 설치합니다.libmongocrypt라이브러리에는 암호화 관리하는 네이티브 라이브러리와 통신하기 위한 바인딩이 포함되어 있습니다.
자세히 알아보기
CSFLE 사용을 시작하려면 CSFLE 빠른 시작을 참조하세요.
원격 키 관리 시스템 제공자와 함께 CSFLE를 사용하는 방법을 학습하려면 CSFLE 튜토리얼을 참조하세요.