ClientEncryption.createEncryptedCollection()
バージョン 7.0 で追加。
ClientEncryption.createEncryptedCollection(dbName, collName, clientEncOpts)
ClientEncryption.createEncryptedCollection
は、dbName
で指定されたデータベースにcollName
で指定された暗号化コレクションを作成します。
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
ClientEncryption.createEncryptedCollection
の構文は次のとおりです。
clientEncryption = db.getMongo().getClientEncryption() clientEncryption.createEncryptedCollection( dbName, collName, { provider: kmsProviderName, createCollectionOptions: encryptedFieldsMap, masterKey: customerMasterKeyCredentials } )
コマンドフィールド
createEncryptedCollection
次のフィールドを取ります。
フィールド | タイプ | 必要性 | 説明 |
---|---|---|---|
| string | 必須 | 暗号化するデータベースの名前。 |
| string | 必須 | 暗号化するコレクションの名前。 |
| ドキュメント | 必須 | 暗号化されたコレクションを構成するオプション。 |
| string | 必須 | CMK の保存に使用している KMS。 |
| ドキュメント | 必須 | 暗号化するフィールド。 |
| ドキュメント | 任意 | KMSプロバイダーがAmazon Web Services 、 GCP 、またはAzureである場合に、マスター キーを取得する方法。 |
動作
mongosh
クライアント側のフィールド レベルとQueryable Encryptionメソッドでは、クライアント側の暗号化用に構成されたデータベース接続が必要です。 現在のデータベース接続がクライアント側のフィールド レベル暗号化を有効にして開始されなかった場合、次のいずれかが発生します。
必要なクライアント側フィールドレベル暗号化オプションとの接続を確立するには、
mongosh
からMongo()
コンストラクターを使用します。Mongo()
メソッドは、CMK(Customer Master Key)管理用に次のKMS ( KMS )プロバイダーをサポートしています。
or
必要なオプションとの接続を確立するには、
mongosh
コマンドライン オプションを使用します。 コマンドライン オプションは、CMK 管理用のAmazon Web Services KMSプロバイダーのみをサポートしています。
例
次の例では、Queryable Encryption 構成にローカルで管理されている KMS を使用しています。
暗号化された接続の作成
mongosh を起動する
実行:
mongosh --nodb --nodb
は、データベースに接続しないことを意味します。キーstringの生成
基本64 96バイトの string を生成する:
const TEST_LOCAL_KEY = require("crypto").randomBytes(96).toString("base64") 暗号化オプション オブジェクトの作成
クライアント側のフィールドレベル暗号化オプションオブジェクトを作成するには、前のステップの
TEST_LOCAL_KEY
string を使用します。var autoEncryptionOpts = { "keyVaultNamespace" : "encryption.__dataKeys", "kmsProviders" : { "local" : { "key" : BinData(0, TEST_LOCAL_KEY) } } } 暗号化されたクライアント オブジェクトの作成
暗号化されたクライアントオブジェクトを作成するには、
Mongo()
コンストラクターを使用します。mongodb://myMongo.example.net
URI を、ターゲットクラスターの接続string URIに置き換えます。 (例: )。encryptedClient = Mongo( "mongodb://myMongo.example.net:27017/?replSetName=myMongo", autoEncryptionOpts )
暗号化されたコレクションの作成
暗号化されたenc.users
コレクションを作成します。
clientEncryption = encryptedClient.getClientEncryption(); var result = clientEncryption.createEncryptedCollection( "enc", "users", { provider: "local", createCollectionOptions: encryptedFieldsMap, masterKey: {} // masterKey is optional when provider is local } )
詳細
クライアント側のフィールドレベル暗号化を有効にして MongoDB 接続を開始する方法に関する詳細なドキュメントについては、
Mongo()
を参照してください。暗号化されたコレクションの作成とクエリの方法の詳細な例については、「クイック スタート 」を参照してください。