Mongo()
項目一覧
説明
Mongo(host, ClientSideFieldLevelEncryptionOptions, api)
mongosh
または JavaScript ファイルからデータベース接続をインスタンス化するための JavaScript コンストラクター。Mongo()
メソッドには次のパラメータがあります。Parameterタイプ説明host
string任意。 ホスト。形式は
<host>
または<host><:port>
のいずれかです。省略した場合、
Mongo()
はデフォルトのポート27017
でローカルホスト インターフェースへの接続をインスタンス化します。ClientSideFieldLevelEncryptionOptions
ドキュメント任意。 クライアント側フィールドレベル暗号化を有効にするための構成パラメータ。
ClientSideFieldLevelEncryptionOptions
は、データベース接続の既存のクライアント側のフィールドレベル暗号化構成を上書きします。 省略した場合、Mongo()
は現在のデータベース接続のクライアント側のフィールドレベル暗号化構成を継承します。使用方法と構文の詳細については、
ClientSideFieldLevelEncryptionOptions
を参照してください。api
ドキュメント任意。 Stable API を有効にするための構成オプション。
使用方法と構文の詳細については、
api
を参照してください。
ClientSideFieldLevelEncryptionOptions
ClientSideFieldLevelEncryptionOptions
ドキュメントでは、クライアント側フィールドレベル暗号化 の構成オプションを指定します。 データベース接続に既存のクライアント側のフィールドレベル暗号化構成がある場合は、 ClientSideFieldLevelEncryptionOptions
を指定するとその構成が上書きされます。
たとえば、クライアント側のフィールドレベル暗号化mongosh
コマンドライン オプション を使用して を起動すると、その接続のクライアント側暗号化が有効になります。に Mongo()
が含まれてい Mongo()
ない限り 、 を使用して作成された新しいデータベース接続は、暗号化設定を継承します。ClientSideFieldLevelEncryptionOptions
ClientSideFieldLevelEncryptionOptions
ドキュメントの構文は次のとおりです。
{ "keyVaultClient" : <object>, "keyVaultNamespace" : "<string>", "kmsProviders" : <object>, "schemaMap" : <object>, "bypassAutoEncryption" : <boolean> }
ClientSideFieldLevelEncryptionOptions
ドキュメントは次のパラメータを取ります。
Parameter | タイプ | 説明 | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
keyVaultClient | Mongo() 最大数。 | (任意)キーヴォールトコレクションをホストしている MongoDB クラスター。 クラスターを指す
| ||||||||||||||||||||||||
keyVaultNamespace | string | (必須)キーヴォールト コレクションの完全な名前空間。 | ||||||||||||||||||||||||
kmsProviders | ドキュメント | (必須) CMK(Customer Master Key)を管理するためにクライアント側のフィールドレベル暗号化で使用されるKMS ( KMS )。 クライアント側のフィールドレベル暗号化では、データ暗号化キーの暗号化と復号化に CMK を使用します。 クライアント側のフィールドレベル暗号化は、次の KMS プロバイダーをサポートしています。 可能であれば、 で提供される認証情報を環境変数として定義し、 オプションを使用して
| ||||||||||||||||||||||||
schemaMap | ドキュメント | (任意) JSON schema ドラフト4標準構文と暗号化固有のキーワードを使用して指定された、自動クライアント側のフィールドレベル暗号化ルール。 完全なドキュメントについては、「自動暗号化ルール 」を参照してください。 | ||||||||||||||||||||||||
bypassAutoEncryption | ブール値 | (任意) true を指定すると、自動クライアント側のフィールドレベル暗号化ルールをバイパスし、フィールドごとの明示的(手動)暗号化が実行されます。 |
api
api
パラメーターは、 Stable APIの構成オプションを指定します。 次のオプションを使用して、オプションの動作を有効または無効にすることができます。
オプション | タイプ | 説明 |
---|---|---|
version | string | API バージョンを指定します。 "1" は現在サポートされている唯一のバージョンです。 |
strict | ブール値 |
指定しない場合、デフォルトで |
deprecationErrors | ブール値 |
指定しない場合、デフォルトで |
api
パラメータの構文は次のとおりです。
{ api: { version: <string>, strict: <boolean>, deprecationErrors: <boolean> } }
例
MongoDB クラスターへの接続
次の操作では、 mongosh
セッション内から新しい接続オブジェクトが作成されます。
cluster = Mongo("mongodb://mymongo.example.net:27017/?replicaSet=myMongoCluster")
cluster
オブジェクトに対して操作を発行して、 mymongo.example.net:27017
クラスターと対話します。
myDB = cluster.getDB("myDB"); //returns the database object myColl = myDB.getCollection("myColl"); // returns the collection object
クライアント側の暗号化が有効になっているクラスターへの接続
ローカルで管理されているキーに対してクライアント側のフィールドレベル暗号化を構成するには、基本的に64でエンコードされた96バイトの string を指定する必要があります。 次の操作では、前述の要件を満たすキーを生成し、それをmongosh
にロードします。
TEST_LOCAL_KEY=$(echo "$(head -c 96 /dev/urandom | base64 | tr -d '\n')") mongosh --nodb --shell --eval "var TEST_LOCAL_KEY='$TEST_LOCAL_KEY'"
次の操作では、 mongosh
セッション内から新しい接続オブジェクトが作成されます。 ClientSideFieldLevelEncryptionOptions
オプションは、ローカルに管理されているキーを使用してクライアント側のフィールドレベル暗号化を有効にするために必要なオプションを指定します。
var ClientSideFieldLevelEncryptionOptions = { "keyVaultNamespace" : "encryption.dataKeys", "kmsProviders" : { "local" : { "key" : BinData(0, TEST_LOCAL_KEY) } } } cluster = Mongo( "mongodb://mymongo.example.net:27017/?replicaSet=myMongoCluster", ClientSideFieldLevelEncryptionOptions )
cluster
オブジェクトに対して操作を発行して、 mymongo.example.net:27017
クラスターとやり取りし、明示的な暗号化を実行します。
// returns the database object myDB = cluster.getDB("myDB"); // returns the collection object myColl = myDB.getCollection("myColl"); // returns object for managing data encryption keys keyVault = cluster.getKeyVault(); // returns object for explicit encryption/decryption clientEncryption = cluster.getClientEncryption();
クライアント側のフィールドレベル暗号化メソッドの完全なリストについては、「 クライアント側フィールドレベル暗号化メソッド 」を参照してください。
自動クライアント側暗号化が有効になっているクラスターへの接続
ローカルで管理されているキーに対してクライアント側のフィールドレベル暗号化を構成するには、基本的に64でエンコードされた96バイトの string を指定する必要があります。 次の操作では、前述の要件を満たすキーを生成し、それをmongosh
にロードします。
TEST_LOCAL_KEY=$(echo "$(head -c 96 /dev/urandom | base64 | tr -d '\n')") mongosh --nodb --shell --eval "var TEST_LOCAL_KEY='$TEST_LOCAL_KEY'"
次の操作では、 mongosh
セッション内から新しい接続オブジェクトが作成されます。 ClientSideFieldLevelEncryptionOptions
オプションは、 hr.employees
コレクションで自動クライアント側暗号化を有効にするために必要なオプションを指定します。
var ClientSideFieldLevelEncryptionOptions = { "keyVaultNamespace" : "encryption.dataKeys", "kmsProviders" : { "local" : { "key" : BinData(0,"BASE64-ENCODED-96-BYTE-LOCAL-KEY") } }, schemaMap : { "hr.employees" : { "bsonType": "object", "properties" : { "taxid" : { "encrypt" : { "keyId" : [UUID("bffb361b-30d3-42c0-b7a4-d24a272b72e3")], "bsonType" : "string", "algorithm" : "AEAD_AES_256_CBC_HMAC_SHA_512-Random" } }, "taxid-short": { "encrypt": { "keyId": [UUID("33408ee9-e499-43f9-89fe-5f8533870617")], "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", "bsonType": "string" } } } } } } cluster = Mongo( "mongodb://mymongo.example.net:27017/?replicaSet=myMongoCluster", ClientSideFieldLevelEncryptionOptions )
cluster
オブジェクトに対して操作を発行して、 mymongo.example.net:27017
クラスターとやり取りし、自動暗号化を利用します。
// returns the database object myDB = cluster.getDB("myDB"); // returns the collection object myColl = myDB.getCollection("myColl"); myColl.insertOne( { "name" : "J Doe", "taxid" : "123-45-6789", "taxid-short" : "6789" } )
taxid
taxid-short
指定された自動暗号化ルールは、指定されたデータ暗号化キーとアルゴリズムを使って フィールドと フィールドを暗号化します。正しい KMSと指定されたデータ暗号化キーにアクセスするために構成されたクライアントのみが フィールドを復号化できます。
クライアント側のフィールドレベル暗号化メソッドの完全なリストについては、「 クライアント側フィールドレベル暗号化メソッド 」を参照してください。
Stable API が有効になっているクラスターへの接続
次の操作では、 mongosh
セッション内から新しい接続オブジェクトが作成されます。 The api
option enables Stable API V1 and specifies that you cannot run deprecated command or commands outside of the Stable API.
cluster = Mongo( "mongodb://mymongo.example.net:27017/?replicaSet=myMongoCluster", null, { api: { version: "1", strict: true, deprecationErrors: true } } )
mymongo.example.net:27017
クラスターを操作するには、 cluster
オブジェクトに対して操作を発行します。 Stable API コマンドの完全なリストについては、「 Stable API コマンド 」を参照してください。