Clase: Mongo::Crypt::KMS::GCP::CredentialsRetriever Privado

Hereda:
Objeto
  • Objeto
Mostrar todo
Definido en:
lib/mongo/crypt/kms/gcp/credentials_retriever.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.

Esta clase recupera las credenciales de GPC mediante el host de metadatos de Google Compute Engine. Debe usarse cuando el controlador se utiliza en la instancia de Google Compute Engine.

Colapso delresumen constante

METADATA_HOST_ENV =

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.

'GCE_METADATA_HOST'
HOST_PREDETERMINADO =

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.

'metadata.google.internal'

Colapso delresumen del método de clase

Detalles del método de clase

.fetch_access_token(timeout_holder = nulo) ⇒ Cadena

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

Obtener el token de acceso de GCP.

Parámetros:

Devuelve:

  • (Cadena) -

    GCP access token.

Aumentos:



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# Archivo 'lib/mongo/crypt/kms/gcp/credentials_retriever.rb', línea 40

def yo.obtener_token_de_acceso(timeout_holder = nulo)
  host = ENV.Fetch(METADATA_HOST_ENV) { HOST PREDETERMINADO }
  uri = URI("http://#{host}/computeMetadata/v1/instance/service-accounts/default/token")
  req = Net::HTTP::Obtener.Nuevo(uri)
  req['Metadata-Flavor'] = 'Google'
  resp = obtener_respuesta(uri, req, timeout_holder)
  Si resp.Código != '200'
    propagar KMS::Credenciales no encontradas,
      "Elhost de metadatos de GCE respondió con el código #{resp.code }"
  end
  parsed_resp = JSON.parse(resp.cuerpo)
  parsed_resp.Fetch('access_token')
rescate JSON::ParserError, Error de clave => e
  propagar KMS::Credenciales no encontradas,
    "Larespuesta de metadatos de GCE no es válida: '#{resp.body}'; #{e.class}: #{e.message}"
  rescate ::Se acabó el tiempo::Error, IOError, SystemCallError, Error de socket => e
    propagar KMS::Credenciales no encontradas,
          "Nose pudo recibir la respuesta de metadatos de GCP; #{e.class}: #{e.message}"
end