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(client_name: nil, kms_provider_name: nil, key_alt_name: nil) ⇒ Hash

Crea una clave de cifrado de datos para el proveedor kms dado usando las auto_encryption_options de la configuración del cliente.

Parámetros:

  • kms_provider_name (String | nil) (valor por defecto: nil)

    El nombre del proveedor de KMS a utilizar. Si no se proporciona, se usará el primer proveedor en las auto_encryption_options del cliente.

  • client_name (String | nil) (valor por defecto: nil)

    El nombre del cliente del que se tomarán las opciones de auto_encryption_options. Si no se proporciona, se utilizará el cliente por defecto.

  • key_alt_name (String | nil) (valor por defecto: nil)

    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.



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

def create_data_key(client_name: nulo, kms_provider_name: nulo, key_alt_name: nulo)
  kms_provider_name, kms_providers, key_vault_namespace = prepare_arguments(
    kms_provider_name,
    client_name
  )
  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,
    kms_providers: kms_providers
  )
  client_encryption_opts = {}.tocar hacer |opciones|
    opciones[nombres alternativos] = [ key_alt_name ] si key_alt_name
  end
  data_key_id = client_encryption.create_data_key(kms_provider_name, client_encryption_opts)
  {
    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