Docs Menu
Docs Home
/
MongoDB マニュアル
/ / / / /

明示的な暗号化

項目一覧

  • Overview
  • 明示的な暗号化の使用
  • ClientEncryptionインスタンスの作成
  • 読み取り操作と書込み操作におけるフィールドの暗号化
  • 自動復号化
  • サーバー側のフィールドレベル暗号化の強制
  • 詳細

Queryable Encryption の明示的な暗号化メカニズムの使用方法を学習します。

明示的な暗号化は、データベースで実行する各操作で、ドキュメント内のフィールドを暗号化および復号化する方法を指定するメカニズムです。

明示的な暗号化は、バージョン 6.0 以降を使用する次の MongoDB 製品で利用できます。

  • MongoDB Community Server

  • MongoDB Enterprise Advanced

  • MongoDB Atlas

次のセクションでは、Queryable Encryption 対応アプリケーションで明示的な暗号化を使用する方法の概要を説明します。

ClientEncryption mongoshは、Key Vault コレクションと明示的な暗号化に関係する KMS 操作をカプセル化する とドライバー全体で使用される抽象化です。

ClientEncryptionインスタンスを作成するには、次の手順を指定します。

  • カスタマー マスター キーをホストするKMSへのアクセス用に構成されたkmsProvidersオブジェクト

  • キーヴォールト コレクションの名前空間

  • MongoDB Community Server を使用する場合は、 bypassQueryAnalysisオプションをTrueに設定します

  • キーヴォールト コレクションへのアクセス権を持つMongoClientインスタンス

その他のClientEncryptionオプションについては、「 Queryable Encryption の MongoClient オプション 」を参照してください。

注意

コード例は現在利用できていませんが、近日サポートされる予定です。

読み取りおよび書込み操作を実行する前に、アプリケーション全体で読み取りおよび書込み操作を更新し、アプリケーションがフィールドを暗号化する必要があります。

フィールドを暗号化するには、 ClientEncryptionインスタンスのencryptメソッドを使用します。 以下を指定します。

  • 暗号化する値

  • 使用されるアルゴリズム( IndexedまたはUnindexedのいずれか)

  • データ暗号化キーの ID

  • 競合係数( Indexedアルゴリズムを使用している場合)

  • 読み取り操作を実行している場合は、フィールドに定義されているクエリタイプを設定します( Indexedアルゴリズムを使用している場合)

注意

クエリ タイプ

クエリ タイプは読み取り操作にのみ適用されます。

クエリ タイプの詳細については、「クエリ タイプ 」を参照してください。

フィールドにqueryTypeを指定する場合は、 Indexedアルゴリズムを使用します。

Indexed は等価クエリをサポートします。 Indexedフィールドにはサーバー上のインデックスが必要です。 インデックスは、db.createCollection()encryptedFieldsオプションを指定して作成されます

フィールドを自動的に復号化するには、 MongoClientインスタンスを次のように構成する必要があります。

  • kmsProvidersオブジェクトを指定する

  • キーヴォールトコレクションを指定する

  • MongoDB Community Server を使用する場合は、 bypassQueryAnalysisオプションをTrueに設定します

注意

MongoDB Community Server で自動復号化が利用可能

自動暗号化には MongoDB Enterprise または MongoDB Atlas が必要ですが、自動復号化はバージョン 6.0 以降を使用する次の MongoDB 製品で利用できます。

  • MongoDB Community Server

  • MongoDB Enterprise Advanced

  • MongoDB Atlas

「暗号化のフィールド」 を指定して、コレクション内の特定のフィールドの暗号化を強制します。

Indexed フィールドにはサーバー上のインデックスが必要です。 インデックスは、 db.createCollection()encryptedFieldsオプションを指定して作成されます。

特定のフィールドの暗号化を強制するように構成された MongoDB インスタンスで明示的な暗号化メカニズムを使用して Queryable Encryption を実行するクライアントは、MongoDB インスタンスに指定されているようにそれらのフィールドを暗号化する必要があります。

サーバー側での Queryable Encryption 適用の設定方法については、「フィールドの暗号化とクエリ可能性 」を参照してください。

キーヴォールト コレクション、データ暗号化キー、CMK の詳細については、「キーとキーヴォールト 」を参照してください。

KMSプロバイダーとkmsProvidersオブジェクトの詳細については、「 KMS プロバイダー 」を参照してください。

戻る

コレクション