Classe: Mongo::ClientEncryption
- Herda:
-
Objeto
- Objeto
- Mongo::ClientEncryption
- Definido em:
- build/ruby-driver-v2.19/lib/mongo/client_encryption.rb
Visão geral
O ClientEncryption encapsula operações explícitas em uma coleção de cofre de chaves que não podem ser feitas diretamente em um MongoClient. Ele fornece uma API para criptografar e descriptografar explicitamente valores e criar chaves de dados.
Recolhimento do Resumo do método de instância
-
#add_key_alt_name(id, key_alt_name) ⇒ BSON::Document | nil
Adiciona um key_alt_name para a chave na key vault collection com o ID fornecido.
-
#create_data_key(kms_provider, options = {}) ➤ BSON::Binary
Gera uma chave de dados usada para criptografia/descriptografia e armazena essa chave na coleção KMS.
-
#create_encrypted_collection(database, coll_name, coll_opts, kms_provider, master_key) ➤ Array()
Crie uma coleção com campos criptografados.
-
#descriptografar(valor) ➤ Objeto
Descriptografa um valor que já foi criptografado.
-
#delete_key(ID) ➤ Operação::Result
Remove a chave com o ID fornecido da coleção de cofre de chave.
-
#encrypt(value, options = {}) ➤ BSON::Binary
Criptografa um valor usando a chave de encriptação e o algoritmo especificados.
-
#encrypt_expression(expressão, options = { }) ➤ BSON::Binary
Criptografa uma expressão de correspondência ou expressão de agregação para consultar um índice de faixa.
-
#get_key(ID) ➤ BSON::Document | nada
Encontra uma única chave com o ID fornecido.
-
#get_key_by_alt_name(key_alt_name) ⇒ BSON::Document | nil
Retorna uma chave na key vault collection com o key_alt_name fornecido.
-
#get_keys ➤ Collection::View (também: #keys)
Retorna todas as chaves na key vault collection.
-
#initialize(key_vault_client, options = {}) ➤ ClientEncryption
construtor
Crie um novo objeto ClientEncryption com as opções fornecidas.
-
#remove_key_alt_name(ID, key_alt_name) ➤ BSON::Document | nada
Remove um key_alt_name de uma chave na key vault collection com o ID fornecido.
-
#rewrap_many_data_key(filter, opts = {}) ➤ Crypt::RewrapManyDataKeyResult
Descriptografa várias chaves de dados e (re)criptografa-as com uma nova master_key ou com sua master_key atual se uma nova não for fornecida.
Detalhes do construtor
#initialize(key_vault_client, options = {}) ➤ ClientEncryption
Crie um novo objeto ClientEncryption com as opções fornecidas.
46 47 48 49 50 51 52 53 |
# File 'build/ruby-driver-v2.19/lib/mongo/client_encryption.rb', linha 46 def inicializar(key_vault_client, = {}) @encrypter = Criptografar::ExplicitEncrypter.Novo( key_vault_client, [:key_vault_namespace], Criptografar::KMS::Credenciais.Novo([:kms_providers]), Criptografar::KMS::Validações.([:kms_tls_options]) ) end |
Detalhes do método de instância
#add_key_alt_name(ID, key_alt_name) ➤ BSON::Document | nada
Adiciona um key_alt_name para a chave na key vault collection com o ID fornecido.
180 181 182 |
# File 'build/ruby-driver-v2.19/lib/mongo/client_encryption.rb', linha 180 def add_key_alt_name(id, key_alt_name) @encrypter.add_key_alt_name(id, key_alt_name) end |
#create_data_key(kms_provider, options = {}) ➤ BSON::Binary
Gera uma chave de dados usada para criptografia/descriptografia e armazena essa chave na coleção KMS. A chave gerada é criptografada com a chave mestre KMS.
81 82 83 84 85 86 87 |
# File 'build/ruby-driver-v2.19/lib/mongo/client_encryption.rb', linha 81 def create_data_key(kms_provider, ={}) key_document = Criptografar::KMS::Documento MasterKey.Novo(kms_provider, ) key_alt_names = [:key_alt_names] key_material = [:key_material] @encrypter.create_and_insert_data_key(key_document, key_alt_names, key_material) end |
#create_encrypted_collection(banco de dados, coll_name, coll_opts, kms_provider, master_key) ➤ Array
Este método não atualiza o :encrypted_fields_map no :auto_encryption_options do cliente. Portanto, para utilizar a coleção criada por este método com criptografia automática, o usuário deve criar um novo cliente após chamar esta função com os :encrypted_fields retornados.
Crie uma coleção com campos criptografados.
Se :encryption_fields contiver um keyId com um valor nulo, uma chave de dados será gerada automaticamente e atribuída ao valor keyId.
267 268 269 270 271 272 273 274 275 276 277 278 |
# File 'build/ruby-driver-v2.19/lib/mongo/client_encryption.rb', linha 267 def create_encrypted_collection(database, coll_name, coll_opts, kms_provider, master_key) aumentar ArgumentError, 'coll_opts deve conter :encrypted_fields' a menos que coll_opts[:encrypted_fields] campos_criptografados = create_data_keys(coll_opts[:encrypted_fields], kms_provider, master_key) começar new_coll_opts = coll_opts.dup.mesclar(encryption_fields: campos_criptografados) [database[coll_name].criar(new_coll_opts), campos_criptografados] salvar mongo::Erro => e aumentar Erro::Criptografia de erro, "Erro ao criar a collection com campos criptografados \ #{encryption_fields}: #{e.class}: #{e.}" end end |
#descriptografar(valor) ➤ Objeto
Descriptografa um valor que já foi criptografado.
169 170 171 |
# File 'build/ruby-driver-v2.19/lib/mongo/client_encryption.rb', linha 169 def Descriptografar(valor) @encrypter.Descriptografar(valor) end |
#delete_key(ID) ➤ Operação::Result
Remove a chave com o ID fornecido da coleção de cofre de chave.
190 191 192 |
# File 'build/ruby-driver-v2.19/lib/mongo/client_encryption.rb', linha 190 def delete_key(id) @encrypter.delete_key(id) end |
#encrypt(value, options = {}) ➤ BSON::Binary
As opções :key_id e :key_alt_name são mutuamente exclusivas. Apenas um é necessário para executar a criptografia explícita.
Criptografa um valor usando a chave de encriptação e o algoritmo especificados.
se o algoritmo de criptografia estiver definido como "Indexado". O tipo de query deve ser definido
only if encryption algorithm is set to "Indexed". The only allowed
value is "equality".
119 120 121 |
# File 'build/ruby-driver-v2.19/lib/mongo/client_encryption.rb', linha 119 def criptografar(valor, ={}) @encrypter.criptografar(valor, ) end |
#encrypt_expression(expression, options = {}) ➤ BSON::Binary
As opções :key_id e :key_alt_name são mutuamente exclusivas. Apenas um é necessário para executar a criptografia explícita.
Criptografa uma expressão de correspondência ou expressão de agregação para consultar um índice de faixa.
Somente suportado quando queryType for "rangePreview" e algoritmo for "RangePreview". @note: o algoritmo Range é apenas experimental. Não é destinado
for public use. It is subject to breaking changes.
# @param [ Hash ] opções
159 160 161 |
# File 'build/ruby-driver-v2.19/lib/mongo/client_encryption.rb', linha 159 def encryption_expression(expressão, = {}) @encrypter.encryption_expression(expressão, ) end |
#get_key(id) ⇒ BSON::Document | nil
Encontra uma única chave com o ID fornecido.
200 201 202 |
# File 'build/ruby-driver-v2.19/lib/mongo/client_encryption.rb', linha 200 def get_key(id) @encrypter.get_key(id) end |
#get_key_by_alt_name(key_alt_name) ➤ BSON::Document | nada
Retorna uma chave na key vault collection com o key_alt_name fornecido.
210 211 212 |
# File 'build/ruby-driver-v2.19/lib/mongo/client_encryption.rb', linha 210 def get_key_by_alt_name(key_alt_name) @encrypter.get_key_by_alt_name(key_alt_name) end |
#get_keys ➤ Collection::View Também conhecido como: chaves
Retorna todas as chaves na key vault collection.
217 218 219 |
# File 'build/ruby-driver-v2.19/lib/mongo/client_encryption.rb', linha 217 def get_keys @encrypter.get_keys end |
#remove_key_alt_name(ID, key_alt_name) ➤ BSON::Document | nada
Remove um key_alt_name de uma chave na key vault collection com o ID fornecido.
229 230 231 |
# File 'build/ruby-driver-v2.19/lib/mongo/client_encryption.rb', linha 229 def remove_key_alt_name(id, key_alt_name) @encrypter.remove_key_alt_name(id, key_alt_name) end |
#rewrap_many_data_key(filter, opts = {}) ➤ Crypt::RewrapManyDataKeyResult
Descriptografa várias chaves de dados e (re)criptografa com uma nova master_key,
or with their current master_key if a new one is not given.
244 245 246 |
# File 'build/ruby-driver-v2.19/lib/mongo/client_encryption.rb', linha 244 def rewrap_many_data_key(filtro, filtro, opciona = {}) @encrypter.rewrap_many_data_key(filtro, filtro, opciona) end |