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

MongoDBをリモートで管理するためのヒント

    Covid-19のパンデミックのためにリモートで作業することは、孤立したインフラストラクチャの重要性が増すことを意味します。より具体的には、内部ネットワークを介してのみアクセスできるが、外部からの許可された人々がいつでもどこでもシステムにアクセスできる方法でアクセスできるもの。

    この記事では、データベースの管理中に安全なアクセスを確保するためにMongoDBで実装する必要のあるいくつかの基本的な手順を共有します。

    MongoDBの保護

    MongoDBデータベースにリモートでアクセスする前に、環境の「強化」を実行する必要があります。インフラストラクチャ側で次のように設定します。

    MongoDB認証を有効にする

    この機能は、内部ネットワークまたは外部ネットワークのどちらからMongoDBデータベースにアクセスするかに関係なく、有効にするために必須です。承認を有効にする前に、まずMongoDBで管理者ユーザーを作成する必要があります。以下のコマンドを実行して、mongoDBサーバーの1つに管理者ユーザーを作成できます。

    $ mongo
    
    > use admin
    
    > db.createUser(
    
          {
    
              user: "admin",
    
              pwd: "youdontknowmyp4ssw0rd",
    
              roles: [ "root" ]
    
          }
    
      );

    上記のコマンドは、root権限を持つadminという新しいユーザーを作成します。 /etc/mongod.confファイルを開き、次の行を追加することで、MongoDB認証機能を有効にできます。

      security:
    
       authorization: 'enabled'

    変更を適用するには、mongoDBサービスを再起動することを忘れないでください。上記のコマンドは、データベースへのアクセスを制限します。ログインに適格なアクセス資格情報を持っている人だけです。

    セットアップの役割と権限

    MongoDBへのアクセスの誤用を防ぐために、いくつかのロールとその特権を作成することで、ロールベースのアクセスを実装できます。

    データベースにアクセスし、各個人のニーズと責任を理解する必要があるユーザーのリストがあることを確認してください。ロールを作成し、これらの作成されたロールに特権を割り当てます。その後、責任に基づいてユーザーを役割に割り当てることができます。

    このアプローチは、権限の乱用を最小限に抑え、望ましくないことが起こったときにすぐに役割とユーザーを特定するのに役立ちます。

    SSL/TLS接続を構成する

    MongoDBは、転送中のデータを保護するためにSSL/TLS接続をサポートしています。これを実装するには、独自のSSLキーを生成する必要があります。opensslを使用して生成できます。 SSL / TLSサポートを有効にするには、/ etc / mongod.confファイルを編集して、次のパラメーターを追加します。

      net:
    
          tls:
    
             mode: requireTLS
    
             certificateKeyFile: /etc/mongo/ssl/mongodb.pem

    これらのパラメーターを追加した後、MongoDBサービスを再起動する必要があります。 MongoDBレプリカセットアーキテクチャを使用している場合は、それらを各ノードに適用する必要があります。 SSLは、アプリケーション側からでもクライアントから直接でも、クライアントがMongoDBにアクセスするときにも必要です。

    本番環境で使用する場合は、単一の認証局によって生成および署名された有効な証明書を使用する必要があります。あなたまたはあなたの組織は、独立した認証局として証明書を生成および維持することも、サードパーティのTLS/SSLベンダーによって生成された証明書を使用することもできます。信頼できるネットワークでない限り、自己署名証明書を使用しないでください。

    データベースポートを制限する

    ファイアウォールサーバーまたはファイアウォールアプライアンスでMongoDBポートのみが開かれていることを確認し、他のポートが開いていないことを確認する必要があります。

    MongoDB接続の保護

    パブリックインターネットを介したリモート接続には、ローカルユーザーからデータベースサーバーに、またはその逆にデータが送信されるリスクがあります。攻撃者は相互接続を中断できます。この場合、MITM(Min-in-The-Middle)攻撃として知られています。データベースをリモートで管理/管理する場合、接続の保護は非常に必要です。データベースへのアクセスを保護するために適用できるいくつかの事項は次のとおりです。

    プライベートネットワークアクセス

    VPN(仮想プライベートネットワーク)は、外部からインフラストラクチャに安全にアクセスするための基本的なものの1つです。 VPNは、パブリックネットワークを使用してリモートサイトにアクセスするプライベートネットワークです。 VPNのセットアップには、プライベートネットワーク側で準備する必要のあるハードウェアが必要です。また、クライアントには、プライベートネットワークへのアクセスをサポートするVPNソフトウェアも必要です。

    VPNを使用する以外に、MongoDBサーバーにアクセスする別の方法は、SSH経由でデータベースポートをポート転送するか、SSHトンネリングとして知られています。

    クライアントからデータベースサーバーへのSSL/TLSを使用する

    VPNまたはSSHトンネリングを使用した安全なアクセスの実装に加えて、MongoDB側で以前に構成されたSSL/TLSを使用できます。必要なのは、所有しているSSLキーだけで、SSLキーを使用してデータベースに接続してみてください。

    データベース監視を有効にする 監視サービスがデータベースの現在の状態を理解できるようにすることが不可欠です。監視サーバーは、SSL / TLSが有効になっているパブリックドメインの下にインストールできるため、ブラウザへの自動アクセスにはHTTPSを使用できます。

    結論

    自宅で仕事をするのは本当に楽しいです。子供と交流すると同時に、データベースを監視することができます。データベースにリモートアクセスするときに攻撃を受けたりデータが盗まれたりしないように、上記のガイドラインに従う必要があります。


    1. PyMongoを使用してPandasデータフレームをmongodbに挿入します

    2. MongoDBインデックスビルド–ユーザーが新しいビルドをトリガーできないようにする

    3. タイムエクスプレスとredisセッションの有効期限

    4. MongoDBシェルとサーバーが一致しません