クラス: Mongo::ClientEncryption
- 継承:
-
オブジェクト
- オブジェクト
- Mongo::ClientEncryption
- 定義:
- build/ruby-Driver-v 2.19 /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(#キーも)
キーヴォールト コレクション内のすべてのキーを返します。
-
#初期化(key_vault_client, オプション = {}) = ClientEncryption
コンストラクター
指定されたオプションを使用して新しい ClientEncryption オブジェクトを作成します。
-
#remove_key_alt_name(id, key_alt_name) ⇒ BSON::Document | nil
指定された ID を持つキーヴォールトコレクション内のキーから key_alt_name を削除します。
-
# brewp_many_data_key (フィルター、opts = {}) = Crypt::RewriteManyDataKeyResult
複数のデータキーを復号化し、新しいマスター_キーで、または新しいマスター_キーでそれらを(再)暗号化します。新しいマスター_キーが指定されていない場合は、現在のマスター_キーで(再)暗号化します。
コンストラクターの詳細
#初期化(key_vault_client, オプション = {}) = ClientEncryption
指定されたオプションを使用して新しい ClientEncryption オブジェクトを作成します。
46 47 48 49 50 51 52 53 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client_encryption.rb', 行46 デフォルト 初期化(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 を追加します。
180 181 182 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client_encryption.rb', 行180 デフォルト 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 マスター キーで暗号化されます。
81 82 83 84 85 86 87 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client_encryption.rb', 行81 デフォルト 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 値に割り当てられます。
267 268 269 270 271 272 273 274 275 276 277 278 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client_encryption.rb', 行267 デフォルト 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 (値)=オブジェクト
すでに暗号化されている値を復号化します。
169 170 171 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client_encryption.rb', 行169 デフォルト 解読(価値) @encrypter.解読(価値) end |
# delete_key ( ID ) =操作::結果
指定された ID を持つキーをキーヴォールト コレクションから削除します。
190 191 192 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client_encryption.rb', 行190 デフォルト 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".
119 120 121 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client_encryption.rb', 行119 デフォルト 暗号化(価値, ={}) @encrypter.暗号化(価値, ) end |
#暗号化_式(式、オプション={{})= BSON::Binary
:key_id オプションと :key_alt_name オプションは相互に排他的です。 明示的な暗号化を実行するには 1 つのみが必要です。
範囲インデックスをクエリするには、 マッチ式 または 集計式 を暗号化します。
queryType が rangePreview で、アルゴリズムが RangePreview の場合にのみサポートされます。 @note: Range アルゴリズムは実験的なもののみです。 意図したものではありません
for public use. It is subject to breaking changes.
# @ param [ ハッシュ ] オプション
159 160 161 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client_encryption.rb', 行159 デフォルト encryption_式(式, = {}) @encrypter.encryption_式(式, ) end |
#get_key(id) ⇒ BSON::Document | nil
指定された ID を持つ単一のキーを検索します。
200 201 202 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client_encryption.rb', 行200 デフォルト 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 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client_encryption.rb', 行210 デフォルト 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 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client_encryption.rb', 行217 デフォルト get_keys @encrypter.get_keys end |
#remove_key_alt_name(id, key_alt_name) ⇒ BSON::Document | nil
指定された ID を持つキーヴォールトコレクション内のキーから key_alt_name を削除します。
229 230 231 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client_encryption.rb', 行229 デフォルト 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.
244 245 246 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/client_encryption.rb', 行244 デフォルト rewrap_many_data_key(フィルター, ops = {}) @encrypter.rewrap_many_data_key(フィルター, ops) end |