클래스: Mongo::Crypt::AutoEncrypter Private
- 상속:
-
객체
- 객체
- Mongo::Crypt::AutoEncrypter
- 다음에 정의됨:
- lib/ Mongo/crypt/auto_encrypter.rb
개요
이 클래스는 비공개 API의 일부입니다. 이 클래스는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
AutoEncrypter는 자동 암호화 의 동작을 캡슐화하는 객체 입니다. libmongocrypt 처리하다, 키 볼트 클라이언트 객체, mongocryptd 클라이언트 객체 및 암호화 I/O를 포함하여 자동 암호화와 관련된 모든 리소스를 제어합니다.
자동 암호화기는 Mongo::Client에서 인스턴스로 유지됩니다. 동일한 auto_encryption_options 해시를 가진 클라이언트 객체는 자동 암호화기를 공유할 수 있습니다.
상수 요약 접기
- DEFAULT_EXTRA_OPTIONS =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
:extra_options 옵션에 대한 기본값의 해시입니다.
옵션::편집됨.신규({ mongocryptd_uri: 'mongodb://localhost:27020', mongocryptd_bypass_spawn: 거짓, mongocryptd_spawn_path: 'mongocryptd', mongocryptd_spawn_args: [ '--idleShutdownTimeoutSecs=60' ], })
인스턴스 속성 요약 접기
- #key_vault_client ⇒ 객체 읽기 전용 비공개
- #metadata_client ⇒ Object 읽기 전용 비공개
- #mongocryptd_client ⇒ 객체 읽기 전용 비공개
- #options ⇒ 객체 읽기 전용 비공개
인스턴스 메서드 요약 접기
-
#닫기 ⇒ true
비공개
자동 암호화 프로그램에서 생성된 리소스를 닫습니다.
-
#Decrypt(command, timeout_holder) ⇒ BSON::Document
비공개
데이터베이스 명령 을 해독합니다.
-
#암호화(database_name, 명령, timeout_holder) ⇒ BSON::Document
비공개
데이터베이스 명령 을 암호화합니다.
-
#암호화? ⇒ 부울
비공개
이 암호화기가 암호화 를 수행해야 하는지 여부(:bypass_auto_encryption 옵션이 true로 설정하다 경우 false 반환).
-
#initialize(options) ⇒ AutoEncrypter
생성자
비공개
이 모듈을 포함하는 클래스에서 암호화 관련 옵션 및 인스턴스 변수를 설정합니다.
생성자 세부 정보
#initialize(options) ⇒ AutoEncrypter
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 모듈을 포함하는 클래스에서 암호화 관련 옵션 및 인스턴스 변수를 설정합니다. Mongo::Crypt::Encrypter 모듈에서 동일한 메서드를 호출합니다.
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 |
# 파일 'lib/ Mongo/crypt/auto_encrypter.rb', 줄 87 def 초기화() 암호화.validate_ffi! # 이 호출은 결국 다른 메서드 호출을 통해 # 정리해야 하는 추가 클라이언트를 만듭니다. @options = ().동결 @crypt_handle = 암호화::핸들.신규( 암호화::KMS::자격 증명.신규(@options[:kms_providers]), 암호화::KMS::유효성 검사.(@options[:kms_tls_options]), schema_map: @options[:schema_map], schema_map_path: @options[:schema_map_path], encryption_fields_map: @options[:encrypted_fields_map], bypass_query_analysis: @options[:bypass_query_analysis], crypt_shared_lib_path: @options[:extra_options][:crypt_shared_lib_path], crypt_shared_lib_required: @options[:extra_options][:crypt_shared_lib_required], disable_crypt_shared_lib_search: @options[:extra_options][:disable_crypt_shared_lib_search] ) @mongocryptd_options = @options[:extra_options].슬라이스( :mongocryptd_uri, :mongocryptd_bypass_spawn, :mongocryptd_spawn_path, :mongocryptd_spawn_args ) @mongocryptd_options[:mongocryptd_bypass_spawn] = @options[:bypass_auto_encryption] || @options[:extra_options][:mongocryptd_bypass_spawn] || @crypt_handle.crypt_shared_lib_available? || @options[:extra_options][:crypt_shared_lib_required] 하지 않는 한 @options[:extra_options][:crypt_shared_lib_required] || @crypt_handle.crypt_shared_lib_available? || @options[:bypass_query_analysis] @mongocryptd_client = 고객.신규( @options[:extra_options][:mongocryptd_uri], monitoring_io: @options[:client].[:monitoring_io], populator_io: @options[:client].[:populator_io], server_selection_timeout: 10, database: @options[:client].[:database] ) end 시작 @encryption_io = EncryptionIO.신규( 클라이언트: @options[:client], mongocryptd_client: @mongocryptd_client, key_vault_namespace: @options[:key_vault_namespace], key_vault_client: @key_Vault_client, metadata_client: @metadata_client, mongocryptd_options: @mongocryptd_options ) 구출 StandardError 시작 @mongocryptd_client&.닫기 구출 StandardError => e log_warn("자동 암호화기의 생성자에서 mongocryptd 클라이언트를 닫는 중 오류 발생: #{e.class}: #{e}") # 이 예외를 삭제하여 원래 예외가 발생하도록 합니다. end 올리다 end 구출 StandardError 만약 @key_Vault_client && @key_Vault_client != [:client] && @key_Vault_client.cluster != [:client].cluster 시작 @key_Vault_client.닫기 구출 StandardError => e log_warn("자동 암호화기의 생성자에서 키 볼트 클라이언트 를 닫는 동안 오류가 발생했습니다: #{e.class}: #{e}") # 이 예외를 삭제하여 원래 예외가 발생하도록 합니다. end end 만약 @metadata_client && @metadata_client != [:client] && @metadata_client.cluster != [:client].cluster 시작 @metadata_client.닫기 구출 StandardError => e log_warn("자동 암호화기의 생성자에서 메타데이터 클라이언트를 닫는 중 오류가 발생했습니다: #{e.class}: #{e}") # 이 예외를 삭제하여 원래 예외가 발생하도록 합니다. end end 올리다 end |
인스턴스 속성 세부 정보
#key_vault_client ⇒ 객체 (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
30 31 32 |
# 파일 'lib/ Mongo/crypt/auto_encrypter.rb', 줄 30 def key_Vault_client @key_Vault_client end |
#metadata_client ⇒ 객체 (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
30 31 32 |
# 파일 'lib/ Mongo/crypt/auto_encrypter.rb', 줄 30 def @metadata_client end |
#mongocryptd_client ⇒ 객체 (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
30 31 32 |
# 파일 'lib/ Mongo/crypt/auto_encrypter.rb', 줄 30 def mongocryptd_client @mongocryptd_client end |
#options ⇒ 객체 (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
30 31 32 |
# 파일 'lib/ Mongo/crypt/auto_encrypter.rb', 줄 30 def @options end |
인스턴스 메서드 세부 정보
#닫기 ⇒ true
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
자동 암호화 프로그램에서 생성된 리소스를 닫습니다.
208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 |
# 파일 'lib/ Mongo/crypt/auto_encrypter.rb', 줄 208 def 닫기 @mongocryptd_client.닫기 만약 @mongocryptd_client 만약 @key_Vault_client && @key_Vault_client != [:client] && @key_Vault_client.cluster != [:client].cluster @key_Vault_client.닫기 end 만약 @metadata_client && @metadata_client != [:client] && @metadata_client.cluster != [:client].cluster @metadata_client.닫기 end true end |
#Decrypt(command, timeout_holder) ⇒ BSON::Document
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
데이터베이스 명령 을 해독합니다.
197 198 199 200 201 202 203 |
# 파일 'lib/ Mongo/crypt/auto_encrypter.rb', 줄 197 def 암호 해독(명령, timeout_holder) AutoDecryptionContext.신규( @crypt_handle, @encryption_io, 명령 ).run_state_ machine(timeout_holder) end |
#암호화(database_name, 명령, timeout_holder) ⇒ BSON::Document
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
데이터베이스 명령 을 암호화합니다.
183 184 185 186 187 188 189 190 |
# 파일 'lib/ Mongo/crypt/auto_encrypter.rb', 줄 183 def 암호화(database_name, 명령, timeout_holder) AutoEncryptionContext.신규( @crypt_handle, @encryption_io, database_name, 명령 ).run_state_ machine(timeout_holder) end |
#암호화? ⇒ 부울
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 암호화기가 암호화 를 수행해야 하는지 여부(:bypass_auto_encryption 옵션이 true로 설정하다 경우 false 반환).
172 173 174 |
# 파일 'lib/ Mongo/crypt/auto_encrypter.rb', 줄 172 def 암호화? !@options[:bypass_auto_encryption] end |