クラス: Mongo::Crypt::KMS::GCP::CredentialsRetried Private

継承:
オブジェクト
  • オブジェクト
すべて表示
定義:
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_to書き

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

GCPアクセス トークンを取得します。

パラメーター:

  • timeout_holder (CsotTimeoutHolder | nil) (デフォルトはnil

    CSOT timeout.

次の値を返します。

  • ( string )

    GCP access token.

次の値が発生します。

[ソースを表示]

40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# ファイル 'lib/mongo/crypt/KMS/ GCP/credentials_retriggers.rb' の検索ライン 40

デフォルト 自己.fetch_access_token(timeout_holder = nil)
  ホスト = ENV.fetch(METADATA_HOST_ENV) { DEFAULT_HOST }
  uri = URI(" http:// #{ host } /computeMetadata/v 1 /instance/service-accounts/default/token ")
  req = Net::HTTP::得る.新着情報(uri)
  req['Metadata-Flavor'] = 'Google'
  resp = fetch_ response(uri, req, timeout_holder)
  場合 resp.コード != '200'
    発生 KMS::CredentialsNotFound,
       GCE メタデータ ホストがコード#{ resp .コード}で応答したとあります。
  end
  parsed_resp = JSON.parse(resp.body)
  parsed_resp.fetch('access_token')
ヘルプ JSON::ParserError, KeyError => e
  発生 KMS::CredentialsNotFound,
    " GCP メタデータ レスポンスは無効です: " #{ resp . body }の場合、 #{ e .クラス} : #{ e .メッセージ} "
  ヘルプ ::タイムアウト::エラー, IOError, SystemCallError, SocketError => e
    発生 KMS::CredentialsNotFound,
           GCP メタデータ応答を受信できませんでした。 #{ e .クラス} : #{ e .メッセージ} "
end