Docs Menu
Docs Home
/ /
参照

Queryable Encryption の制限

Queryable Encryption はMongoDB Atlas Search と互換性がありません。

注意

Queryable Encryption の技術プレビュー中に次の制限が適用されます。

競合係数は、同時接続数に基づいてパフォーマンスを調整するのに役立つ設定です。

競合係数は不変であり、暗号化のフィールドを指定するときにのみ設定できます。 デフォルト値は 0です。

暗号化するフィールドごとに一意の データ暗号化キー を手動で作成する必要があります。 将来のリリースでは、 encryptedFieldsMapからkeyIdフィールドを省略でき、Queryable Encryption 互換ドライバーが DEKを自動的に作成するようになります。

テクニカル プレビュー中にメタデータコレクションが1 GB を超える場合は、 インデックス圧縮を手動で実行する必要があります。 将来のリリースでは、メタデータコレクションが定義されたサイズを超えると、圧縮が自動的に実行されるようになります。

圧縮は、暗号化されたフィールドに関連付けられたメタデータ コレクションのサイズを縮小し、パフォーマンスを向上させるプロセスです。

テクニカル プレビュー中に、 MongoClientに渡されるencryptedFieldsMapを変更しないでください。 指定すると、クエリ時に予期しない誤った動作が発生する可能性があります。

mongodは暗号化されたBinData } のみを保存し、暗号化されたフィールドを指定する任意の集計式またはクエリ演算子をBinDataの値に対して適用します。 式または演算子はBinDataフィールドをサポートする場合がありますが、復号化された値に対して同じ式または演算子を発行すると、結果の値が誤った値や予期しない値になる可能性があります。 式または演算子がBinData値をサポートしていない場合、 mongodはエラーをスローします。

  • レプリカセットとシャーディングされたクラスターはサポートされています

  • スタンドアロン配置はサポートされていません

  • セカンダリ読み取りはサポートされていません

  • メタデータコレクションはシャーディングしてはなりません

  • シャードキーは暗号化されたフィールドであってはなりません

  • Queryable Encryption は新しいコレクションのみをサポートします。 既存のコレクションに Queryable Encryption を追加または削除することはできません。

  • jsonSchemaencryptキーワードが含まれている場合、Queryable Encryption コレクションの作成時にjsonSchemaからdb.createCollection()を指定することはできません。 同じコレクションでは、クライアント側のフィールドレベル暗号化と Queryable Encryption は併用できません。

  • jsonSchema encryptedFieldsjsonSchemadb.createCollection()に暗号化されたフィールドの検証が含まれていない限り、 と の両方を に指定できます。

  • Queryable Encryption は、暗号化されていないコレクションからの自動移行をサポートしていません。 ドキュメントは 1 つずつインポートする必要があります。

  • Queryable Encryption は、 クライアント側のフィールド レベル暗号化 で暗号化されたコレクションからの移行をサポートしていません。 ドキュメントを復号化し、1 つずつインポートする必要があります。

  • Queryable Encryption は、ビュー時系列コレクション、またはCapped コレクション をサポートしていません。

  • Queryable Encryption は、 TTL インデックスまたは一意のインデックスをサポートしていません。

  • 暗号化されたフィールドを含むコレクションの名前を変更することはできません。

  • jsonSchema検証を無効にすることはできません。

    • コレクション情報にencryptedFieldsが存在する場合の自動暗号化ドキュメント検証。

    • validationLevelnoneに設定することはできません。

    • validationActionwarnに設定することはできません。

  • Queryable Encryption設定されていないMongoClientからコレクションを削除しても、関連付けられているメタデータコレクションは削除されません。``mongod`` メタデータ コレクションを削除する前に、暗号化されたフィールドを含むコレクションを削除すると、 は警告をログに記録します。

Tip

Queryable Encryption と互換性のあるドライバーは、Queryable Encryption 用に構成されたMongoClientを使用する場合にコレクションを削除するときにメタデータ コレクションを削除します。

Queryable Encryption で使用するコレクションは、常に明示的に作成する必要があります。 暗黙的なコレクション作成を使用すると、必要なインデックスとメタデータ コレクションが作成されないため、クエリのパフォーマンスが低下します。

encryptedFieldsMapでコレクションを作成するときにフィールドに指定するクエリタイプは不変です。 既存のフィールドに新しいクエリ タイプを追加することはできません。また、既存のクエリ タイプを変更することもできません。

暗号化されたフィールド名は不変です。 たとえば、暗号化するフィールドとしてssnを指定した場合、フィールド名をtaxPayerID$renameすることはできません。

暗号化されたフィールドを持つコレクションに対するビューに対するサポートされていないクエリを防ぐために、アプリケーションは自動暗号化検証に依存することはできません。

Queryable Encryption で暗号化された値を含むコレクションのビューに対するクエリでは、基礎となるビュー集計パイプラインまたはクエリが暗号化されたフィールドを参照している場合、予期しない結果や不正確な結果が返されることがあります。 Queryable Encryption で暗号化された値を含むコレクションにビューを作成する場合は、予期しない結果や誤った結果のリスクを軽減するために、暗号化されたフィールドでの操作を避けてください。

ビューの詳細については、「ビュー 」を参照してください。

Queryable Encryption は、ユーザー指定の照合またはコレクションのデフォルトの照合を無視します。 暗号化により、フィールド値がぼかして表示され、通常の照合動作が妨げられます。 暗号化されたフィールドに対する照合を区別するクエリでは、予期しない結果や誤った結果が返されることがあります。

照合の詳細については、照合ドキュメント を参照してください。

自動暗号化用に構成された MongoDB バージョン 6.0 以降の互換性のあるドライバーは、 自動暗号化の操作 をサポートしていますが、サポートされていない読み取りおよび書込み操作の場合、基礎となるサポート ライブラリはコレクション カタログをイントロスペクションしてデフォルトの照合を識別できません。 したがって、アプリケーションは Queryable Encryption の検証に依存して、照合のデフォルトを持つ暗号化されたフィールドに対するクエリを防ぐことはできません。

Unique indexes は、インデックス キーで暗号化されたフィールドが指定されている場合、一意性を保証できません。

Queryable Encryption では、特定の入力に対して常に異なる暗号化値が生成されます。 サーバーは、復号化された値が一意ではない場合でも、暗号化された各値を一意と見なします。 そのため、コレクションには、インデックスによって強制される一意の制約を持つフィールドの重複するプレーンテキスト値を持つ複数のドキュメントを含めることができます。

自動暗号化用に構成された MongoDB バージョン 6.0 以降の互換性のあるドライバーは、サポートされていない読み取りおよび書込み操作の自動暗号化の操作をサポートしていますが、基礎のサポート ライブラリは、特定のフィールドを一意として識別するためにインデックス カタログを内部検証することはできません。 アプリケーションは、ランダムに暗号化されたフィールドでの一意の制約違反を防ぐために、自動暗号化検証に依存することはできません。

Queryable Encryption は MongoDB によって自動生成された値に依存しているため、 _idフィールドを暗号化するように Queryable Encryption に指示することはできません。

自動暗号化は、コマンド、クエリ演算子、更新演算子、集計ステージ、および集計式のサブセットをサポートします。 完全なドキュメントについては、「自動暗号化がサポートする操作 」を参照してください。

戻る

互換性