clase: Mongo::Crypt::KMS::credenciales Privado

Hereda:
Objeto
  • Objeto
Mostrar todo
Definido en:
lib/mongo/crypt/kms/credenciales.rb

Overview

Esta clase forma parte de una API privada. Evita usar esta clase si es posible, ya que puede ser eliminada o modificada en el futuro.

El objeto Credenciales KMS contiene las credenciales para utilizar proveedores KMS.

Resumen de constantes colapsar

ON_DEMAND_PROVIDERS =

Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.

Tipos de proveedor de KMS que admiten la recuperación de credenciales on-demand.

%w[aws gcp Azure].freeze

Resumen de atributos de la instancia colapsar

Resumen del método de instancia colapsar

Detalles del Constructor

#inicializar(kms_providers) ⇒ Credenciales

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Nota:

Puede haber más de un proveedor de KMS especificado.

Crea un objeto de credenciales KMS a partir de una encriptada de parámetros.

Parámetros:

  • kms_providers (encriptada)

    Una encriptada que contiene credenciales para proveedores de KMS. Las claves pueden ser tipos de proveedor (:aws, :local, etc.) o identificadores de proveedor con nombre ("aws:name1", "local:name2", etc.). Los valores son encriptada de credenciales para el tipo de proveedor correspondiente.

Aumenta:

  • (ArgumentError)

    Si faltan las opciones requeridas o están formateadas incorrectamente.



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# Archivo 'lib/mongo/crypt/kms/credentials.rb', línea 40

def inicializar(kms_providers)
  propagar ArgumentError.Nuevo('Las opciones de los proveedores de KMS no deben ser nulas') si kms_providers.nil?

  @credentials_map = {}

  kms_providers.cada hacer |identifier, opciones|
    identifier_str = identifier.to_s
    provider_type = KMS.provider_base_type(identifier_str)

    credenciales = caso provider_type
            cuando 'aws' entonces AWS::credenciales.Nuevo(opciones)
            cuando 'azure' entonces Azure::credenciales.Nuevo(opciones)
            cuando 'gcp' entonces GCP::credenciales.Nuevo(opciones)
            cuando 'kmip' entonces KMIP::credenciales.Nuevo(opciones)
            cuando 'local' entonces Local::credenciales.Nuevo(opciones)
            else
              propagar ArgumentError.Nuevo(
                'Las opciones del proveedor de KMS deben tener una de las siguientes claves: ' \
                ':aws, :azure, :gcp, :kmip, :local'
              )
            end

    @credentials_map[identifier_str] = creds
  end

  return unless @credentials_map.empty?

  raise ArgumentError.new(
    'Las opciones del proveedor de KMS deben tener una de las siguientes claves: ' \
    ':aws, :azure, :gcp, :kmip, :local'
  )
end

Detalles de atributo de instancias

#credentials_mapObjeto (solo lectura)

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.



27
28
29
# Archivo 'lib/mongo/crypt/kms/credentials.rb', línea 27

def credentials_map
  @credentials_map
end

Detalles del método de instancia

#any_on_demand?Boolean

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve verdadero si cualquier proveedor configurado admite la recuperación de credenciales on-demand y se ha configurado con credenciales vacías.

Devuelve:

  • (booleano)


102
103
104
105
106
# Archivo 'lib/mongo/crypt/kms/credentials.rb', línea 102

def any_on_demand?
  @credentials_map.any? hacer |identifier, credenciales|
    ON_DEMAND_PROVIDERS.incluir?(KMS.provider_base_type(identifier)) && credenciales.¿vacío?
  end
end

#awsCredenciales::AWS | nil

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve las credenciales de AWS KMS (solo proveedor sin nombre).

Devuelve:

  • (Credentials::AWS | nil)

    Credenciales de Amazon Web Services KMS (solo proveedor sin nombre).



74
75
76
# Archivo 'lib/mongo/crypt/kms/credentials.rb', línea 74

def aws
  @credentials_map['aws']
end

#azureCredenciales::Azure | nulo

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve las credenciales de Azure KMS (solo proveedor sin nombre).

Devuelve:

  • (Credentials::Azure | nil)

    Credenciales de Azure KMS (solo proveedor sin nombre).



79
80
81
# Archivo 'lib/mongo/crypt/kms/credentials.rb', línea 79

def Azure
  @credentials_map['azure']
end

#gcpCredenciales::GCP | nil

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve las credenciales de GCP KMS (solo proveedor sin nombre).

Devuelve:

  • (credenciales::GCP | nil)

    Credenciales de GCP KMS (solo proveedor sin nombre).



84
85
86
# Archivo 'lib/mongo/crypt/kms/credentials.rb', línea 84

def gcp
  @credentials_map['gcp']
end

#kmipcredenciales::KMIP | nil

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve credenciales KMIP KMS (solo proveedor sin nombre).

Devuelve:

  • (Credentials::KMIP | nil)

    Credenciales de KMIP KMS (solo proveedor sin nombre).



89
90
91
# Archivo 'lib/mongo/crypt/kms/credentials.rb', línea 89

def kmip
  @credentials_map['kmip']
end

#localCredenciales::Local | nil

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve las credenciales del KMS local (solo proveedor sin nombre).

Devuelve:

  • (credenciales::Local | nil)

    Credenciales de KMS locales (solo proveedor sin nombre).



94
95
96
# Archivo 'lib/mongo/crypt/kms/credentials.rb', línea 94

def local
  @credentials_map['local']
end

#to_documentBSON::Document

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Convierte el objeto credencial a un documento BSON en formato libmongocrypt.

Devuelve:

  • (BSON::Document)

    Credenciales como documento BSON.



111
112
113
114
115
116
117
# Archivo 'lib/mongo/crypt/kms/credentials.rb', línea 111

def to_document
  BSON::Documento.Nuevo.tocar hacer |BSON|
    @credentials_map.cada hacer |identifier, credenciales|
      BSON[identifier] = credenciales.to_document
    end
  end
end