Módulo: Mongoid::Tareas::Cifrado

Ampliado por:
Encriptación
Incluido en:
Encriptación
Definido en:
lib/mongoid/tasks/cifrado.rb

Overview

Este módulo contiene métodos auxiliares para el cifrado de datos.

Colapso del resumen del método de instancia

Detalles del método de instancia

#create_data_key(nombre_del_cliente: nil, nombre_del_proveedor_kms: ​​nil, nombre_alt_de_la_clave: nil) ⇒ Hash

Cree una clave de cifrado de datos para el proveedor de kms indicado utilizando auto_encryption_options de la configuración del cliente.

Parámetros:

  • nombre_del_proveedor_kms (String | nil) (predeterminado: nulo)

    El nombre del proveedor de KMS que se utilizará. Si no se proporciona, se utilizará el primer proveedor indicado en las opciones de cifrado automático del cliente.

  • nombre_del_cliente (String | nil) (predeterminado: nulo)

    El nombre del cliente del que se obtendrán las opciones de cifrado automático. Si no se proporciona, se usará el cliente predeterminado.

  • key_alt_name (String | nil) (predeterminado: nulo)

    El nombre alternativo de la clave.

Devuelve:

  • (Hash)

    Un hash que contiene la clave id como :key_id, el nombre del proveedor de kms como :kms_provider y el key vault namespace como :key_vault_namespace.



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# Archivo 'lib/mongoid/tasks/encryption.rb', línea 24

def crear_clave_de_datos(nombre_del_cliente: nulo, nombre_del_proveedor_kms: nulo, key_alt_name: nulo)
  nombre_del_proveedor_kms, proveedores de kms, key_vault_namespace = prepare_arguments(
    nombre_del_proveedor_kms,
    nombre_del_cliente
  )
  cliente de bóveda de claves = Mongoid::Clientes.predeterminado.con(database: key_vault_namespace.división('.').primera)
  cifrado de cliente = Mongo::ClientEncryption.Nuevo(
    cliente de bóveda de claves,
    key_vault_namespace: key_vault_namespace,
    proveedores de kms: proveedores de kms
  )
  opciones de cifrado del cliente = {}.grifo hacer |opta|
    opta[:tecla_alt_nombres] = [key_alt_name] Si key_alt_name
  end
  data_key_id = cifrado de cliente.crear_clave_de_datos(nombre_del_proveedor_kms, opciones de cifrado del cliente)
  {
    id_clave: Base64.codificación estricta64(data_key_id.datos),
    proveedor de kms: nombre_del_proveedor_kms,
    key_vault_namespace: key_vault_namespace,
    key_alt_name: key_alt_name
  }.compact
end