Limitações do Queryable Encryption
Nesta página
- Atlas Search
- Visualizar limitações específicas
- Fator de contenção
- Criação manual de chaves de dados
- Compactação manual
encryptedFieldsMap
Modificação- Suporte a operações de leitura e gravação
- Suporte a topologia
- Fragmentação
- CRUD
- Collections
- Descartar collection
- criar coleta
- Tipos de query
- Nomes de campo criptografados
- Visualizações
- Agrupamentos
- Unique Indexes
- O campo _id
- Suporte a consultas de leitura/gravação
Atlas Search
Queryable Encryption é incompatível com MongoDB Atlas Search.
Visualizar limitações específicas
Observação
As limitações a seguir se aplicam durante a visualização técnica do Queryable Encryption.
Fator de contenção
O fator de contenção é uma configuração que ajuda a ajustar o desempenho com base no número de conexões simultâneas.
Contention factor is immutable, and can only be set when specifying a field for encryption. O valor padrão é 0
.
Criação manual de chaves de dados
Você deve criar manualmente um diretório de dados exclusivo para cada campo que deseja criptografar. Em uma versão futura, você poderá omitir o campo keyId
do seu encryptedFieldsMap
e um driver compatível com o Queryable Encryption criará o DEK automaticamente.
Compactação manual
Você precisará executar manualmente acompactação de índice quando suas coleções de metadados excederem 1 GB durante a visualização técnica. Em uma versão futura, a compactação será executada automaticamente quando as coleções de metadados excederem um tamanho definido.
A compactação é um processo que diminui o tamanho das coletas de metadados associadas aos campos criptografados e melhora o desempenho.
encryptedFieldsMap
Modificação
Não modifique o encryptedFieldsMap
passado para seu MongoClient
durante a visualização técnica. Isso pode resultar em comportamento inesperado e incorreto ao consultar.
Suporte a operações de leitura e gravação
O mongod
armazena apenas o BinData
criptografado e aplica qualquer expressão de agregação ou operador de consulta que especifique um campo criptografado ao valor BinData
. Embora a expressão ou o operador possa oferecer suporte a campos BinData
, o valor resultante pode ser incorreto ou inesperado quando comparado à emissão dessa mesma expressão ou operador em relação ao valor descriptografado. O mongod
gera um erro se a expressão ou o operador não suportar valores BinData
.
Suporte a topologia
Conjuntos de réplicas e clusters fragmentados são aceitos
Implantações autônomas não são aceitas
Não há compatibilidade para leituras secundárias
Fragmentação
As coleções de metadados não devem ser fragmentadas
As chaves de fragmento não devem ser campos criptografadas
CRUD
A Queryable Encryption não oferece suporte a operações em lote. As seguintes operações não são suportadas: -
db.collection.insertMany()
-db.collection.updateMany()
-db.collection.deleteMany()
A Queryable Encryption limita os argumentos
db.collection.findAndModify()
. -fields
não é permitido -new
deve ser falso
Collections
A Queryable Encryption oferece suporte apenas a novas coleções. Você não pode adicionar ou remover a Queryable Encryption de coleções existentes.
Não é possível especificar
jsonSchema
paradb.createCollection()
ao criar uma collection de Queryable Encryption sejsonSchema
contiver a palavra-chaveencrypt
. Não é possível usar a criptografia no nível do campo do lado do cliente com a Queryable Encryption na mesma coleção.Você pode especificar tanto
encryptedFields
quantojsonSchema
adb.createCollection()
, desde que o jsonSchema não contenha validação para campos criptografados.A Queryable Encryption não é compatível com a migração automática de uma collection não criptografada. Você deve importar os documentos um por um.
Queryable Encryption não oferece suporte à migração de collection criptografadas com a Criptografia em Nível de campo do Lado do Cliente. Você deve descriptografar seus documentos e importá-los um por um.
A Queryable Encryption não é compartível com Visualizações, coleções de séries temporais nem collections limitadas.
A Queryable Encryption não é compatível com índices TTL ou índices únicos.
Você não pode renomear uma coleção com campos criptografados.
Você não pode desabilitar a validação do
jsonSchema
.Validação do documento de criptografia automática quando
encryptedFields
está presente nas informações da collection.Não é possível definir
validationLevel
comonone
.Não é possível definir
validationAction
comowarn
.
Descartar collection
Dropping collections from a
MongoClient
that is not configured for Queryable Encryption will not drop the associated metadata collections.``mongod`` registra um aviso se você descartar uma collection com campo criptografados antes de descartar a collection de metadados.
Dica
Os drivers compatíveis com Queryable Encryption descartam as coleções de metadados ao descartar a coleção ao usar um MongoClient
configurado para Queryable Encryption.
criar coleta
Você deve sempre criar collection explicitamente para uso com a Queryable Encryption. O uso da criação de collection implícita não criará os índices e as collection de metadados necessários, resultando em um desempenho de query ruim.
Tipos de query
Ao criar a coleção no encryptedFieldsMap
, o tipo de query que você especificar para um campo será imutável. Não é possível adicionar novos tipos de query a um campo existente nem alterar o tipo de query existente.
Nomes de campo criptografados
Os nomes dos campos criptografados são imutáveis. Por exemplo, se você especificar ssn
como um campo para criptografar, não poderá $rename
o nome do campo como taxPayerID
.
Visualizações
As aplicações não podem confiar na criptografia automática para evitar queries não suportadas em visualizações de coleções com campo criptografados.
Queries nas visualizações de coleções que contenham valores criptografados com a Queryable Encryption podem retornar resultados inesperados ou incorretos se o pipeline de agregação fundamental das visualizações ou a query fizerem referência a campos criptografados. Ao criar uma visualização em uma coleção que contenha valores criptografados com a Queryable Encryption, evite operar em campos criptografados para reduzir o risco de resultados inesperados ou incorretos.
Para obter mais informações sobre visualizações, consulte visualizações
Agrupamentos
A Queryable Encryption ignora os agrupamentos especificados pelo usuário ou os agrupamentos padrão da coleção. A criptografia obscurece o valor do campo e evita o comportamento normal de agrupamento. Queries sensíveis ao agrupamento em campo criptografados podem retornar resultados inesperados ou incorretos.
Para obter mais informações sobre agrupamentos, consulte Documento de agrupamento.
While MongoDB version 6.0 or later compatible drivers configured for automatic encryption have supported operations for automatic encryption, for unsupported read and write operations the underlying support library cannot introspect the collection catalog to identify the default collation. Portanto, os aplicativos não podem confiar na validação do Queryable Encryption para evitar a query em campos criptografados com padrões de agrupamento.
Unique Indexes
Unique indexes não pode garantir exclusividade se a chave de índice especificar campos criptografados.
Queryable Encryption always produces a different encrypted value given a specific input. O servidor considera cada valor criptografado exclusivo, embora o valor descriptografado possa não ser exclusivo. A collection poderia, portanto, conter vários documentos com valores de texto simples duplicados para campos com uma restrição única imposta pelo índice.
Embora os drivers compatíveis com o MongoDB versão 6.0 ou posterior configurados para criptografia automática tenham operações suportadas para criptografia automática para operações de leitura e gravação sem suporte, a biblioteca de suporte subjacente não pode fazer a introspecção do catálogo de índices para identificar um determinado campo como exclusivo. A aplicação não pode confiar na criptografia automática para evitar violações de restrições exclusivas em campo criptografados aleatoriamente.
O campo _id
Não é possível instruir o Queryable Encryption a criptografar o campo _id
porque ele depende do valor gerado automaticamente pelo MongoDB.
Suporte a consultas de leitura/gravação
A criptografia automática oferece suporte a um subconjunto de comandos, operadores de query, operadores de atualização, estágios de agregação e expressões de agregação. Para obter a documentação completa, consulte Operações suportadas para criptografia automática.