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

상속:
객체
  • 객체
모두 표시
확장자:
전달 가능
다음을 포함합니다.
유효성 검사
다음에 정의됨:
build/ruby-driver-v2.19/lib/mongo/crypt/KMS/GCP/credentials.rb

개요

이 클래스는 비공개 API의 일부입니다. 이 클래스는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

GCP Cloud 키 관리 자격 증명 객체 에는 GCP KMS 제공자 를 사용하기 위한 자격 증명 이 포함되어 있습니다.

상수 요약 접기

FORMAT_HINT =

이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

"GCP KMS 제공자 옵션은 다음 형식이어야 합니다. " +
"{ email: 'EMAIL', private_key: 'PRIVATE-KEY' }"

인스턴스 속성 요약 접기

인스턴스 메서드 요약 접기

유효성 검사에 포함된 메서드

#validate_param, validate_tls_options

생성자 세부 정보

#initialize(opts) ⇒ 자격 증명

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

매개변수 해시로부터 GCP KMS 자격 증명 객체를 생성합니다.

매개변수:

  • opts (해시)

    GCP KMS 제공자 에 대한 자격 증명 이 포함된 해시

옵션 해시(opts):

  • :email (string)

    GCP 이메일.

  • :private_key (string)

    GCP 비공개 키. 이 메서드는 기본64 로 인코딩된 DER 형식 또는 PEM 형식의 비공개 키를 허용합니다.

  • :endpoint (string | nil)

    GCP 엔드포인트, 선택 사항.

  • :access_token (string | nil)

    GCP 액세스 토큰, 선택 사항. 이 옵션이 null이 아닌 경우 다른 옵션은 무시됩니다.

다음을 발생시킵니다.

  • (ArgumentError)

    필수 옵션이 누락되었거나 형식이 잘못된 경우.



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/crypt/KMS/GCP/ 자격 증명.rb', 줄 61

def 초기화(opts)
  @opts = opts
  반환 만약 비어 있나요?

  만약 opts[:access_token]
    @access_token = opts[:access_token]
  other
    @email = validate_param(:email, opts, FORMAT_HINT)
    @private_key = 시작
      private_key_opt = validate_param(:private_key, opts, FORMAT_HINT)
      만약 BSON::환경.jruby?
        # JRuby에서는 실제로 개인 키의 유효성을 검사할 수 없으므로 다음과 같이 가정합니다.
        # 기본64 로 인코딩된 DER 형식입니다.
        private_key_opt
      other
        # 비공개 키가 PEM 형식인지 확인합니다.
        pkey = OpenSSL::PKey::RSA.신규(private_key_opt)
        # PEM이므로 기본64 로 인코딩된 DER로 변환해야 합니다.
        der = 만약 pkey.response_to?(:private_to_der)
          pkey.private_to_der
        other
          pkey.to_der
        end
        Base64.인코딩64(der)
      end
    구출 OpenSSL::PKey::RSAError
      # 개인 키가 DER에 있는지 확인합니다.
      시작
        OpenSSL::PKey.읽기(Base64.디코딩64(private_key_opt))
        # 비공개 키는 괜찮습니다. 사용하세요.
        private_key_opt
      구출 OpenSSL::PKey::PKeyError
        올리다 ArgumentError.신규(
          "private_key 옵션은 기본64 로 인코딩된 DER 형식 또는 PEM 형식이어야 합니다."
        )
      end
    end

    @endpoint = validate_param(
      :endpoint, opts, FORMAT_HINT, 필수: 거짓
    )
  end
end

인스턴스 속성 세부 정보

#access_tokenstring | nil (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

GCP 액세스 토큰을 반환합니다.

반환합니다:

  • (string | nil)

    GCP 액세스 토큰.



40
41
42
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/crypt/KMS/GCP/ 자격 증명.rb', 줄 40

def access_token
  @access_token
end

#이메일string (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

인증에 사용할 GCP 이메일 을 반환합니다.

반환합니다:

  • (string)

    인증할 GCP 이메일입니다.



31
32
33
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/crypt/KMS/GCP/ 자격 증명.rb', 줄 31

def 이메일
  @email
end

#엔드포인트string | nil (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

GCP KMS 엔드포인트를 반환합니다.

반환합니다:

  • (string | nil)

    GCP KMS 엔드포인트.



37
38
39
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/crypt/KMS/GCP/ 자격 증명.rb', 줄 37

def 엔드포인트
  @endpoint
end

#private_keystring (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

GCP 비공개 키(기본64 로 인코딩된 DER 형식)를 반환합니다.

반환합니다:

  • (string)

    GCP 비공개 키, 기본64 로 인코딩된 DER 형식입니다.



34
35
36
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/crypt/KMS/GCP/ 자격 증명.rb', 줄 34

def PRIVATE_KEY
  @private_key
end

인스턴스 메서드 세부 정보

#to_documentBSON::Document

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

자격 증명 객체 를 libmongocrypt 형식의 BSON 문서 로 변환합니다.

반환합니다:

  • (BSON::Document)

    libmongocrypt 형식의 Azure KMS 자격 증명 입니다.



108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/crypt/KMS/GCP/ 자격 증명.rb', 줄 108

def to_document
  반환 BSON::문서.신규 만약 비어 있나요?
  만약 access_token
    BSON::문서.신규({ accessToken: access_token })
  other
    BSON::문서.신규({
      이메일: 이메일,
      privateKey: BSON::바이너리.신규(PRIVATE_KEY, :generic),
    }). do |BSON|
      하지 않는 한 엔드포인트.nil?
        BSON.update({ 엔드포인트: 엔드포인트 })
      end
    end
  end
end