Class: Mongo::ClientEncryption
- Herda:
-
Objeto
- Objeto
- Mongo::ClientEncryption
- Definido em:
- 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.
48 49 50 51 52 53 54 55 |
# Arquivo 'lib/mongo/client_encryption.rb', linha 48 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.
182 183 184 |
# Arquivo 'lib/mongo/client_encryption.rb', linha 182 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.
83 84 85 86 87 88 89 |
# Arquivo 'lib/mongo/client_encryption.rb', linha 83 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 usar a coleção criada por esse método com criptografia automática, o usuário deve criar um novo cliente depois de chamar essa 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.
269 270 271 272 273 274 275 276 277 278 279 280 |
# Arquivo 'lib/mongo/client_encryption.rb', linha 269 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.
171 172 173 |
# Arquivo 'lib/mongo/client_encryption.rb', linha 171 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.
192 193 194 |
# Arquivo 'lib/mongo/client_encryption.rb', linha 192 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 somente se o algoritmo de criptografia estiver definido como "Indexado". O único valor permitido é "igualdade".
121 122 123 |
# Arquivo 'lib/mongo/client_encryption.rb', linha 121 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 "faixa" e algoritmo for "faixa". @note: o algoritmo faixa é apenas experimental. Não se destina ao uso público. Ele está sujeito a alterações interruptivas.
@param [ Hash ] opções
161 162 163 |
# Arquivo 'lib/mongo/client_encryption.rb', linha 161 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.
202 203 204 |
# Arquivo 'lib/mongo/client_encryption.rb', linha 202 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.
212 213 214 |
# Arquivo 'lib/mongo/client_encryption.rb', linha 212 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.
219 220 221 |
# Arquivo 'lib/mongo/client_encryption.rb', linha 219 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.
231 232 233 |
# Arquivo 'lib/mongo/client_encryption.rb', linha 231 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-as com uma nova master_key ou com sua master_key atual se uma nova não for fornecida.
246 247 248 |
# Arquivo 'lib/mongo/client_encryption.rb', linha 246 def rewrap_many_data_key(filtro, filtro, opciona = {}) @encrypter.rewrap_many_data_key(filtro, filtro, opciona) end |