Class: Mongo::ClientEncryption
- Hereda:
-
Objeto
- Objeto
- Mongo::ClientEncryption
- Definido en:
- lib/mongo/client_encryption.rb
Overview
ClientEncryption encapsula operaciones explícitas en una Colección de Bóvedas de Llaves que no pueden realizarse directamente en un MongoClient. Proporciona una API para encriptar y desencriptar valores explícitamente y para crear claves de datos.
Resumen del método de instancia colapsar
-
#add_key_alt_name(id, key_alt_name) ⇒ BSON::Document | nil
Agrega un key_alt_name para la clave en la Colección de Bóvedas de Llaves con el ID proporcionado.
-
#crear_clave_datos(kms_provider, options = {}) ⇒ BSON::Binary
Genera una clave de datos utilizada para el cifrado/descifrado y almacena esa clave en la colección KMS.
-
#create_encrypted_collection(base de datos, coll_name, coll_opts, kms_provider, master_key) ⇒ arreglo<operación::Result, Hash>
Crea una colección con campos cifrados.
-
#descifrar(valor) ⇒ Objeto
Descifra un valor que ya ha sido cifrado.
-
#delete_key(id) ⇒ Operation::Result
Remueve la clave con la ID indicada de la Colección de Bóvedas de Llaves.
-
#encriptar(valor, opciones = {}) ⇒ BSON::Binary
Cifra un valor utilizando la clave de cifrado y el algoritmo especificados.
-
#encrypt_expresión(expresión, options = {}) ⇒ BSON::Binary
Encripta una expresión de coincidencia o una expresión de agregación para consultar un índice de rango.
-
#get_key(id) ⇒ BSON::Document | nil
Encuentra una sola clave con el ID proporcionado.
-
#get_key_by_alt_name(key_alt_name) ⇒ BSON::Document | nil
Devuelve una clave en la Colección de Bóvedas de Llaves con el key_alt_name (nombre alternativo de clave) proporcionado.
-
#get_keys ⇒ Collection::View (también: #keys)
Devuelve todas las Colección de Bóvedas de Llaves.
-
#initialize(key_vault_client, options = {}) ⇒ ClientEncryption
constructor
Crea un nuevo objeto ClientEncryption con las opciones proporcionadas.
-
#remove_key_alt_name(id, key_alt_name) ⇒ BSON::Document | nil
Remueve un key_alt_name de una clave en la Colección de Bóvedas de Llaves con el ID especificado.
-
#rewrap_many_data_key(filtro, opts = {}) ⇒ Crypt::RewrapManyDataKeyResult
Descifra múltiples claves de datos y las vuelve a cifrar con una nueva clave maestra, o con su clave maestra actual si no se proporciona una nueva.
Detalles del constructor
#initialize(key_vault_client, options = {}) ⇒ ClientEncryption
Crea un nuevo objeto ClientEncryption con las opciones proporcionadas.
49 50 51 52 53 54 55 56 |
# Archivo 'lib/mongo/client_encryption.rb', línea 49 def inicializar(key_vault_client, = {}) @encryptador = Cripta::EncriptadorExplicito.Nuevo( key_vault_client, [:key_vault_namespace], Cripta::KMS::credenciales.Nuevo([:proveedores_de_kms]), Cripta::KMS::validación.([:kms_tls_opciones]) ) end |
Detalles del método de instancia
#add_key_alt_name(id, key_alt_name) ⇒ BSON::Document | nil
Agrega un key_alt_name para la clave en la Colección de Bóvedas de Llaves con el ID proporcionado.
183 184 185 |
# Archivo 'lib/mongo/client_encryption.rb', línea 183 def add_key_alt_name(ID, key_alt_name) @encryptador.add_key_alt_name(ID, key_alt_name) end |
#create_data_key(kms_provider, opciones = {}) ⇒ BSON::Binary
Genera una clave de datos utilizada para el cifrado/descifrado y almacena esa clave en la colección KMS. La clave generada está cifrado con la clave maestra KMS.
84 85 86 87 88 89 90 |
# Archivo 'lib/mongo/client_encryption.rb', línea 84 def create_data_key(kms_provider, ={}) Documento clave = Cripta::KMS::Documento de clave maestra.Nuevo(kms_provider, ) clave_nombres_alternativos = [:tecla_alt_nombres] material de clave = [:material_clave] @encryptador.create_and_insert_data_key(Documento clave, clave_nombres_alternativos, material de clave) end |
#crear_colección_encriptada(base_de_datos, nombre_coll, opciones_coll, proveedor_kms, clave_maestra) ⇒ Matriz< Operación::Resultado,Hash>
Este método no actualiza el :encrypted_fields_map en las :auto_encryption_options del cliente. Por lo tanto, para utilizar la colección creada por este método con cifrado automático, el usuario debe crear un nuevo cliente después de llamar a esta función con los :encrypted_fields devueltos.
Crea una colección con campos cifrados.
Si :encryption_fields contiene un keyId con un valor nulo, se generará automáticamente una clave de datos y se asignará al valor keyId.
270 271 272 273 274 275 276 277 278 279 280 281 |
# Archivo 'lib/mongo/client_encryption.rb', línea 270 def create_encrypted_collection(database, nombre_coll, coll_opts, kms_provider, master_key) propagar ArgumentError, 'coll_opts debe contener :encrypted_fields' a menos que coll_opts[:encrypted_fields] encrypted_fields = crear_claves_de_datos(coll_opts[:encrypted_fields], kms_provider, master_key) begin new_coll_opts = coll_opts.dup.fusionar(campos_encriptados: encrypted_fields) [database[nombre_coll].Cree(new_coll_opts), encrypted_fields] rescate Mongo::Error => e propagar Error::CryptError, "Error al crear la colección con campos cifrados \ #{campos_cifrados}: #{e.class}: #{e.}" end end |
#descifrar(valor) ⇒ Objeto
Descifra un valor que ya ha sido cifrado.
172 173 174 |
# Archivo 'lib/mongo/client_encryption.rb', línea 172 def descifrar(Valor) @encryptador.descifrar(Valor) end |
#delete_key(id) ⇒ Operación::Result
Remueve la clave con la ID indicada de la Colección de Bóvedas de Llaves.
193 194 195 |
# Archivo 'lib/mongo/client_encryption.rb', línea 193 def delete_key(ID) @encryptador.delete_key(ID) end |
#encrypt(valor, opciones = {}) ⇒ BSON::Binary
Las opciones :key_id y :key_alt_name son mutuamente excluyentes. Solo se requiere uno para realizar el cifrado explícito.
Cifra un valor utilizando la clave de cifrado y el algoritmo especificados.
Si el algoritmo de cifrado está configurado como "Indexado", se debe configurar el tipo de consulta.
only if encryption algorithm is set to "Indexed". The only allowed
value is "equality".
122 123 124 |
# Archivo 'lib/mongo/client_encryption.rb', línea 122 def cifrado(Valor, ={}) @encryptador.cifrado(Valor, ) end |
#encrypt_expression(expresión, opciones = {}) ⇒ BSON::Binary
Las opciones :key_id y :key_alt_name son mutuamente excluyentes. Solo se requiere uno para realizar el cifrado explícito.
Encripta una expresión de coincidencia o una expresión de agregación para consultar un índice de rango.
Solo está soportado cuando queryType es “rango” y el algoritmo es “rango”. @note: El algoritmo Rango es solo experimental. No está destinado
for public use. It is subject to breaking changes.
# @param [ Hash ] opciones
162 163 164 |
# Archivo 'lib/mongo/client_encryption.rb', línea 162 def encrypt_expression(expresión, = {}) @encryptador.encrypt_expression(expresión, ) end |
#get_key(id) ⇒ BSON::Document | nil
Encuentra una sola clave con el ID proporcionado.
203 204 205 |
# Archivo 'lib/mongo/client_encryption.rb', línea 203 def obtener_clave(ID) @encryptador.obtener_clave(ID) end |
#get_key_by_alt_name(key_alt_name) ⇒ BSON::Document | nil
Devuelve una clave en la Colección de Bóvedas de Llaves con el key_alt_name (nombre alternativo de clave) proporcionado.
213 214 215 |
# Archivo 'lib/mongo/client_encryption.rb', línea 213 def obtener_clave_por_nombre_alt(key_alt_name) @encryptador.obtener_clave_por_nombre_alt(key_alt_name) end |
#get_keys ⇒ colección::View También conocido como: keys
Devuelve todas las Colección de Bóvedas de Llaves.
220 221 222 |
# Archivo 'lib/mongo/client_encryption.rb', línea 220 def get_keys @encryptador.get_keys end |
#remove_key_alt_name(id, key_alt_name) ⇒ BSON::Document | nil
Remueve un key_alt_name de una clave en la Colección de Bóvedas de Llaves con el ID especificado.
232 233 234 |
# Archivo 'lib/mongo/client_encryption.rb', línea 232 def eliminar_tecla_alt_nombre(ID, key_alt_name) @encryptador.eliminar_tecla_alt_nombre(ID, key_alt_name) end |
#rewrap_many_data_key(filtro, opciones = {}) ⇒ Crypt::RewrapManyDataKeyResult
Descifra múltiples claves de datos y las (re)cifra con una nueva master_key,
or with their current master_key if a new one is not given.
247 248 249 |
# Archivo 'lib/mongo/client_encryption.rb', línea 247 def rewrap_many_data_key(filtro, opta = {}) @encryptador.rewrap_many_data_key(filtro, opta) end |