Classe: Mongo::Crypt::KMS::GCP::CredentialsRetriever Private

Herda:
Objeto
  • Objeto
mostrar tudo
Definido em:
lib/mongo/crypt/KMS/GCP/credentials_retriever.rb

Visão geral

Esta classe faz parte de uma API privada. Evite usar essa classe, se possível, pois ela pode ser removida ou alterada no futuro.

Esta classe recupera credenciais GPC usando o host de metadados do Google Compute Engine. Deve ser usado quando o driver for usado na instância do Google Compute Engine.

Colapsode resumo constante

METADATA_HOST_ENV =

Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.

'GCE_METADATA_HOST'
DEFAULT_HOST =

Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.

'metadata.google.internal'

Recolhimento do Resumo do método de classe

Detalhes do método de classe

.fetch_access_token(timeout_holder = nil) ➤ string

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Buscar token de acesso GCP.

Parâmetros:

Retorna:

  • (string)

    Token de acesso GCP.

Aumenta:



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/mongo/crypt/KMS/GCP/credentials_retriever.rb', linha 40

def auto.fetch_access_token(timeout_holder = nada)
  Anfitrião = ENV.buscar(METADATA_HOST_ENV) { DEFAULT_HOST }
  uri = URI("http://#{host}/computeMetadata/v1/instance/service-accounts/default/token")
  req = Líquido::HTTP::obter.Novo(uri)
  req['Metadata-Flabor'] = 'Google'
  res = fetch_response(uri, req, timeout_holder)
  se res.código != '200'
    aumentar KMS::CredentialsNotFound,
      "O host de metadados GCE reagiu com o código #{res.code}"
  end
  parsed_resp = JSON.parse(res.corpo, corpo)
  parsed_resp.buscar('access_token')
salvar JSON::AnalisarError, KeyError => e
  aumentar KMS::CredentialsNotFound,
    "A resposta de metadados GCE é inválida: '#{res.body}'; #{e.classe}: #{e.message}"
  salvar ::Tempo-limite::Erro, IOError, SystemCallError, Erro de soquete => e
    aumentar KMS::CredentialsNotFound,
          "Não foi possível receber a resposta de metadados do GCP; #{e.classe}: #{e.message}"
end