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 almacén de claves que no se pueden realizar directamente en un MongoClient. Proporciona una API para cifrar y descifrar valores explícitamente, así como para crear claves de datos.
Colapso del resumen 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 almacén de claves con la identificación dada.
-
#crear_clave_de_datos(proveedor_kms, opciones = {}) ⇒ BSON::Binario
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>
Crear colección con campos cifrados.
-
#descifrar(valor) ⇒ Objeto
Descifra un valor que ya ha sido cifrado.
-
#delete_key(id) ⇒ Operación::Resultado
Elimina la clave con la identificación dada de la colección de bóveda de claves.
-
#cifrar(valor, opciones = {}) ⇒ BSON::Binary
Cifra un valor utilizando la clave de cifrado y el algoritmo especificados.
-
#encrypt_expression(expresión, opciones = {}) ⇒ 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 la identificación dada.
-
#get_key_by_alt_name(key_alt_name) ⇒ BSON::Document | nil
Devuelve una clave en la colección de almacén de claves con el key_alt_name indicado.
-
#get_keys ⇒ Collection::View (también: #keys)
Devuelve todas las claves de la colección de almacén de claves.
-
#initialize(key_vault_client, options = {}) ⇒ ClientEncryption
constructor
Cree un nuevo objeto ClientEncryption con las opciones proporcionadas.
-
#remove_key_alt_name(id, key_alt_name) ⇒ BSON::Document | nil
Elimina un key_alt_name de una clave en la colección de almacén de claves con la identificación dada.
-
#rewrap_many_data_key(filtro, opciones = {}) ⇒ 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
Cree 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(cliente de bóveda de claves, = {}) @encrypter = Cripta::Cifrador explícito.Nuevo( cliente de bóveda de claves, [:key_vault_namespace], Cripta::KMS::Credenciales.Nuevo([:proveedores_de_kms]), Cripta::KMS::Validaciones.([: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 almacén de claves con la identificación dada.
183 184 185 |
# Archivo 'lib/mongo/client_encryption.rb', línea 183 def add_key_alt_name(ID., key_alt_name) @encrypter.add_key_alt_name(ID., key_alt_name) end |
#crear_clave_de_datos(proveedor_kms, opciones = {}) ⇒ BSON::Binario
Genera una clave de datos para el cifrado/descifrado y la almacena en la colección KMS. La clave generada se cifra con la clave maestra de KMS.
84 85 86 87 88 89 90 |
# Archivo 'lib/mongo/client_encryption.rb', línea 84 def crear_clave_de_datos(proveedor de kms, ={}) documento_clave = Cripta::KMS::Documento de clave maestra.Nuevo(proveedor de kms, ) nombres de teclas alternativas = [:tecla_alt_nombres] material de clave = [:material_clave] @encrypter.crear_e_insertar_clave_de_datos(documento_clave, nombres de teclas alternativas, 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 usar 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 el :encrypted_fields devuelto.
Crear 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 crear_colección_encriptada(database, nombre_coll, opciones de colección, proveedor de kms, llave maestra) propagar ArgumentError, 'coll_opts debe contener: campos cifrados ' a no ser que opciones de colección[:campos_encriptados] campos cifrados = crear_claves_de_datos(opciones de colección[:campos_encriptados], proveedor de kms, llave maestra) begin nuevas opciones de recopilación = opciones de colección.dup.unir(campos cifrados: campos cifrados) [database[nombre_coll].Cree(nuevas opciones de recopilación), campos cifrados] rescate Mongo::Error => e propagar Error::CryptError, "Erroral crear una colección con campos cifrados \ #{encrypted_fields }: #{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 desencriptar(valor) @encrypter.desencriptar(valor) end |
#delete_key(id) ⇒ Operación::Resultado
Elimina la clave con la identificación dada de la colección de bóveda de claves.
193 194 195 |
# Archivo 'lib/mongo/client_encryption.rb', línea 193 def tecla_de_eliminar(ID.) @encrypter.tecla_de_eliminar(ID.) end |
#cifrar(valor, opciones = {}) ⇒ BSON::Binary
Las opciones :key_id y :key_alt_name son mutuamente excluyentes. Solo se requiere una 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 cifrar(valor, ={}) @encrypter.cifrar(valor, ) end |
#encrypt_expression(expresión, opciones = {}) ⇒ BSON::Binary
Las opciones :key_id y :key_alt_name son mutuamente excluyentes. Solo se requiere una 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 se admite cuando el tipo de consulta es "rango" y el algoritmo es "Rango". @nota: El algoritmo de rango es solo experimental. No está diseñado para...
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 expresión_cifrada(expresión, = {}) @encrypter.expresión_cifrada(expresión, ) end |
#get_key(id) ⇒ BSON::Document | nil
Encuentra una sola clave con la identificación dada.
203 204 205 |
# Archivo 'lib/mongo/client_encryption.rb', línea 203 def obtener_clave(ID.) @encrypter.obtener_clave(ID.) end |
#get_key_by_alt_name(key_alt_name) ⇒ BSON::Document | nil
Devuelve una clave en la colección de almacén de claves con el key_alt_name indicado.
213 214 215 |
# Archivo 'lib/mongo/client_encryption.rb', línea 213 def obtener_clave_por_nombre_alt(key_alt_name) @encrypter.obtener_clave_por_nombre_alt(key_alt_name) end |
#get_keys ⇒ Collection::View También conocido como: keys
Devuelve todas las claves de la colección de almacén de claves.
220 221 222 |
# Archivo 'lib/mongo/client_encryption.rb', línea 220 def get_keys @encrypter.get_keys end |
#remove_key_alt_name(id, key_alt_name) ⇒ BSON::Document | nil
Elimina un key_alt_name de una clave en la colección de almacén de claves con la identificación dada.
232 233 234 |
# Archivo 'lib/mongo/client_encryption.rb', línea 232 def eliminar_tecla_alt_nombre(ID., key_alt_name) @encrypter.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 vuelve a cifrar con una nueva clave maestra.
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 = {}) @encrypter.rewrap_many_data_key(filtro, opta) end |