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. Evita usar esta clase si es posible, ya que puede ser eliminada o modificada en el futuro.

Esta clase recupera credenciales de GCP utilizando el host de metadatos de Google Compute Engine. Esto debe utilizarse cuando el controlador se utilice en la instancia de Google Compute Engine.

Resumen de constantes colapsar

METADATA_HOST_ENV =

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.

'GCE_METADATA_HOST'
DEFAULT_HOST =

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.

'metadata.google.internal'

Resumen del método de clase colapsar

Detalles del método de clase

.fetch_access_token(timeout_holder = nil) ⇒ String

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.

Obtén un token de acceso de GCP.

Parámetros:

  • timeout_holder (CsotTimeoutHolder | nil) (valor por defecto: nil)

    CSOT timeout.

Devuelve:

  • (string)

    GCP access token.

Aumenta:



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

def sí mismo.fetch_access_token(timeout_holder = nulo)
  host = ENV.obtener(METADATA_HOST_ENV) { DEFAULT_HOST }
  uri = URI("http://#{host}/computeMetadata/v1/instance/service-accounts/default/token")
  req = Net::HTTP::Obtener.Nuevo(uri)
  req['Metadata-Flavor'] = 'Google'
  resp = fetch_response(uri, req, timeout_holder)
  si resp.Código != '200'
    propagar KMS::CredentialsNotFound,
          "El host de metadatos de GCE respondió con el código #{resp.code}"
  end
  parsed_resp = JSON.parse(resp.cuerpo)
  parsed_resp.obtener('access_token')
rescate JSON::ParserError, KeyError => e
  propagar KMS::CredentialsNotFound,
        "La respuesta de metadatos de GCE no es válida: '#{resp.body}'; #{e.class}: #{e.message}"
rescate ::Tiempo de espera::Error, IOError, SystemCallError, SocketError => e
  propagar KMS::CredentialsNotFound,
        "No se pudo recibir la respuesta de metadatos de GCP; #{e.class}: #{e.message}"
end