getKeyVault()現在のデータベース接続の
KeyVaultオブジェクトを返します。KeyVaultオブジェクトは、クライアント側のフィールドレベル暗号化 のデータ暗号化キー管理をサポートしています。次の値を返します。 現在のデータベース接続の
KeyVaultオブジェクト。
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
- MongoDB Atlas はクラウドでの MongoDB 配置のための完全管理サービスです
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
getKeyVault() の構文は次のとおりです。
keyVault = db.getMongo().getKeyVault();
次のデータ暗号化キー管理メソッドにアクセスするには、 KeyVaultオブジェクトを使用します。
動作
データベース接続にクライアント側のフィールドレベル暗号化を構成する必要があります
次の例では、クライアント側のフィールドレベル暗号化構成にローカルで管理されているキーを使用しています。
mongoshClientEncryptionメソッドでは、使用中の暗号化が有効になっているデータベース接続が必要です。現在のデータベース接続が使用中の暗号化を有効にして開始されなかった場合、次のいずれかが発生します。
mongosh必要なオプションとの接続を確立するには、 コマンドラインオプションを使用します。コマンドラインオプションは、CMK 管理用のAmazon Web Services KMS プロバイダーのみをサポートしています。
キーヴォールトの一意の部分インデックス
getKeyVault()メソッドは、keyAltNames が存在するドキュメントのみを対象とした部分インデックスフィルターを使用して、keyAltNames フィールドにユニークインデックスを自動的に作成します。 は、 キーヴォールトコレクションにこのインデックスを作成します。これにより、同じキーヴォールト内の 2getKeyVault() つのデータ暗号化キーが同じキーの別名を持つことがなくなり、どのデータ暗号化のキーが暗号化および復号化に適しているかが明確になる。
警告
getKeyVault()によって作成されたユニークインデックスは削除しないでください。クライアント側のフィールドレベル暗号化操作は、keyAltNames のサーバー強制一意性に依存します。インデックスを削除すると、予期しない、または予測できない動作が発生する可能性があります。
例
次の例では、クライアント側のフィールドレベル暗号化構成にローカルで管理されているキーを使用しています。
暗号化されたクライアントの作成
データベース接続を作成するには、クライアント側のフィールドレベル暗号化オプションが構成されたMongo()コンストラクターを使用します。 mongodb://myMongo.example.net URI を、ターゲットクラスターの接続string URIに置き換えます。
encryptedClient = Mongo( "mongodb://myMongo.example.net:27017/?replSetName=myMongo", autoEncryptionOpts )
getKeyVault()キーヴォールトオブジェクトを取得するには、 メソッドを使用します。
keyVault = encryptedClient.getKeyVault()
クライアント側のフィールドレベル暗号化を有効にして MongoDB 接続を開始する方法に関する詳細なドキュメントについては、 Mongo()を参照してください。