Docs Menu
Docs Home
/
MongoDBマニュアル
/ / / / /

CSFLE ライブラリのインストールと構成

項目一覧

  • 始める前に
  • 手順

MongoDBは、クライアント側フィールド レベル暗号化(CSFLE)に 2 つのライブラリのいずれかを使用できます。推奨ライブラリは、 自動暗号化共有ライブラリ です。

CSFLE を自動暗号化で使用するには、まず、 MongoDBがフィールドを暗号化するために使用するライブラリを選択する必要があります。

  • crypt_shared : 推奨 CSFLE ライブラリ。

  • mongocryptd 。MongoDB MongoDB Enterprise Serverのインストールに含まれています。

どちらも libmongocryptライブラリが必要です。詳しくは、 CSFLE 用のlibmongocrypt のインストール」を参照してください。

自動暗号化共有ライブラリは、クライアント アプリケーションで自動暗号化を実行できるようにする動的ライブラリです。 動的ライブラリは、コンパイル時ではなく実行時にアプリケーションによってアクセスされる機能のセットです。 自動暗号化共有ライブラリは、次のタスクを実行します。

  • 暗号化スキーマを読み取って、どのフィールドを暗号化または復号化するかを決定します

  • アプリケーションが暗号化されたフィールドに対してサポートされていない操作を実行するのを防ぎます

自動暗号化共有ライブラリは、次のいずれも実行しません

  • データの暗号化または復号化の実行

  • 暗号化のキーマテリアルにアクセスする

  • ネットワーク経由のデータをリッスンする

自動暗号化共有ライブラリはmongocryptdの代替として推奨されており、自動暗号化を実行するために別の プロセスを生成する必要はありません。

注意

自動暗号化共有ライブラリの使用を推奨していますが、 mongocryptdは引き続きサポートされています。

自動暗号化の詳細については、「機能 」を参照してください。

mongocryptdMongoDB Enterprise Serverとともにインストールされます。

CSFLE 対応の MongoDB クライアントを作成すると、 mongocryptdプロセスがデフォルトで自動的に開始されます。

mongocryptdプロセスでは以下の操作が実行されます。

  • 指定された自動暗号化ルールを使用して、暗号化の読み取り操作および書込み (write) 操作のフィールドをマークします。

  • 暗号化されたフィールドでサポートされていない操作が実行されるのを防ぎます。

  • データベース接続に指定された暗号化スキーマを解析します。 自動暗号化ルールは、JSON schema 構文の厳密なサブセットを使用します。 ルールに無効な自動暗号化構文またはdocument validation構文が含まれている場合、 mongocryptdはエラーを返します。

mongocryptd は、前の機能のみを実行し、次の機能は実行しません。

  • mongocryptd 暗号化または復号化は実行されません

  • mongocryptd 暗号化のキー リソースにはアクセスしません。

  • mongocryptd ネットワーク経由でリッスンしない

フィールドの暗号化と自動復号化を実行するために、ドライバーは Apache ライセンスの libmongocrypt ライブラリ。

公式MongoDBドライバーは、クライアントホスト マシン上のmongocryptdプロセスにアクセスする必要があります。これらのクライアントは、デフォルトで 、システムPATH内のmongocryptdプロセスを検索しデフォルト。

1

バージョンとプラットフォーム、ライブラリの順に選択して、 MongoDB ダウンロード センターから自動暗号化共有ライブラリをダウンロードします。

  1. Versionドロップダウンで、「current」というラベルの付いたバージョンを選択します。

  2. [ Platform ] ドロップダウンで、プラットフォームを選択します。

  3. Package のドロップダウンで、[crypt_shared] を選択します。

  4. [Download] をクリックします。

Tip

利用可能なリリースとパッケージの展開リストを表示するには、「 MongoDB Enterprise ダウンロード 」を参照してください。

2

次のパラメーターを使用して、ドライバーが自動暗号化共有ライブラリを検索する方法を構成できます。

名前
説明
cryptSharedLibPath

自動暗号化共有ライブラリ パッケージへの絶対パス、 crypt_sharedを指定します。

デフォルトundefined

cryptSharedLibRequired

ドライバーが自動暗号化共有ライブラリを使用する必要があるかどうかを指定します。 trueの場合、自動暗号化共有ライブラリが利用できない場合は、ドライバーはエラーを発生させます。 falseの場合、ドライバーは次の一連のアクションを実行します。

  1. 自動暗号化共有ライブラリの使用を試みます。

  2. 自動暗号化共有ライブラリが利用できない場合、ドライバーは を生成してmongocryptdに接続しようとします。

デフォルトfalse

これらのパラメーターを設定する方法の例については、「クイック スタート 」を参照してください。

1

サポートされている Linux オペレーティング システムの場合:サーバー パッケージをインストールするには、「 Linux へのインストール 」チュートリアルに従い、 mongodb-enterpriseサーバー パッケージをインストールします。 または、代わりにmongodb-enterprise-cryptdを指定して、 mongocryptdバイナリのみをインストールします。 パッケージ マネージャーはバイナリをシステム パス内のロケーションにインストールします。

OSX の場合: Server パッケージをインストールするには、 MacOS へのインストール チュートリアルに従ってください。 パッケージ マネージャーは、システム パス内のロケーションにバイナリをインストールします。

Windows の場合: Server パッケージをインストールするには、 「Windows へのインストール」のチュートリアルに従ってください。 インストール後に、 mongocryptdパッケージをシステム パスに追加する必要があります。 Windows インストールのドキュメント化されたベストプラクティスに従って、 mongocryptdバイナリをシステム パスに追加します。

公式の tarball / ZIP アーカイブから をインストールする方法:公式アーカイブからインストールするには、ドキュメント化された ベストプラクティス に従って、 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"
mongocryptdBypassSp数
When true, prevents the driver from automatically spawning mongocryptd.
Default: false
mongocryptdSpiderPath
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は listen ポートと一致する必要があります。

次のコード スニペットは、デフォルトのタイムアウト構成である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'])

戻る

暗号化