Clase: Mongo::Crypt::KMS::GCP::Credentials Privado
- Hereda:
-
Objeto
- Objeto
- Mongo::Crypt::KMS::GCP::credenciales
- Ampliado por:
- Reenviable
- Incluye:
- validación
- Definido en:
- lib/mongo/crypt/kms/gcp/credentials.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 de gestión de claves en la nube de GCP contiene las credenciales para usar el proveedor de gestión de claves en la nube (KMS) de GCP.
Resumen de constantes colapsar
- SUGERENCIA DE FORMATO =
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.
'Las opciones de proveedor de GCP KMS deben estar en el formato: ' + "{ email: 'EMAIL', private_key: 'PRIVATE-KEY' }"
Resumen de atributos de la instancia colapsar
-
#access_token ⇒ String | nil
Solo lectura
privado
GCP access token.
-
#correo electrónico ⇒ String
Solo lectura
privado
Correo electrónico de GCP para autenticar con.
-
#endpoint ⇒ String | nil
Solo lectura
privado
Extremo de GCP KMS.
-
#private_key ⇒ String
Solo lectura
privado
Clave privada de GCP, formato DER codificado en base64.
Resumen del método de instancia colapsar
-
#initialize(opts) ⇒ Credenciales
constructor
privado
Crea un objeto de credenciales de GCP KMS a partir de un hash de parámetros.
-
#to_document ⇒ BSON::Document
privado
Convierte el objeto credencial a un documento BSON en formato libmongocrypt.
Métodos incluidos en Validaciones
#validate_param, validate_tls_options
Detalles del Constructor
#initialize(opts) ⇒ 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.
Crea un objeto de credenciales de GCP KMS a partir de un hash de parámetros.
60 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 |
# Archivo 'lib/mongo/crypt/kms/gcp/credentials.rb', línea 60 def inicializar(opciones) @opts = opciones return si ¿vacío? si opciones[:access_token] @access_token = opciones[:access_token] else @email = validate_param(correo electrónico, opciones, FORMAT_HINT) @clave_privada = begin private_key_opt = validate_param(:private_key, opciones, FORMAT_HINT) si BSON::Entorno.jruby? # Realmente no podemos validar la llave privada en JRuby, así que asumimos # está en formato DER codificado en base64. private_key_opt else # Verifique si la llave privada está en formato PEM. pkey = OpenSSL::PKey::RSA.Nuevo(private_key_opt) # PEM es, debe convertirse a 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 RSA # Verifica si la clave privada está en DER. begin OpenSSL::PKey.Lea(Base64.descodificar64(private_key_opt)) # La clave privada está bien, utilízala. private_key_opt rescate OpenSSL::PKey::PKeyError propagar ArgumentError.Nuevo( 'La opción private_key debe estar en formato DER codificado en base64 o en formato PEM.' ) end end @endpoint = validate_param( punto final, opciones, FORMAT_HINT, obligatorio: false ) end end |
Detalles de atributo de instancias
#access_token ⇒ String | nil (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.
Returns GCP access token.
39 40 41 |
# Archivo 'lib/mongo/crypt/kms/gcp/credentials.rb', línea 39 def access_token @access_token end |
#email ⇒ string (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.
Devuelve el correo electrónico de GCP para autenticarse con él.
30 31 32 |
# Archivo 'lib/mongo/crypt/kms/gcp/credentials.rb', línea 30 def correo electrónico @email end |
#endpoint ⇒ String| nil (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.
Devuelve el endpoint de GCP KMS.
36 37 38 |
# Archivo 'lib/mongo/crypt/kms/gcp/credentials.rb', línea 36 def endpoint @endpoint end |
#private_key ⇒ String (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.
Devuelve la clave privada GCP, formato DER codificado en base64.
33 34 35 |
# Archivo 'lib/mongo/crypt/kms/gcp/credentials.rb', línea 33 def private_key @clave_privada end |
Detalles del método de instancia
#to_document ⇒ BSON::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.
107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
# Archivo 'lib/mongo/crypt/kms/gcp/credentials.rb', línea 107 def to_document return BSON::Documento.Nuevo si ¿vacío? si access_token BSON::Documento.Nuevo({ accessToken: access_token }) else BSON::Documento.Nuevo({ correo electrónico: correo electrónico, privateKey: BSON::Binario.Nuevo(private_key, :generic), }).tocar hacer |BSON| BSON.update({ punto final: endpoint }) a menos que endpoint.nil? end end end |