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.
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.
"Las opciones del proveedor de GCP KMS deben tener 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 ⇒ Cadena
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 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.
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[:access_token] @access_token = opta[:access_token] else @email = validate_param(correo electrónico, opta, FORMAT_HINT) @clave_privada = begin private_key_opt = validate_param(:private_key, opta, FORMAT_HINT) si BSON::Entorno.jruby? # Realmente no podemos validar la clave privada en JRuby, por lo 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 RSAE # 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 tener formato DER codificado en base64 o formato PEM." ) end end @endpoint = validate_param( punto final, opta, FORMAT_HINT, obligatorio: false ) end end |
Detalles de los atributos de instancia
#access_token ⇒ String | 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.
40 41 42 |
# Archivo 'lib/mongo/crypt/kms/gcp/credentials.rb', línea 40 def token de acceso @access_token end |
#email ⇒ string (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.
31 32 33 |
# Archivo 'lib/mongo/crypt/kms/gcp/credentials.rb', línea 31 def correo electrónico @email end |
#punto final ⇒ Cadena | 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.
37 38 39 |
# Archivo 'lib/mongo/crypt/kms/gcp/credentials.rb', línea 37 def endpoint @endpoint end |
#private_key ⇒ String (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 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_document ⇒ BSON::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 credencial a un documento BSON 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 to_document 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, privateKey: BSON::Binario.Nuevo(private_key, :generic), }).tocar hacer |BSON| a menos que endpoint.nil? BSON.update({ punto final: endpoint }) end end end end |