sql >> データベース >  >> NoSQL >> MongoDB

MongoDBのセキュリティを向上させるための10のヒント

    MongoDBは、データのセキュリティを向上させるための多くの構造を提供します。 MongoDBのデータのセキュリティは最優先事項です。したがって、これらの構造を活用して表面積を減らすことが重要です。オンプレミスとクラウドでMongoDBサーバーのセキュリティを向上させるために使用できる10のヒントを次に示します。

    1. 認証を有効にする

      信頼できるネットワークにMongoDBサーバーをデプロイした場合でも、認証を有効にすることをお勧めします。ネットワークが危険にさらされた場合に「多層防御」を提供します。 MongoDB構成ファイルを編集して、認証を有効にします:

      auth = true
      
    2. 本番データベースをインターネットに公開しないでください

      データベースへの物理的なアクセスを制限することは、セキュリティの重要な側面です。必要がない場合は、本番データベースをインターネットに公開しないでください。侵害が発生した場合、攻撃者がMongoDBサーバーに物理的に接続できない場合、データははるかに安全になります。 AWSを使用している場合は、データベースを仮想プライベートクラウド(VPC)サブネットに配置できます。詳細については、ブログ投稿「MongoDBをVPCにデプロイする」をお読みください。

    3. ファイアウォールを使用する

      ファイアウォールを使用して、MongoDBサーバーへの接続を許可される他のエンティティを制限します。ベストプラクティスは、アプリケーションサーバーのみにデータベースへのアクセスを許可することです。 AWSでホストされている場合は、「セキュリティグループ」を使用してアクセスを制限します。ファイアウォール構造をサポートしていないプロバイダーでホストされている場合は、「iptables」を使用して自分で簡単に構成できます。シナリオのiptablesを構成するには、MongoDBのドキュメントを参照してください。

    4. キーファイルを使用してレプリカセットを設定します

      共有キーファイルを指定して、レプリカセット内のMongoDBインスタンス間の通信を有効にします。これを有効にするには、以下に概説するように、keyfileパラメーターを構成ファイルに追加します。ファイルの内容は、すべてのマシンで同じである必要があります:

      keyFile = /srv/mongodb/keyfile
      
    5. HTTPステータスインターフェイスを無効にする

      MongoDBは、デフォルトで、「ホーム」ステータスページを提供するポート28017で実行されるhttpインターフェースを提供します。このインターフェースは実稼働での使用は推奨されておらず、無効にすることをお勧めします。 「nohttpinterface」構成設定を使用して、httpインターフェースを無効にします。

      nohttpinterface = true
      
    6. RESTインターフェースを無効にする

      MongoDBRESTインターフェースは本番環境には推奨されません。認証をサポートしておらず、デフォルトでオフになっています。 「rest」構成オプションを使用してオンにした場合は、実稼働システムではオフにする必要があります。

      rest = false
      
    7. bind_ipを構成する

      システムに複数のネットワークインターフェイスがある場合は、「bind_ip」オプションを使用して、関連するインターフェイスでのみリッスンするようにMongoDBサーバーを制限できます。デフォルトでは、MongoDBはすべてのインターフェースにバインドします:

      bind_ip = 10.10.0.25,10.10.0.26
      
    8. SSLを有効にする

      SSLを使用しない場合、データは暗号化されていない状態でMongoクライアントとMongoサーバー間を移動し、盗聴、改ざん、「中間者」攻撃の影響を受けやすくなります。これは、インターネットなどのセキュリティで保護されていないネットワークを介してMongoDBサーバーに接続している場合に特に重要です。

    9. 役割ベースの承認

      MongoDBはロールベースの認証をサポートしており、各ユーザーが実行できるアクションをきめ細かく制御できます。すべてのユーザーを管理者にするのではなく、役割ベースの構成を使用してアクセスを制限します。詳細については、役割のドキュメントを参照してください。

    10. エンタープライズMongoDBとKerberos

      Enterprise MongoDBは、認証のためにKerberosと統合されています。詳細については、MongoDBのドキュメントを参照してください。ユーザー名/パスワードシステムは本質的に安全ではありません。可能であれば、カーブベースの認証を使用してください。

    ScaleGridでは、すべての展開でデフォルトでベストプラクティスのセキュリティ構成をサポートするよう努めています。 SSLを使用できるようにし、データベースをインターネットに公開しないようにします。ご不明な点がございましたら、[email protected]までメールでお問い合わせください。


    1. Mongodbクエリの特定の月|年は日付ではありません

    2. HBaseサンプルテーブル

    3. redis-cliは127.0.0.1にリダイレクトされました

    4. MongoDB-コードでシャットダウン:62