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

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 次のフィールドを取ります。

フィールド
タイプ
必要性
説明

dbName

string

必須

暗号化するデータベースの名前。

collName

string

必須

暗号化するコレクションの名前。

clientEncOpts

ドキュメント

必須

暗号化されたコレクションを構成するオプション。

clientEncOpts.provider

string

必須

CMK の保存に使用している KMS。

clientEncOpts.createCollectionOptions

ドキュメント

必須

暗号化するフィールド。 encryptedFieldsMapオブジェクトを構成する方法の詳細については、「手順 」を参照してください。

clientEncOpts.masterKey

ドキュメント

任意

KMSプロバイダーがAmazon Web Services 、 GCP 、またはAzureである場合に、マスター キーを取得する方法。

mongoshクライアント側のフィールド レベルとQueryable Encryptionメソッドでは、クライアント側の暗号化用に構成されたデータベース接続が必要です。 現在のデータベース接続がクライアント側のフィールド レベル暗号化を有効にして開始されなかった場合、次のいずれかが発生します。

or

次の例では、Queryable Encryption 構成にローカルで管理されている KMS を使用しています。

1
  1. mongosh を起動する

    実行:

    mongosh --nodb

    --nodb は、データベースに接続しないことを意味します。

  2. キーstringの生成

    基本64 96バイトの string を生成する:

    const TEST_LOCAL_KEY = require("crypto").randomBytes(96).toString("base64")
  3. 暗号化オプション オブジェクトの作成

    クライアント側のフィールドレベル暗号化オプションオブジェクトを作成するには、前のステップのTEST_LOCAL_KEY string を使用します。

    var autoEncryptionOpts = {
    "keyVaultNamespace" : "encryption.__dataKeys",
    "kmsProviders" : {
    "local" : {
    "key" : BinData(0, TEST_LOCAL_KEY)
    }
    }
    }
  4. 暗号化されたクライアント オブジェクトの作成

    暗号化されたクライアントオブジェクトを作成するには、 Mongo()コンストラクターを使用します。 mongodb://myMongo.example.net URI を、ターゲットクラスターの接続string URIに置き換えます。 (例: )。

    encryptedClient = Mongo(
    "mongodb://myMongo.example.net:27017/?replSetName=myMongo",
    autoEncryptionOpts
    )
2

暗号化するフィールドを指定するには、次のようにencryptedFieldsMapsを作成します。

const encryptedFieldsMap = {
encryptedFields: {
fields: [
{
path: "secretField",
bsonType: "string",
queries: { queryType: "equality" },
},
],
},
};
3

暗号化されたenc.usersコレクションを作成します。

clientEncryption = encryptedClient.getClientEncryption();
var result = clientEncryption.createEncryptedCollection(
"enc",
"users",
{
provider: "local",
createCollectionOptions: encryptedFieldsMap,
masterKey: {} // masterKey is optional when provider is local
}
)
4

createEncryptedCollection は、多数のフィールドを持つ大きな結果オブジェクトを返します。 result.collectionの値を確認して、コレクションが目的の場所で作成されたことを確認します。

enc> result.collection
enc.users

戻る

クライアントサイドのフィールド レベル暗号化