Clase: Mongo::Crypt::KMS::GCP::Credentials Privada

Hereda:
Objeto
  • Objeto
Mostrar todo
Ampliado por:
Reenviable
Incluye:
Validaciones
Definido en:
lib/mongo/crypt/kms/gcp/credenciales.rb

Overview

Esta clase forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

El objeto Credenciales de administración de claves de GCP Cloud contiene credenciales para usar el proveedor KMS de GCP.

Colapso delresumen constante

SUGERENCIA_DE_FORMATO =

Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

"Lasopciones del proveedor GCP KMS deben tener elformato:" +
"{ email: 'EMAIL', private_key: 'PRIVATE-KEY' }"

Colapso delresumen de atributos de instancia

Colapso del resumen del método de instancia

Métodos incluidos de Validaciones

#validate_param, validate_tls_options

Detalles del constructor

#inicializar(opciones) ⇒ Credenciales

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Crea un objeto de credenciales de GCP KMS a partir de un hash de parámetros.

Parámetros:

  • opta (Hash)

    Un hash que contiene las credenciales para el proveedor de GCP KMS

Opciones Hash (opts):

  • :correo electrónico (Cadena)

    Correo electrónico de GCP.

  • :private_key (Cadena)

    Clave privada de GCP. Este método acepta claves privadas en formato DER codificado en base64 o en formato PEM.

  • :punto final (String | nil)

    Punto final de GCP, opcional.

  • :token de acceso (String | nil)

    Token de acceso de GCP (opcional). Si esta opción no es nula, se ignoran las demás.

Aumentos:

  • (ArgumentError)

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



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# Archivo 'lib/mongo/crypt/kms/gcp/credentials.rb', línea 61

def inicializar(opta)
  @opts = opta
  return Si ¿vacío?

  Si opta[:token de acceso]
    @access_token = opta[:token de acceso]
  else
    @correo electrónico = validate_param(:correo electrónico, opta, SUGERENCIA DE FORMATO)
    @clave_privada = begin
      opción de clave privada = validate_param(:private_key, opta, SUGERENCIA DE FORMATO)
      Si BSON::Entorno.jruby?
        # Realmente no podemos validar la clave privada en JRuby, por lo que asumimos
        # está en formato DER codificado en base64.
        opción de clave privada
      else
        # Verifique si la clave privada está en formato PEM.
        pkey = OpenSSL::PKey::RSA.Nuevo(opción de clave privada)
        # Es PEM y debe convertirse en DER codificado en base64.
        der = Si pkey.respond_to?(:private_to_der)
          pkey.private_to_der
        else
          pkey.to_der
        end
        Base64.encode64(der)
      end
    rescate OpenSSL::PKey::Error RSAE
      # Verifique si la clave privada está en DER.
      begin
        OpenSSL::PKey.Lea(Base64.decodificar64(opción de clave privada))
        # La clave privada está bien, úsala.
        opción de clave privada
      rescate OpenSSL::PKey::PKeyError
        propagar ArgumentError.Nuevo(
          "Laopción private_key debe estar64 en formato DER codificado en base o en formato PEM."
        )
      end
    end

    @punto final = validate_param(
      :punto final, opta, SUGERENCIA DE FORMATO, requerido: false
    )
  end
end

Detalles de los atributos de instancia

#access_tokenString | nil (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Returns GCP access token.

Devuelve:

  • ( Cadena| nulo ) —

    GCP access token.



40
41
42
# Archivo 'lib/mongo/crypt/kms/gcp/credentials.rb', línea 40

def token de acceso
  @access_token
end

#correo electrónicoCadena (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve el correo electrónico de GCP para autenticarse.

Devuelve:

  • (Cadena) -

    Correo electrónico de GCP para autenticarse.



31
32
33
# Archivo 'lib/mongo/crypt/kms/gcp/credentials.rb', línea 31

def correo electrónico
  @correo electrónico
end

#punto finalCadena | nulo (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve el punto final de GCP KMS.

Devuelve:

  • ( Cadena| nulo ) —

    Punto final de GCP KMS.



37
38
39
# Archivo 'lib/mongo/crypt/kms/gcp/credentials.rb', línea 37

def punto final
  @punto final
end

#clave_privadaCadena (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve la clave privada de GCP, en formato DER codificado en base64.

Devuelve:

  • (Cadena) -

    Clave privada de GCP, formato DER codificado en base64.



34
35
36
# Archivo 'lib/mongo/crypt/kms/gcp/credentials.rb', línea 34

def private_key
  @clave_privada
end

Detalles del método de instancia

#to_documentBSON::Document

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Convierte el objeto de credenciales en un documento BSON en formato libmongocrypt.

Devuelve:

  • (BSON::Documento)

    Credenciales de Azure KMS en formato libmongocrypt.



108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# Archivo 'lib/mongo/crypt/kms/gcp/credentials.rb', línea 108

def al_documento
  return BSON::Documento.Nuevo Si ¿vacío?
  Si token de acceso
    BSON::Documento.Nuevo({ accessToken: token de acceso })
  else
    BSON::Documento.Nuevo({
      Correo electrónico: correo electrónico,
      clave privada: BSON::Binario.Nuevo(private_key, :generic),
    }).grifo hacer |BSON|
      a no ser que punto final.nil?
        BSON.update({ punto final: punto final })
      end
    end
  end
end