Class: Mongo::ClientEncryption
- 継承:
-
オブジェクト
- オブジェクト
- Mongo::ClientEncryption
- 定義:
- lib/mongo/client_encryption.rb
Overview
ClientEncryption は、MongoClient では直接実行できないキーヴォールト コレクションに対する明示的な操作をカプセル化します。 値を明示的に暗号化および復号化し、データキーを作成するための API を提供します。
インスタンス メソッドの概要を折りたたむ
-
#add_key_alt_name(id, key_alt_name) ⇒ BSON::Document | nil
指定された ID を持つキーヴォールト コレクション内のキーの key_alt_name を追加します。
-
# create_data_key (kms_provider、オプション={})= BSON::Binary
暗号化および復号化に使用されるデータキーを生成し、そのキーを KMS コレクションに保存します。
-
# create_encrypted_collection (database, coll_name,coll_opts, kms_provider, Master_key) = 配列未満: 結果、ハッシュ>
暗号化されたフィールドを持つコレクションを作成します。
-
#decryption (値)=オブジェクト
すでに暗号化されている値を復号化します。
-
# delete_key ( ID ) = 操作::結果
指定された ID を持つキーをキーヴォールト コレクションから削除します。
-
#暗号化(値、オプション = {{}) = BSON::Binary
指定された暗号化キーとアルゴリズムを使って値を暗号化します。
-
#暗号化_式(式、オプション={{})= 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(#キーも)
キーヴォールト コレクション内のすべてのキーを返します。
-
#initialize(key_vault_client, options = {}) ⇒ ClientEncryption
コンストラクター
指定されたオプションを使用して新しい ClientEncryption オブジェクトを作成します。
-
#remove_key_alt_name(id, key_alt_name) ⇒ BSON::Document | nil
指定された ID を持つキーヴォールトコレクション内のキーから key_alt_name を削除します。
-
# brewp_many_data_key (フィルター、opts = {}) = Crypt::RewriteManyDataKeyResult
複数のデータキーを復号化し、新しいマスター_キーで、または新しいマスター_キーでそれらを(再)暗号化します。新しいマスター_キーが指定されていない場合は、現在のマスター_キーで(再)暗号化します。
コンストラクターの詳細
#initialize(key_vault_client, options = {}) ⇒ ClientEncryption
指定されたオプションを使用して新しい ClientEncryption オブジェクトを作成します。
49 50 51 52 53 54 55 56 |
# ファイル 'lib/mongo/client_encryption.rb' 行 49 デフォルト 初期化(key_vault_client, = {}) @encrypter = 暗号化::明示的暗号化.新着情報( key_vault_client, [:key_vault_namespace], 暗号化::KMS::Credentials.新着情報([: kms_providers]), 暗号化::KMS::検証.([: kms_tls_options]) ) end |
インスタンス メソッドの詳細
#add_key_alt_name(id, key_alt_name) ⇒ BSON::Document | nil
指定された ID を持つキーヴォールト コレクション内のキーの key_alt_name を追加します。
183 184 185 |
# ファイル 'lib/mongo/client_encryption.rb' 行 183 デフォルト add_key_alt_name(id, key_alt_name) @encrypter.add_key_alt_name(id, key_alt_name) end |
# create_data_key (kms_provider、オプション={})= BSON::Binary
暗号化および復号化に使用されるデータキーを生成し、そのキーを KMS コレクションに保存します。 生成されたキーは KMS マスター キーで暗号化されます。
84 85 86 87 88 89 90 |
# ファイル 'lib/mongo/client_encryption.rb' 行 84 デフォルト create_data_key(kms_provider, ={}) key_document = 暗号化::KMS::MasterKeyDocument.新着情報(kms_provider, ) key_alt_names = [:key_alt_names] key_rate = [:key_rate] @encrypter.create_and_insert_data_key(key_document, key_alt_names, key_rate) end |
# create_encrypted_collection (database, coll_name,coll_opts, kms_provider, Master_key) == Array =======================================
このメソッドでは、クライアントの : auto_encryption_options の :encrypted_fields_map は更新されません。 したがって、このメソッドによって作成されたコレクションを自動暗号化で使用するには、:encrypted_fields が返されたこの関数を呼び出した後、新しいクライアントを作成する必要があります。
暗号化されたフィールドを持つコレクションを作成します。
:encryption_fields に null 値を持つ keyId が含まれている場合、データキーが自動的に生成され、keyId 値に割り当てられます。
270 271 272 273 274 275 276 277 278 279 280 281 |
# ファイル 'lib/mongo/client_encryption.rb' 行 270 デフォルト create_encrypted_collection(database, coll_name, coll_opts, kms_provider, マスター_キー) 発生 ArgumentError, 「 coll_opts には :encrypted_fields が含まれている必要があります」 ただし、 coll_opts[:encrypted_fields] encryption_fields = create_data_keys(coll_opts[:encrypted_fields], kms_provider, マスター_キー) begin new_coll_opts = coll_opts.dup.merge(encryption_fields: encryption_fields) [database[coll_name].create(new_coll_opts), encryption_fields] ヘルプ mongo::エラー => e 発生 エラー::CryptError, "暗号化されたフィールドを使用したコレクションの作成エラー\ #{ encrypted_fields } : #{ e .クラス} : #{ e .} " end end |
#decryption (値)=オブジェクト
すでに暗号化されている値を復号化します。
172 173 174 |
# ファイル 'lib/mongo/client_encryption.rb' 行 172 デフォルト 解読(価値) @encrypter.解読(価値) end |
# delete_key ( ID ) =操作::結果
指定された ID を持つキーをキーヴォールト コレクションから削除します。
193 194 195 |
# ファイル 'lib/mongo/client_encryption.rb' 行 193 デフォルト delete_key(id) @encrypter.delete_key(id) end |
#暗号化(値、オプション = {{}) = BSON::Binary
:key_id オプションと :key_alt_name オプションは相互に排他的です。 明示的な暗号化を実行するには 1 つのみが必要です。
指定された暗号化キーとアルゴリズムを使って値を暗号化します。
暗号化アルゴリズムが [ Indexed(インデックス付き) ] に設定されている場合。 クエリタイプは、
only if encryption algorithm is set to "Indexed". The only allowed
value is "equality".
122 123 124 |
# ファイル 'lib/mongo/client_encryption.rb' 行 122 デフォルト 暗号化(価値, ={}) @encrypter.暗号化(価値, ) end |
#暗号化_式(式、オプション={{})= BSON::Binary
:key_id オプションと :key_alt_name オプションは相互に排他的です。 明示的な暗号化を実行するには 1 つのみが必要です。
範囲インデックスをクエリするには、 マッチ式 または 集計式 を暗号化します。
queryType が range で、アルゴリズムが Range の場合にのみサポートされます。 @note: Rangeアルゴリズムは実験的なもののみです。 意図したものではありません
for public use. It is subject to breaking changes.
# @ param [ ハッシュ ] オプション
162 163 164 |
# ファイル 'lib/mongo/client_encryption.rb' 行 162 デフォルト encryption_式(式, = {}) @encrypter.encryption_式(式, ) end |
#get_key(id) ⇒ BSON::Document | nil
指定された ID を持つ単一のキーを検索します。
203 204 205 |
# ファイル 'lib/mongo/client_encryption.rb' 行 203 デフォルト get_key(id) @encrypter.get_key(id) end |
#get_key_by_alt_name(key_alt_name) ⇒ BSON::Document | nil
指定された key_alt_name を持つキーヴォールト コレクション内のキーを返します。
213 214 215 |
# ファイル 'lib/mongo/client_encryption.rb' 行 213 デフォルト get_key_by_alt_name(key_alt_name) @encrypter.get_key_by_alt_name(key_alt_name) end |
#get_keys = Collection::Viewとも呼ばれます:
キーヴォールト コレクション内のすべてのキーを返します。
220 221 222 |
# ファイル 'lib/mongo/client_encryption.rb' 行 220 デフォルト get_keys @encrypter.get_keys end |
#remove_key_alt_name(id, key_alt_name) ⇒ BSON::Document | nil
指定された ID を持つキーヴォールトコレクション内のキーから key_alt_name を削除します。
232 233 234 |
# ファイル 'lib/mongo/client_encryption.rb' 行 232 デフォルト delete_key_alt_name(id, key_alt_name) @encrypter.delete_key_alt_name(id, key_alt_name) end |
# brewp_many_data_key (フィルター、opts = {}) = Crypt::RewriteManyDataKeyResult
複数のデータキーを復号化し、新しいマスター_キーでそれらを(再)暗号化します、
or with their current master_key if a new one is not given.
247 248 249 |
# ファイル 'lib/mongo/client_encryption.rb' 行 247 デフォルト rewrap_many_data_key(フィルター, ops = {}) @encrypter.rewrap_many_data_key(フィルター, ops) end |