类:Mongo::Crypt::KMS::GCP::CredentialsRetriever Private

继承:
对象
  • 对象
显示全部
定义于:
构建/ruby-driver-v2.19/lib/ mongo /crypt/ KMS / GCP /credentials_retriever.rb

Overview

此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。

此类使用 Google Compute Engine 元数据主机检索 GPC 档案。 在 Google Compute Engine 实例上使用驱动程序时,应使用此选项。

常量摘要折叠

METADATA_HOST_ENV =

此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。

'GCE_METADATA_HOST'
DEFAULT_HOST =

此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。

'metadata.google.internal'

类方法摘要折叠

类方法详细信息

fetch_access_token对象

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'build/Ruby-driver-v2.19/lib/ mongo /crypt/ KMS / GCP /credentials_retriever.rb', 第32行

def self.fetch_access_token
  主机 = ENV.获取(METADATA_HOST_ENV) { DEFAULT_HOST }
  uri = URI(" http:// #{ 托管 } /computeMetadata/v 1 / 实例/service-accounts/ 默认/token ")
  req = 网络::HTTP::获取.new(uri)
  req[' Metadata-Flavor '] = ' Google '
  resp = 网络::HTTP.开始(uri.主机名, uri.端口, use_ssl: false) do |HTTP|
    HTTP.请求(req)
  end
  if resp.代码 != '200'
    提高 KMS::CredentialsNotFound,
      " GCE 元数据主机响应代码#{ resp . code } "
  end
  parsed_resp = JSON.parse(resp.body)
  parsed_resp.获取('access_token')
救援 JSON::ParserError, KeyError => e
  提高 KMS::CredentialsNotFound,
    " GCE元数据响应无效:' #{ resp . body } '; #{ e . class } : #{ e . message } "
  救援 ::超时::错误, IOError, SystemCallError, SocketError => e
    提高 KMS::CredentialsNotFound,
          "无法接收GCP元数据响应; #{ e . class } : #{ e . message } "
end