클래스: Mongo::ClientEncryption
- 상속:
-
객체
- 객체
- Mongo::ClientEncryption
- 다음에 정의됨:
- 빌드/ Ruby-driver-v2.19/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 객체를 만듭니다.
46 47 48 49 50 51 52 53 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/client_encryption.rb', 줄 46 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을 추가합니다.
180 181 182 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/client_encryption.rb', 줄 180 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 마스터 키로 암호화됩니다.
81 82 83 84 85 86 87 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/client_encryption.rb', 줄 81 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 값에 할당됩니다.
267 268 269 270 271 272 273 274 275 276 277 278 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/client_encryption.rb', 줄 267 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) ⇒ 객체
이미 암호화된 값을 해독합니다.
169 170 171 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/client_encryption.rb', 줄 169 def 암호 해독(value) @encrypter.암호 해독(value) end |
#delete_key(ID) ⇒ Operation::Result
키 볼트 컬렉션 에서 지정된 ID의 키를 제거합니다.
190 191 192 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/client_encryption.rb', 줄 190 def delete_key(id) @encrypter.delete_key(id) end |
#encryption(value, options = {}) ⇒ BSON::Binary
:key_id 및 :key_alt_name 옵션은 상호 배타적입니다. 명시적 암호화를 수행하는 데는 하나만 필요합니다.
지정된 암호화 키와 알고리즘을 사용하여 값을 암호화합니다.
암호화 알고리즘 이 '인덱싱됨'으로 설정하다 경우. 쿼리 유형을 설정하다 해야 합니다.
only if encryption algorithm is set to "Indexed". The only allowed
value is "equality".
119 120 121 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/client_encryption.rb', 줄 119 def 암호화(value, ={}) @encrypter.암호화(value, ) end |
# 암호화 표현식 (표현식, 옵션 = {}) ⇒BSON ::Binary
:key_id 및 :key_alt_name 옵션은 상호 배타적입니다. 명시적 암호화를 수행하는 데는 하나만 필요합니다.
범위 인덱스를 쿼리하기 위해 일치 표현식 또는 애그리게이션 표현식을 암호화합니다.
queryType이 'rangePreview'이고 알고리즘 이 'RangePreview'인 경우에만 지원됩니다. @note: 범위 알고리즘 은 실험적일 뿐입니다. 의도된 것이 아닙니다.
for public use. It is subject to breaking changes.
# @param [ 해시 ] 옵션
159 160 161 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/client_encryption.rb', 줄 159 def 암호화 표현식(표현식, = {}) @encrypter.암호화 표현식(표현식, ) end |
#get_key(id) ⇒ BSON::Document | nil
지정된 ID를 가진 단일 키를 찾습니다.
200 201 202 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/client_encryption.rb', 줄 200 def get_key(id) @encrypter.get_key(id) end |
#get_key_by_alt_name(key_alt_name) ⇒ BSON::Document | nil
지정된 key_alt_name을 가진 키 볼트 컬렉션 의 키를 반환합니다.
210 211 212 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/client_encryption.rb', 줄 210 def get_key_by_alt_name(key_alt_name) @encrypter.get_key_by_alt_name(key_alt_name) end |
#get_keys ⇒ Collection::View 라고도 함: 키
키 볼트 컬렉션 의 모든 키를 반환합니다.
217 218 219 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/client_encryption.rb', 줄 217 def get_keys @encrypter.get_keys end |
#remove_key_alt_name(ID, key_alt_name) ⇒ BSON::Document | nil
지정된 ID를 가진 키 볼트 컬렉션 의 키에서 key_alt_name을 제거합니다.
229 230 231 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/client_encryption.rb', 줄 229 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
여러 데이터 키를 해독하고 새 master_key로 (재)암호화합니다.
or with their current master_key if a new one is not given.
244 245 246 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/client_encryption.rb', 줄 244 def rerap_many_data_key(필터, opts = {}) @encrypter.rerap_many_data_key(필터, opts) end |