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 asistente para el cifrado de datos.

Resumen del método de instancia colapsar

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 llave de cifrado de datos para el proveedor KMS dado utilizando las opciones de auto_encryption_options de la configuración del cliente.

Parámetros:

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

    El nombre del proveedor de KMS a utilizar. Si no se contempla, se empleará el primer proveedor en las auto_encryption_options 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:

  • (encriptada)

    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 create_data_key(client_name: nulo, nombre_del_proveedor_kms: nulo, key_alt_name: nulo)
  kms_provider_name, proveedores de kms, key_vault_namespace = prepare_arguments(
    kms_provider_name,
    nombre_del_cliente
  )
  key_vault_client = Mongoid::Clientes.predeterminado.con(database: key_vault_namespace.división('.').primero)
  client_encryption = Mongo::ClientEncryption.Nuevo(
    key_vault_client,
    key_vault_namespace: key_vault_namespace,
    proveedores de kms: proveedores de kms
  )
  opciones de cifrado del cliente = {}.tocar hacer |opta|
    opta[:tecla_alt_nombres] = [key_alt_name] si key_alt_name
  end
  data_key_id = client_encryption.create_data_key(kms_provider_name, opciones de cifrado del cliente)
  {
    key_id: Base64.strict_encode64(data_key_id.Datos),
    kms_provider: kms_provider_name,
    key_vault_namespace: key_vault_namespace,
    key_alt_name: key_alt_name
  }.compact
end