CSFLE ライブラリのインストールと構成
MongoDBは、クライアント側フィールド レベル暗号化(CSFLE)に 2 つのライブラリのいずれかを使用できます。推奨ライブラリは、 自動暗号化共有ライブラリ です。
始める前に
CSFLE を自動暗号化で使用するには、まず、 MongoDBがフィールドを暗号化するために使用するライブラリを選択する必要があります。
crypt_shared : 推奨 CSFLE ライブラリ。
mongocryptd 。MongoDB MongoDB Enterprise Serverのインストールに含まれています。
どちらも libmongocrypt
ライブラリが必要です。詳しくは、 「 CSFLE 用のlibmongocrypt のインストール」を参照してください。
自動暗号化共有ライブラリ
自動暗号化共有ライブラリは、クライアント アプリケーションで自動暗号化を実行できるようにする動的ライブラリです。 動的ライブラリは、コンパイル時ではなく実行時にアプリケーションによってアクセスされる機能のセットです。 自動暗号化共有ライブラリは、次のタスクを実行します。
暗号化スキーマを読み取って、どのフィールドを暗号化または復号化するかを決定します
アプリケーションが暗号化されたフィールドに対してサポートされていない操作を実行するのを防ぎます
自動暗号化共有ライブラリは、次のいずれも実行しません。
データの暗号化または復号化の実行
暗号化のキーマテリアルにアクセスする
ネットワーク経由のデータをリッスンする
自動暗号化共有ライブラリはmongocryptd
の代替として推奨されており、自動暗号化を実行するために別の プロセスを生成する必要はありません。
注意
自動暗号化共有ライブラリの使用を推奨していますが、 mongocryptd
は引き続きサポートされています。
自動暗号化の詳細については、「機能 」を参照してください。
mongocryptd
mongocryptd
はMongoDB Enterprise Serverとともにインストールされます。
CSFLE 対応の MongoDB クライアントを作成すると、 mongocryptd
プロセスがデフォルトで自動的に開始されます。
mongocryptd
プロセスでは以下の操作が実行されます。
指定された自動暗号化ルールを使用して、暗号化の読み取り操作および書込み (write) 操作のフィールドをマークします。
暗号化されたフィールドでサポートされていない操作が実行されるのを防ぎます。
データベース接続に指定された暗号化スキーマを解析します。 自動暗号化ルールは、JSON schema 構文の厳密なサブセットを使用します。 ルールに無効な自動暗号化構文または
document validation
構文が含まれている場合、mongocryptd
はエラーを返します。
mongocryptd
は、前の機能のみを実行し、次の機能は実行しません。
mongocryptd
暗号化または復号化は実行されませんmongocryptd
暗号化のキー リソースにはアクセスしません。mongocryptd
ネットワーク経由でリッスンしない
フィールドの暗号化と自動復号化を実行するために、ドライバーは Apache ライセンスの libmongocrypt ライブラリ。
公式MongoDBドライバーは、クライアントホスト マシン上のmongocryptd
プロセスにアクセスする必要があります。これらのクライアントは、デフォルトで 、システムPATH
内のmongocryptd
プロセスを検索しデフォルト。
手順
自動暗号化共有ライブラリをダウンロード
バージョンとプラットフォーム、ライブラリの順に選択して、 MongoDB ダウンロード センターから自動暗号化共有ライブラリをダウンロードします。
Versionドロップダウンで、「current」というラベルの付いたバージョンを選択します。
[ Platform ] ドロップダウンで、プラットフォームを選択します。
Package のドロップダウンで、[
crypt_shared
] を選択します。[Download] をクリックします。
Tip
利用可能なリリースとパッケージの展開リストを表示するには、「 MongoDB Enterprise ダウンロード 」を参照してください。
自動暗号化共有ライブラリの構成
次のパラメーターを使用して、ドライバーが自動暗号化共有ライブラリを検索する方法を構成できます。
名前 | 説明 |
---|---|
cryptSharedLibPath | 自動暗号化共有ライブラリ パッケージへの絶対パス、 デフォルト: |
cryptSharedLibRequired | ドライバーが自動暗号化共有ライブラリを使用する必要があるかどうかを指定します。
デフォルト: |
これらのパラメーターを設定する方法の例については、「クイック スタート 」を参照してください。
mongocryptd をインストールする
サポートされている Linux オペレーティング システムの場合:サーバー パッケージをインストールするには、「 Linux へのインストール 」チュートリアルに従い、 mongodb-enterprise
サーバー パッケージをインストールします。 または、代わりにmongodb-enterprise-cryptd
を指定して、 mongocryptd
バイナリのみをインストールします。 パッケージ マネージャーはバイナリをシステム パス内のロケーションにインストールします。
OSX の場合: Server パッケージをインストールするには、 MacOS へのインストール チュートリアルに従ってください。 パッケージ マネージャーは、システム パス内のロケーションにバイナリをインストールします。
Windows の場合: Server パッケージをインストールするには、 「Windows へのインストール」のチュートリアルに従ってください。 インストール後に、 mongocryptd
パッケージをシステム パスに追加する必要があります。 Windows インストールのドキュメント化されたベストプラクティスに従って、 mongocryptd
バイナリをシステム パスに追加します。
公式の tarball / ZIP アーカイブから をインストールする方法:公式アーカイブからインストールするには、ドキュメント化された ベストプラクティス に従って、 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" |
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'])