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 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.
-
#decrypt(value) ⇒ Object
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
Encripta un valor usando la clave y algoritmo de cifrado 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 varias claves de datos y las (re)encripta con una nueva master_key, o con su master_key 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.
48 49 50 51 52 53 54 55 |
# Archivo 'lib/mongo/client_encryption.rb', línea 48 def inicializar(key_vault_client, = {}) @encryptador = Cripta::EncriptadorExplicito.Nuevo( key_vault_client, [:key_vault_namespace], Cripta::KMS::credenciales.Nuevo([:kms_providers]), Cripta::KMS::validación.([kms_tls_options]) ) 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.
182 183 184 |
# Archivo 'lib/mongo/client_encryption.rb', línea 182 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.
83 84 85 86 87 88 89 |
# Archivo 'lib/mongo/client_encryption.rb', línea 83 def create_data_key(kms_provider, = {}) Documento clave = Cripta::KMS::MasterKeyDocument.Nuevo(kms_provider, ) clave_nombres_alternativos = [nombres alternativos] material de clave = [Elemento clave] @encryptador.create_and_insert_data_key(Documento clave, clave_nombres_alternativos, material de clave) end |
#create_encrypted_collection(base de datos, coll_name, coll_opts, kms_provider, master_key) ⇒ arreglo<operación::Result, 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 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 de keyId.
269 270 271 272 273 274 275 276 277 278 279 280 |
# Archivo 'lib/mongo/client_encryption.rb', línea 269 def create_encrypted_collection(database, coll_name, coll_opts, kms_provider, master_key) propagar ArgumentError, 'coll_opts debe contener :encrypted_fields' a menos que coll_opts[:encrypted_fields] encrypted_fields = create_data_keys(coll_opts[:encrypted_fields], kms_provider, master_key) begin new_coll_opts = coll_opts.dup.fusionar(campos_encriptados: encrypted_fields) [ database[coll_name].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.
171 172 173 |
# Archivo 'lib/mongo/client_encryption.rb', línea 171 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.
192 193 194 |
# Archivo 'lib/mongo/client_encryption.rb', línea 192 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.
Encripta un valor usando la clave y algoritmo de cifrado especificados.
Si el algoritmo de cifrado está configurado en "Indexado". El tipo de query solo debe configurarse si el algoritmo de cifrado está configurado en "Indexado". El único valor permitido es "igualdad".
121 122 123 |
# Archivo 'lib/mongo/client_encryption.rb', línea 121 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 se admite cuando queryType es "range" y el algoritmo es "Range". @note: El algoritmo de Rango es solo experimental. No está destinado al uso público. Está sujeto a cambios disruptivos.
@param [ Hash ] opciones
161 162 163 |
# Archivo 'lib/mongo/client_encryption.rb', línea 161 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.
202 203 204 |
# Archivo 'lib/mongo/client_encryption.rb', línea 202 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.
212 213 214 |
# Archivo 'lib/mongo/client_encryption.rb', línea 212 def get_key_by_alt_name(key_alt_name) @encryptador.get_key_by_alt_name(key_alt_name) end |
#get_keys ⇒ colección::View También conocido como: keys
Devuelve todas las Colección de Bóvedas de Llaves.
219 220 221 |
# Archivo 'lib/mongo/client_encryption.rb', línea 219 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.
231 232 233 |
# Archivo 'lib/mongo/client_encryption.rb', línea 231 def eliminar_nombre_alternativo_de_clave(ID, key_alt_name) @encryptador.eliminar_nombre_alternativo_de_clave(ID, key_alt_name) end |
#rewrap_many_data_key(filtro, opts = {}) ⇒ Crypt::RewrapManyDataKeyResult
Descifra varias claves de datos y las (re)encripta con una nueva master_key, o con su master_key actual si no se proporciona una nueva.
246 247 248 |
# Archivo 'lib/mongo/client_encryption.rb', línea 246 def rewrap_many_data_key(filtro, opciones = {}) @encryptador.rewrap_many_data_key(filtro, opciones) end |