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 オブジェクトを作成します。
48 49 50 51 52 53 54 55 |
# ファイル 'lib/mongo/client_encryption.rb' 行 48 デフォルト 初期化(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 を追加します。
182 183 184 |
# ファイル 'lib/mongo/client_encryption.rb' 行 182 デフォルト 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 マスター キーで暗号化されます。
83 84 85 86 87 88 89 |
# ファイル 'lib/mongo/client_encryption.rb' 行 83 デフォルト 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 値に割り当てられます。
269 270 271 272 273 274 275 276 277 278 279 280 |
# ファイル 'lib/mongo/client_encryption.rb' 行 269 デフォルト 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 (値)=オブジェクト
すでに暗号化されている値を復号化します。
171 172 173 |
# ファイル 'lib/mongo/client_encryption.rb' 行 171 デフォルト 解読(価値) @encrypter.解読(価値) end |
# delete_key ( ID ) =操作::結果
指定された ID を持つキーをキーヴォールト コレクションから削除します。
192 193 194 |
# ファイル 'lib/mongo/client_encryption.rb' 行 192 デフォルト delete_key(id) @encrypter.delete_key(id) end |
#暗号化(値、オプション = {{}) = BSON::Binary
:key_id オプションと :key_alt_name オプションは相互に排他的です。 明示的な暗号化を実行するには 1 つのみが必要です。
指定された暗号化キーとアルゴリズムを使って値を暗号化します。
暗号化アルゴリズムが「インデックス付き」に設定されている場合。暗号化アルゴリズムが「インデックス付き」に設定されている場合にのみ、クエリタイプを設定する必要があります。許可される値は「等価」のみです。
121 122 123 |
# ファイル 'lib/mongo/client_encryption.rb' 行 121 デフォルト 暗号化(価値, = {}) @encrypter.暗号化(価値, ) end |
#暗号化_式(式、オプション={{})= BSON::Binary
:key_id オプションと :key_alt_name オプションは相互に排他的です。 明示的な暗号化を実行するには 1 つのみが必要です。
範囲インデックスをクエリするには、 マッチ式 または 集計式 を暗号化します。
queryType が "範囲" で、アルゴリズムが "範囲" の場合にのみサポートされます。@note: 範囲アルゴリズムは実験的なもののみです。一般的な使用を意図したものではありません。重大な変更が発生する可能性があります。
@ param [ ハッシュ ] オプション
161 162 163 |
# ファイル 'lib/mongo/client_encryption.rb' 行 161 デフォルト encryption_式(式, = {}) @encrypter.encryption_式(式, ) end |
#get_key(id) ⇒ BSON::Document | nil
指定された ID を持つ単一のキーを検索します。
202 203 204 |
# ファイル 'lib/mongo/client_encryption.rb' 行 202 デフォルト 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 デフォルト 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 デフォルト 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 デフォルト 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
複数のデータキーを復号化し、新しいマスター_キーで、または新しいマスター_キーでそれらを(再)暗号化します。新しいマスター_キーが指定されていない場合は、現在のマスター_キーで(再)暗号化します。
246 247 248 |
# ファイル 'lib/mongo/client_encryption.rb' 行 246 デフォルト rewrap_many_data_key(フィルター, ops = {}) @encrypter.rewrap_many_data_key(フィルター, ops) end |