클래스: Mongo::Crypt::KMS::GCP::CredentialsRetriever Private

상속:
객체
  • 객체
모두 표시
다음에 정의됨:
빌드/ Ruby-driver-v2.19/lib/mongo/crypt/KMS/GCP/credentials_retriever.rb

개요

이 클래스는 비공개 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
# 파일 '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/v1/ 인스턴스/service-accounts/ 기본값/token")
  req = Net::HTTP::get.신규(uri)
  req['Metadata-Flavor'] = 'Google'
  resp = Net::HTTP.시작하기(uri.호스트 이름, uri.포트, use_ssl: 거짓) do |HTTP|
    HTTP.요청(req)
  end
  만약 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 메타데이터 response is invalid: '#{resp.body}'; #{e.class}: #{e.message}"
  구출 ::시간 초과::오류, IOError, SystemCallError, SocketError => e
    올리다 KMS::CredentialsNotFound,
          "GCP 메타데이터 응답을 받을 수 없습니다. #{e.class}: #{e.message}"
end