Overview
Tip
自動暗号化共有ライブラリの使用
MongoDBは、 共有ライブラリ と呼ばれる新しい暗号化ヘルパー、  crypt_shared 、 をリリースしました。 共有ライブラリはmongocryptdに置き換わり、新しい プロセスを生成する必要がありません。
注意
エンタープライズ機能
フィールドレベル暗号化の自動機能は、 MongoDB Enterprise 6.0 以降とMongoDB Atlas 6.0 以降のクラスターでのみサポートされています。
mongocryptd はMongoDB Enterprise Server(バージョン4.2以降)でインストールされます。
Queryable Encryption が有効な MongoDB クライアントを作成すると、 mongocryptdプロセスがデフォルトで自動的に開始され、次の責任が処理されます。
- 指定された自動暗号化ルールを使用して、暗号化の読み取り操作および書込み (write) 操作のフィールドをマークします。 
- 暗号化されたフィールドでサポートされていない操作が実行されるのを防ぎます。 
- データベース接続に指定された暗号化スキーマを解析します。 自動暗号化ルールは、JSON schema 構文の厳密なサブセットを使用します。 自動暗号化ルールに無効な自動暗号化構文またはドキュメント検証構文が含まれている場合、 - mongocryptdはエラーを返します。
mongocryptd は、上記の機能のみを担当し、以下のいずれも実行しません。
- mongocryptd自体は暗号化や復号化を実行しない
- mongocryptd暗号化のキー リソースにはアクセスしません。
- mongocryptdはネットワーク経由でリッスンしません
MongoDB4.2 以降と互換性のあるドライバーは、クライアント側のフィールドレベルの暗号化と自動復号化を実行するために、Apache でライセンスされた libmongocrypt ライブラリを使用します。
公式 MongoDB 4.2 + 互換ドライバー、 mongosh 、および4.2以降のレガシーmongo shell は、クライアント ホスト マシン上のmongocryptdプロセスにアクセスする必要があります。 これらのクライアントは、デフォルトでシステム パス内のmongocryptdプロセスを検索します。
インストール
サポートされている Linux オペレーティング システムの場合は、 Linux へのインストール チュートリアルに従ってサーバー パッケージをインストールし、ドキュメント化されたインストール手順に従って、 mongodb-enterpriseサーバー パッケージをインストールします。 または、代わりにmongodb-enterprise-cryptdを指定して、 mongocryptdバイナリのみをインストールします。 パッケージ マネージャーはバイナリをシステム パス内のロケーション(例: /usr/bin/ )
OSX の場合は、 MacOS へのインストール チュートリアルに従って、サーバー パッケージをインストールします。 パッケージ マネージャーは、システム パス内のロケーションにバイナリをインストールします。
Windows の場合は、 Windows へのインストールチュートリアルに従って、サーバー パッケージをインストールします。 インストール後に、 mongocryptdパッケージをシステム パスに追加する必要があります。 mongocryptdバイナリをシステム パスに追加する手順については、Windows インストールのドキュメント化されたベストプラクティスを参照してください。
公式の tarball または ZIP アーカイブを使用したインストールの場合は、オペレーティング システムのドキュメント化されたベストプラクティスに従って、 mongocryptdバイナリをシステム パスに追加します。
構成
4.2 以降と互換性のあるドライバーがmongocryptdプロセスにアクセスできる場合、デフォルトではドライバーはmongocryptdプロセスの生成を管理します。
注意
mongocryptd ポート使用中
ドライバーによって指定されたポートでmongocryptdプロセスがすでに実行中の場合、ドライバーは警告をログに記録し、新しいプロセスを生成せずに動作を続行できます。 ドライバーによって指定された設定は、既存のプロセスが終了し、新しい暗号化されたクライアントが接続を試みた場合にのみ適用されます。
ドライバーがmongocryptdを起動する方法は、次のパラメータを使用して構成できます。
| 名前 | 説明 | 
|---|---|
| ポート | The port from which  mongocryptdlistens for messages.Specify this value in the  AutoEncryptionSettings.Default:  27020 | 
| idleshutdownTimeoutSecs | Number of idle seconds in which the  mongocryptdprocess should wait before exiting.Specify this value in the  AutoEncryptionSettings.Default:  60 | 
重要
起動の起動
可能であれば、 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 ドライバーの現在のバージョン(3.3.4)では、リッスン ポートを一致させるために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'])