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

主な機能

項目一覧

  • Overview
  • クライアントサイドのフィールド レベル暗号化
  • セキュリティに関する考慮事項
  • その他のセキュリティ メカニズム
  • ロールベースのアクセス制御
  • 保管時の暗号化
  • トランスポート暗号化 (TLS/SSL)
  • 機能の比較
  • Scenario
  • 解決法
  • 詳細

このページでは、クライアント側フィールド レベル暗号化(CSFLE)のセキュリティ上の利点と、CSFLE が MongoDB でサポートされている他のセキュリティ メカニズムと比較する方法について説明します。 また、データの保護における CSFLE の値を示す架空のシナリオを表示することもできます。

クライアント側フィールド レベル暗号化(CSFLE)は、クライアント アプリケーションがネットワーク経由でデータを転送する前にデータを暗号化できる MongoDB の機能です。 機密データはクライアントによって透過的に暗号化および復号化され、暗号化された形式でのみサーバーとの間で通信されます。 CSFLE は、次のシナリオで暗号化されたフィールドを安全に維持します。

  • データベース スーパーユーザーによる暗号化されたフィールドへの直接アクセス

  • サーバーのメモリを読み取ることで暗号化されたフィールドにアクセスする

  • 安全でないネットワーク経由で暗号化されたフィールドのキャプチャ

  • データベースまたはバックアップ ファイルの読み取りを使用して、ディスク上の暗号化されたフィールドにアクセスする

すべてのクライアントが機密性のないデータ フィールドにアクセスできますが、暗号化されたデータ フィールドの読み取りと書込みができるのは適切に構成された CSFLE クライアントのみです。

重要

リモート キー管理システム

CSFLE を本番環境で使用する場合は、暗号化キーを保存するためにリモート KMS(Key Management System)を使用する必要があります。

CSFLE でリモート KMS を使用する方法を示すステップ別ガイドについては、「チュートリアル 」を参照してください。

サポートされているすべての KMS プロバイダーのリストを表示するには、「 CSFLE KMS プロバイダー 」を参照してください。

リモート KMS を使用する必要がある理由の詳細については、「リモート キー管理システムを使用する理由 」を参照してください。

  • CSFLE は、カスタマー マスター キーまたはデータ暗号化キーにアクセスする攻撃者に対する暗号化の整合性の保証を提供しません。

  • CSFLE では、暗号化されたデータを含むコレクションへの任意の書込み (write) アクセス権を持つノードに対して、暗号化の整合性を保証しません。

  • MongoDB はスキーマ検証を使用して、コレクション内の特定のフィールドの暗号化を強制します。 クライアント側のスキーマがない場合、クライアントはコレクションのサーバー側スキーマをダウンロードして、暗号化するフィールドを決定します。 この問題を回避するには、 クライアント側のスキーマ検証 を使用します。

    CSFLE では、スキーマの整合性を検証するメカニズムが提供されていないため、サーバー側のスキーマに依存するということは、サーバーのスキーマが変更されていないことを信頼することを意味します。 攻撃者がサーバーを侵害した場合、スキーマを変更して、以前に暗号化されたフィールドに暗号化のラベルが付けられなくなるのです。 これにより、クライアントはそのフィールドのプレーンテキスト値を送信します。

    クライアントとサーバー側スキーマの CSFLE 構成の例については、「 CSFLE サーバー側フィールド レベル暗号化強制 」を参照してください。

このセクションでは、MongoDB でサポートされている次のセキュリティ メカニズムについて説明し、そのユースケースと制限について説明します。

  • ロールベースのアクセス制御

  • 保管時の暗号化

  • トランスポート暗号化 (TLS/SSL)

ロールベースのアクセス制御は、管理者がユーザーに対するコレクション レベルの権限を付与および制限できるセキュリティ メカニズムです。 適切なロールの定義と割り当てにより、このソリューションは誤ってデータを公開し、アクセスを防止します。

ロールベースのアクセス制御では、次のシナリオを保護できません。

  • 安全でないネットワーク経由でのデータのキャプチャ

  • データベースまたはバックアップ ファイルの読み取りによるディスク上のデータへのアクセス

  • サーバーのメモリを読み取ることでデータにアクセスする

  • データベース スーパーユーザーによるデータへの直接アクセス

詳細については、「ロールベースのアクセス制御 」を参照してください。

保管時の暗号化は、ディスク上のデータベースファイルを暗号化するメカニズムです。 このメカニズムにより、データベース認証情報を持たないが、データベースをホストしているコンピューターにアクセスできるユーザーは、データを表示できなくなります。

このメカニズムでは、次のシナリオからデータを保護しません。

  • 安全でないネットワーク経由でのデータのキャプチャ

  • サーバーのメモリを読み取ることでデータにアクセスする

  • データベース スーパーユーザーによるデータへの直接アクセス

詳細については、「保存時の暗号化 」を参照してください。

TLS/SSL を使用したトランスポート暗号化により、ネットワーク経由でデータが暗号化されます。 TLS/SSL は、安全でないネットワークを移動する際にデータを保護しますが、特権ユーザーからのデータやディスク上にあるデータを保護することはできません。

詳しくは、「 TLS/SSL を使用したトランスポート暗号化」を参照してください。

次の図は、MongoDB がサポートするセキュリティ機能と、それらが対処する潜在的なセキュリティ脆弱性を示しています。

MongoDB のセキュリティ機能とそれが対処する潜在的な脆弱性を説明する図

重要

メカニズムを併用する

本番環境の配置を保護するには、ロールベースのアクセス制御、保管時の暗号化、トランスポート暗号化、オプションで 使用中の暗号化 のセキュリティ メカニズムを併用します。 CSFLE と Queryable Encryption の両方を使用して、同じコレクション内の異なるフィールドを暗号化することはできません。

Queryable Encryption の詳細については、「 Queryable Encryption の機能 」を参照してください。

次の架空のシナリオは、アプリケーションのデータを保護する際のクライアント側フィールド レベル暗号化(CSFLE)の値と、CSFLE がこのガイドで説明されている他のセキュリティ メカニズムとどのように相互作用するのかを示しています。

このシナリオでは、架空の会社MedcoMDの従業員の個人情報、保証情報、医療レコードを保存する医療マネジメント システムで機密データを保護します。 医療データはいずれも公開されず、ソーシャル セキュリティ番号(SSN、米国政府が発行する ID 番号)、保証適用番号、バイナリ サインの測定値などの特定のデータは、特に機密性が高く、プライバシー コンプライアンスが対象となります。 データが機密かつ安全に保たれることは、会社と従業員にとって重要です。

MedcoMD では、次のユースケースを満たすためにこのシステムが必要です。

  • システムを使用して、連絡先情報を使用してユーザーの身元を確認します。

  • レシーバーは、クライアントの保証ポリシープロバイダーを表示できますが、ポリシー番号は表示できません。

  • レプリケーション担当者は、従業員の医療レコードにアクセスできません。

MedcoMDは、次のいずれかの方法で機密データを公開することにも懸念されています。

  • 受信者の一般表示画面でのデータの誤った公開。

  • データベース管理者などのスーパーユーザーによるデータベースへの直接アクセス。

  • 安全でないネットワーク経由でのデータのキャプチャ。

  • データベース サーバーのメモリを読み取ることでデータにアクセスします。

  • データベースまたはバックアップ ファイルを読み取ることでデータにアクセスします。

MedcoMD は、メトリクス マネジメント システムの機能とアクセス制限のバランスを取るためにできることは何ですか。

MedcoMD は、ユースケースを満たし、機密性の高い医療データの公開を防ぐために、次のセキュリティ メカニズムを使用しています。

  • ネットワーク上を移動する際にデータを保護するためのトランスポート暗号化(TLS/SSL)

  • データベースまたはバックアップ ファイルの読み取りによるデータの公開を防ぐための保管時の暗号化

  • ロールベースのアクセス制御は、データベースユーザーがタスクを実行するために必要なコレクションへのアクセスを制限します。

  • CSFLE で機密フィールドを暗号化すると、次のユースケースと制約を満たすことができます。

    • CSFLE で暗号化されたデータは暗号化されていない形式でデータベース サーバーに存在しないため、サーバー メモリからのデータの読み取りは防止します。

    • CSFLE が有効になっていないクライアントを使用して受信者の ID を確認し、受信者の公開画面に機密データが誤って表示されるのを防ぐことができます。

    • CSFLE 対応のクライアントを持つ従業員を提供することで、従業員がオフィスで機密データをプライベートで表示できるようにします。

MongoDB デプロイを保護するために実装する必要があるセキュリティ対策のリストを表示するには、セキュリティ チェックリスト を参照してください。

CSFLE の使用を開始するには、「クイック スタート」を参照してください。

戻る

クライアントサイドのフィールド レベル暗号化