Class: Mongo::ClientEncryption
- 상속:
-
객체
- 객체
- Mongo::ClientEncryption
- 다음에 정의됨:
- lib/ Mongo/client_encryption.rb
개요
ClientEncryption은 MongoClient에서 직접 수행할 수 없는 키 볼트 컬렉션에 대한 명시적인 작업을 캡슐화합니다. 값을 명시적으로 암호화 및 해독하고 데이터 키를 생성하기 위한 API를 제공합니다.
인스턴스 메서드 요약 접기
-
#add_key_alt_name(id, key_alt_name) ⇒ BSON::Document | nil
지정된 ID를 가진 키 볼트 컬렉션의 키에 대한 key_alt_name을 추가합니다.
-
#create_data_key(kms_provider, options = {}) ⇒ BSON::Binary
암호화/복호화에 사용되는 데이터 키를 생성하고 해당 키를 KMS 컬렉션에 저장합니다.
-
#create_encrypted_collection(database, coll_name, coll_opts, kms_provider, master_key) ⇒ Array<Operation::Result, Hash>
암호화된 필드로 컬렉션을 만듭니다.
-
#Decrypt(value) ⇒ 객체
이미 암호화된 값을 해독합니다.
-
#delete_key(ID) ⇒ Operation::Result
키 볼트 컬렉션 에서 지정된 ID의 키를 제거합니다.
-
#encryption(value, options = {}) ⇒ BSON::Binary
지정된 암호화 키와 알고리즘을 사용하여 값을 암호화합니다.
-
# BSON 표현식 ( 표현식 , 옵션 = {}) ⇒BSON::Binary
범위 인덱스를 쿼리하기 위해 일치 표현식 또는 애그리게이션 표현식을 암호화합니다.
-
#get_key(ID) ⇒ BSON::Document | nil
지정된 ID를 가진 단일 키를 찾습니다.
-
#get_key_by_alt_name(key_alt_name) ⇒ BSON::Document | nil
지정된 key_alt_name을 가진 키 볼트 컬렉션 의 키를 반환합니다.
-
#get_keys ⇒ Collection::View (동의어: #keys)
키 볼트 컬렉션 의 모든 키를 반환합니다.
-
#initialize(key_vault_client, options = {}) ⇒ ClientEncryption
생성자
제공된 옵션을 사용하여 새 ClientEncryption 객체를 만듭니다.
-
#remove_key_alt_name(ID, key_alt_name) ⇒ BSON::Document | nil
지정된 ID를 가진 키 볼트 컬렉션 의 키에서 key_alt_name을 제거합니다.
-
#rewrap_many_data_key(filter, opts = {}) ⇒ Crypt::RewrapManyDataKeyResult
여러 데이터 키를 해독하고 새 마스터 키로 데이터 키를 (재)암호화하거나, 새 키가 제공되지 않은 경우 현재 마스터 키로 암호화합니다.
생성자 세부 정보
#initialize(key_vault_client, options = {}) ⇒ ClientEncryption
제공된 옵션을 사용하여 새 ClientEncryption 객체를 만듭니다.
48 49 50 51 52 53 54 55 |
# 파일 'lib/ Mongo/client_encryption.rb', 줄 48 def 초기화(key_Vault_client, = {}) @encrypter = 암호화::명시적 암호화 프로그램(ExplicitEncrypter).신규( key_Vault_client, [:key_vault_namespace], 암호화::KMS::자격 증명.신규([:kms_providers]), 암호화::KMS::유효성 검사.([:kms_tls_options]) ) end |
인스턴스 메서드 세부 정보
#add_key_alt_name(ID, key_alt_name) ⇒ BSON::Document | nil
지정된 ID를 가진 키 볼트 컬렉션의 키에 대한 key_alt_name을 추가합니다.
182 183 184 |
# 파일 'lib/ Mongo/client_encryption.rb', 줄 182 def add_key_alt_name(id, key_alt_name) @encrypter.add_key_alt_name(id, key_alt_name) end |
#create_data_key(kms_provider, options = {}) ⇒ BSON::Binary
암호화/복호화에 사용되는 데이터 키를 생성하고 해당 키를 KMS 컬렉션에 저장합니다. 생성된 키는 KMS 마스터 키로 암호화됩니다.
83 84 85 86 87 88 89 |
# 파일 'lib/ Mongo/client_encryption.rb', 줄 83 def create_data_key(kms_provider, = {}) key_document = 암호화::KMS::MasterKeyDocument.신규(kms_provider, ) key_alt_names = [:key_alt_names] key_material = [:key_material] @encrypter.create_and_insert_data_key(key_document, key_alt_names, key_material) end |
#create_encrypted_collection(데이터베이스, coll_name, coll_opts, kms_provider, master_key) ⇒ Array<Operation::Result, Hash>
이 메서드는 클라이언트의 :auto_encryption_options에 있는 :encrypted_fields_map을 업데이트 하지 않습니다. 따라서 이 메서드로 생성된 컬렉션 자동 암호화 와 함께 사용하려면 사용자가 반환된 :encrypted_fields를 사용하여 이 함수를 호출한 후 새 클라이언트 만들어야 합니다.
암호화된 필드로 컬렉션을 만듭니다.
:encryption_fields에 null 값이 있는 keyId가 포함되어 있으면 데이터 키가 자동으로 생성되어 keyId 값에 할당됩니다.
269 270 271 272 273 274 275 276 277 278 279 280 |
# 파일 'lib/ Mongo/client_encryption.rb', 줄 269 def create_encrypted_collection(database, coll_name, coll_opts, kms_provider, master_key) 올리다 ArgumentError, 'coll_opts에는 반드시 :encrypted_fields'가 포함되어야 합니다. 하지 않는 한 coll_opts[:encrypted_fields] encryption_fields = create_data_keys(coll_opts[:encrypted_fields], kms_provider, master_key) 시작 new_coll_opts = coll_opts.dup.merge(encryption_fields: encryption_fields) [ database[coll_name].create(new_coll_opts), encryption_fields ] 구출 mongo::오류 => e 올리다 오류::CRYPTError, " 암호화 된 필드 가 있는 컬렉션 을 만드는 동안 오류 가 발생 했습니다 ._ _ _ end end |
#Decrypt(value) ⇒ 객체
이미 암호화된 값을 해독합니다.
171 172 173 |
# 파일 'lib/ Mongo/client_encryption.rb', 줄 171 def 암호 해독(value) @encrypter.암호 해독(value) end |
#delete_key(ID) ⇒ Operation::Result
키 볼트 컬렉션 에서 지정된 ID의 키를 제거합니다.
192 193 194 |
# 파일 'lib/ Mongo/client_encryption.rb', 줄 192 def delete_key(id) @encrypter.delete_key(id) end |
#encryption(value, options = {}) ⇒ BSON::Binary
:key_id 및 :key_alt_name 옵션은 상호 배타적입니다. 명시적 암호화를 수행하는 데는 하나만 필요합니다.
지정된 암호화 키와 알고리즘을 사용하여 값을 암호화합니다.
암호화 알고리즘 '인덱싱됨'으로 설정하다 경우. 쿼리 유형은 암호화 알고리즘 '인덱싱됨'으로 설정하다 경우에만 설정하다 해야 합니다. 허용되는 유일한 값은 "동등성"입니다.
121 122 123 |
# 파일 'lib/ Mongo/client_encryption.rb', 줄 121 def 암호화(value, = {}) @encrypter.암호화(value, ) end |
# 암호화 표현식 (표현식, 옵션 = {}) ⇒BSON ::Binary
:key_id 및 :key_alt_name 옵션은 상호 배타적입니다. 명시적 암호화를 수행하는 데는 하나만 필요합니다.
범위 인덱스를 쿼리하기 위해 일치 표현식 또는 애그리게이션 표현식을 암호화합니다.
queryType이 ' 범위'이고 알고리즘 이 'Range'인 경우에만 지원됩니다. @note: 범위 알고리즘 은 실험적일 뿐입니다. 공개적으로 사용할 수 없습니다. 호환성이 손상되는 변경이 발생할 수 있습니다.
@param [ 해시 ] 옵션
161 162 163 |
# 파일 'lib/ Mongo/client_encryption.rb', 줄 161 def 암호화 표현식(표현식, = {}) @encrypter.암호화 표현식(표현식, ) end |
#get_key(id) ⇒ BSON::Document | nil
지정된 ID를 가진 단일 키를 찾습니다.
202 203 204 |
# 파일 'lib/ Mongo/client_encryption.rb', 줄 202 def get_key(id) @encrypter.get_key(id) end |
#get_key_by_alt_name(key_alt_name) ⇒ BSON::Document | nil
지정된 key_alt_name을 가진 키 볼트 컬렉션 의 키를 반환합니다.
212 213 214 |
# 파일 'lib/ Mongo/client_encryption.rb', 줄 212 def get_key_by_alt_name(key_alt_name) @encrypter.get_key_by_alt_name(key_alt_name) end |
#get_keys ⇒ Collection::View 라고도 함: 키
키 볼트 컬렉션 의 모든 키를 반환합니다.
219 220 221 |
# 파일 'lib/ Mongo/client_encryption.rb', 줄 219 def get_keys @encrypter.get_keys end |
#remove_key_alt_name(ID, key_alt_name) ⇒ BSON::Document | nil
지정된 ID를 가진 키 볼트 컬렉션 의 키에서 key_alt_name을 제거합니다.
231 232 233 |
# 파일 'lib/ Mongo/client_encryption.rb', 줄 231 def remove_key_alt_name(id, key_alt_name) @encrypter.remove_key_alt_name(id, key_alt_name) end |
#rewrap_many_data_key(필터하다, opts = {}) ⇒ Crypt::RewrapManyDataKeyResult
여러 데이터 키를 해독하고 새 마스터 키로 데이터 키를 (재)암호화하거나, 새 키가 제공되지 않은 경우 현재 마스터 키로 암호화합니다.
246 247 248 |
# 파일 'lib/ Mongo/client_encryption.rb', 줄 246 def rerap_many_data_key(필터, opts = {}) @encrypter.rerap_many_data_key(필터, opts) end |