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

CSFLE によるドキュメントの復号化

項目一覧

  • 復号に使用されるメタデータ
  • 自動復号化プロセス
  • 自動暗号化された読み取り動作
  • 詳細

このページでは、CSFLE がデータ暗号化キーとカスタマー マスター キーのメタデータを使用してデータを復号化する方法について説明します。

CSFLE を使用してデータを暗号化すると、暗号化されたデータは、次のメタデータを含む BinDataサブタイプ6オブジェクトとして保存されます。

  • データの暗号化に使用されるデータ暗号化キーの_id

  • データの暗号化に使用される暗号化アルゴリズム

データ暗号化キーには、暗号化に使用されたカスタマー マスター キーを記述するメタデータが含まれています。

ドライバーと mongoshはこのメタデータを使用して、データの自動復号を試行します。

データを自動的に復号化するには、CSFLE 対応クライアントは次の手順を実行します。

  1. 値の暗号化に使用されるデータ暗号化キーと暗号化アルゴリズムについて、復号化するフィールドのBinData lob メタデータを確認します。

  2. 指定されたデータ暗号化キーについて、現在のデータベース接続で構成されているキーヴォールト コレクションを確認します。 Key Vault コレクションに指定されたキーが含まれていない場合、自動復号は失敗し、ドライバーはエラーを返します。

  3. キーマテリアルの暗号化に使用される CMK(Customer Master Key)の データ暗号化キー メタデータを確認します。

  4. データ暗号化キーを復号化します。 このプロセスは KMS プロバイダーによって異なります。

    Amazon Web Services ( Amazon Web Services ) KMSの場合は、復号化のためにAmazon Web Services KMSインスタンスに データ暗号化キー を送信します。 CMK が存在しない場合、または接続構成で CMK へのアクセスが許可されていない場合、復号は失敗し、ドライバーは暗号化されたBinData BLOB を返します。

    Tip

    Amazon Web Services KMSを使用して自動暗号化を実行する方法については、「 Amazon Web Services でのAmazon Web Servicesクライアント側フィールドレベル暗号化の使用 」を参照してください。

    Google Cloud Platform(GCP)KMS の場合は、復号化のために GCP KMS インスタンスに データ暗号化キーを送信します 。 CMK が存在しない場合、または接続構成で CMK へのアクセスが許可されていない場合、復号は失敗し、ドライバーは暗号化されたBinData BLOB を返します。

    Tip

    Google Cloud Platform KMS を使用して自動暗号化を行う方法については、「 GCP で自動クライアント側フィールドレベル暗号化を使用 」を参照してください。

    Azure Key Vault の場合は、復号化のために Azure Key Vault インスタンスに データ暗号化キー を送信します。 CMK が存在しない場合、または接続構成で CMK へのアクセスが許可されていない場合、復号は失敗し、ドライバーは暗号化されたBinData BLOB を返します。

    Tip

    Azure Key Vault を使用して自動暗号化を行う方法については、「 Azure で自動クライアント側フィールド レベル暗号化を使用する 」を参照してください。

    KMIP 準拠の KMS の場合は、KMS から CMK を取得し、その CMK をローカルに使用してデータ暗号化キーを復号化します。 CMK が存在しない場合、または接続構成で CMK へのアクセスが許可されていない場合、復号は失敗し、ドライバーは暗号化されたBinData BLOB を返します。

    Tip

    KMIP 準拠の KMS を使用して自動暗号化を行う方法については、「 KMIP を使用した自動クライアント側フィールド レベル暗号化の使用 」を参照してください。

    ローカル キー プロバイダーの場合は、ファイルシステムから CMK を取得し、それを使用してデータ暗号化キーを復号化します。 データベース構成で指定されたローカルキーが データ暗号化キー の暗号化に使用されなかった場合、復号は失敗し、ドライバーは暗号化されたBinData BLOB を返します。

    警告

    本番環境でローカルキーファイルを保護する

    カスタマー マスター キーはリモート キー管理システム に保存することを推奨します。 ( KMS )。Queryable Encryptionの実装でリモートKMSを使用する方法については、チュートリアルガイドを参照してください。

    本番環境でローカルキー プロバイダーを使用する場合は、十分に注意し、ファイルシステムに保存しないようにしてください。 サイドカー プロセスを使用してクライアントアプリケーションにキーを挿入するか、キーを安全に保つ別のアプローチを使用することを検討してください。

  5. 復号化されたデータ暗号化キーと適切なアルゴリズムを使用して、 BinData値を復号化します。

MongoDB サーバーにアクセスでき、必要な CMK とデータ暗号化キーにアクセスできないアプリケーションは、 BinData値を復号化できません。

読み取り操作では、ドライバーは読み取り操作を発行するに、暗号化スキーマを使用してクエリ ドキュメント内のフィールド値を暗号化します。

その後、クライアント アプリケーションはBinDataメタデータを使用して、MongoDB から受信したドキュメントを自動的に復号化します。

暗号化スキーマの詳細については、「暗号化スキーマ 」を参照してください。

クライアント側のフィールドレベル暗号化のためのデータベース接続の構成方法については、「 CSFLE 用の MongoClient オプション 」を参照してください。

データ暗号化キーとカスタマー マスター キーの関係の詳細については、「暗号化キーとキーヴォールト 」を参照してください。

戻る

コンポーネント