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

自己管理型配置のセキュリティ チェックリスト

このドキュメントでは、MongoDB インストールを保護するために実装する必要があるセキュリティ対策の一覧を提供します。このリストは網羅的なものではありません。

  • アクセス制御を有効にして、認証メカニズムを指定します。

    MongoDB Community は、クライアントが ID を確認するために使用できるさまざまな認証メカニズムをサポートしています。

    前述のメカニズムに加えて、MongoDB Atlas と MongoDB Enterprise は次のメカニズムをサポートしています。

    これらのメカニズムにより、MongoDB を既存の認証システムに統合できます。

Tip

以下も参照してください。

  • ユーザー管理者最初に作成し、その後で他のユーザーを追加します。システムにアクセスする各ユーザーまたはアプリケーションごとに、ユニークな MongoDB ユーザーを作成します。

  • 最小権限の原則に従います。各ユーザーに必要なアクセス権のみを厳密に定義するロールを作成します。その後ユーザーを作成し、各自の業務に必要なロールのみを割り当てます。ユーザーは、人の場合とクライアント アプリケーションの場合があります。

    注意

    ユーザーは複数の異なるデータベースにわたって権限を持つことができます。あるユーザーが複数のデータベースに対する権限を必要とする場合は、別個のデータベースでユーザーを何度も作成するのではなく、ユーザーを1件だけ作成し、該当するデータベースの権限を付与する複数のロールを割り当てます。

  • すべての受信接続と送信接続に TLS/SSL を使用するように MongoDB を設定します。TLS/SSL を使用して、MongoDB 配置のmongodmongosのコンポーネント間、およびすべてのアプリケーションと MongoDB 間の通信を暗号化します。

    MongoDB はネイティブ TLS/SSL OS ライブラリを使用します。

    プラットフォーム
    TLS/SSL ライブラリ
    Windows
    セキュア チャネル(Schannel)
    Linux/BSD
    OpenSSL
    MacOS
    セキュア トランスポート

Tip

以下も参照してください。

  • WiredTiger ストレージ エンジンに標準搭載されている保管時の暗号化で、ストレージ層のデータを暗号化することができます。

  • WiredTiger で保存時の暗号化を使用しない場合、ファイルシステム、デバイス、または物理的な暗号化(dm-crypt など)を使用して、それぞれのホスト上で MongoDB のデータを暗号化する必要があります。また、ファイルシステムの権限を使用した MongoDB データの保護も必要です。MongoDB データには、データファイル、構成ファイル、監査ログ、鍵ファイルが含まれます。

  • Queryable Encryption またはクライアント側のフィールドレベル暗号化使用すると、データをネットワーク経由でサーバーに送信する前に、ドキュメント内のフィールドをアプリケーション側で暗号化できます。

  • ログを収集し中央ログストアに保管します。これらのログには、送信元 IP アドレスを含むデータベース認証の試行記録が含まれます。

  • MongoDB は確実に信頼できるネットワーク環境で実行し、MongoDB インスタンスの受信トラフィックと送信トラフィックを制御できるようにファイアウォールまたはセキュリティグループを設定します。

  • SSH ルートへのダイレクトアクセスは無効にします。

  • MongoDB インスタンスが利用できるネットワークインターフェイスとポートへのアクセスは、信頼できるクライアントのみに許可します。

Tip

以下も参照してください。

  • データベースの構成とデータへのアクセスと変更を追跡します。 MongoDB Enterprise には、MongoDB インスタンス上のシステム イベント(ユーザー操作や接続イベントなど)を記録できるシステム監査機能が備わっています。これらの監査記録によって、フォレンジック分析が可能になり、管理者は適切な管理を行うことができます。認証イベントなど、特定のイベントのみを記録するようにフィルターを設定できます。

  • 専用のオペレーティングシステム ユーザーアカウントを使用して MongoDB プロセスを実行します。このアカウントにはデータへのアクセス権限を付与し、不要な権限は与えないようにします。

Tip

以下も参照してください。

  • MongoDB では、次のとおり一部のサーバーサイドでの操作で JavaScript コードの実行をサポートしています。mapReduce$where$accumulator 、および$function。これらの操作を使用しない場合は --noscripting オプションを使用してサーバーサイドのスクリプトを無効にします。

  • 入力検証は有効にしておきます。MongoDB では net.wireObjectCheck 設定を通じてデフォルトで入力検証が有効にされています。これにより mongodインスタンスによって保存されるすべてのドキュメントが、確実に有効な BSON となるようにします。

  • STIG(Security Technical Implementation Guide、セキュリティ技術実装ガイド)には、米国国防総省内でのデプロイに関するセキュリティ ガイドラインが含まれています。MongoDB Inc. はリクエストに応じて STIG を提供します。

  • HIPAA またはPCI-DSS への準拠を必要とするアプリケーションの場合、MongoDB の主要なセキュリティ機能を使用して準拠したアプリケーション インフラストラクチャを構築する方法の詳細については、「 MongoDB セキュリティ リファレンス アーキテクチャ」を参照してください。

ウイルス対策 (AV) スキャナーまたはエンドポイント検出および応答 (EDR) スキャナーを使用する場合は、database storage pathdatabase log path をスキャンから除外するように設定します。

database storage path 内のデータファイルは圧縮されています。さらに、暗号化されたストレージ エンジンを使用する場合は、データファイルも暗号化されます。これらのファイルをスキャンする際の I/O と CPU のコストによって、パフォーマンスが大幅に低下するおそれがあり、またセキュリティ上のメリットもありません。

database storage path および database log path のディレクトリを除外しないと、重要なファイルがスキャナーによって隔離または削除されるおそれがあります。ファイルがの欠損または隔離が原因で、データベースが破損し、MongoDB インスタンスがクラッシュする可能性があります。

  • MongoDB 製品の CVE を定期的に確認し、製品をアップグレードしてください。

  • MongoDB のサポート終了日を確認し、必要に応じて MongoDB のインストールをアップグレードしてください。一般的には、最新バージョンを使用するようにしてください。

  • 情報セキュリティマネジメントシステムのポリシーと手順は、MongoDB インストールも対象とし、下記の行動の実施を含めるようにします。

    • マシンに定期的にパッチを適用すること。

    • MongoDB が誤ってインターネットに公開されるのを防ぐため、ポリシー/手順の変更、特にネットワーク ルールの変更を検討すること。

    • MongoDB のデータベースユーザーを検討し、定期的に入れ替えること。

MongoDB 製品のセキュリティ バグを特定したと思われる場合には、MongoDB バグ送信フォームから問題の報告をお願いします。

戻る

セキュリティ