MongoDB セキュリティ、監視、バックアップ (Mongodump)

重要な概念の 1 つは、 MongoDB データベースの管理です。データベース管理に関しては、セキュリティ、バックアップ、データベースへのアクセスなどの重要な側面はすべて重要な概念です。

MongoDB セキュリティ概要

MongoDB データベースにセキュリティ メカニズムを定義する機能があります。デフォルトでは、誰もがすべてのデータベースにオープンアクセスできるようにすることは望ましくありません。 MongoDBしたがって、何らかのセキュリティメカニズムが必要になります。 MongoDB は重要。

Following データベースにセキュリティを実装する場合のベスト プラクティスです

  1. アクセス制御を有効にする – ユーザーを作成して、すべてのアプリケーションとユーザーがデータベースにアクセスするときに何らかの認証メカニズムを持つように強制します。 MongoDB.
  2. ロールベースのアクセス制御を構成する – 場合によっては、必要となる権限を論理的にグループ化し、ロールに分類することができます。 その後、ユーザーをこれらのロールに割り当てることができます。
  3. 設定してみる MongoDB TLS や SSL などの何らかの暗号化プロトコルを使用します。これらのプロトコルは、クライアントと mongo DB 環境の間を流れるトラフィックを暗号化するために使用できます。
  4. 監査を構成する – 管理者は通常、誰が何をしているのかを把握する必要があるため、問題の分析に役立ちます。 later の上。最良の方法は、監査を有効にすることです。 MongoDB.
  5. サーバー環境上の必要なリソースにアクセスできる別のユーザー ID を使用して MongDB サーバー インスタンスを実行します。

Mongodb バックアップ手順 – mongodump

MongDB を使用する場合は、MongDB 内のデータが失われてしまう場合に備えて、常にバックアップ手順を実行することが重要です。 MongoDB 何らかの理由で破損します。

以下は内部から利用可能なバックアップメカニズムです。 MongoDB

  1. 基礎となるデータ ファイルのコピーによるバックアップ – これはおそらく最も簡単なメカニズムです。必要なのは、データ ファイルをコピーすることだけです。 MongoDB が存在し、それを別の場所 (理想的には別のサーバー) にコピーします。
  2. mongodump を使用してデータベースをバックアップする – mongodump ツールは、 MongoDB データベースを作成し、忠実度の高い BSON ファイルを作成します。考慮する必要があるのは、データ セットのボリュームが大きい場合、mongodump はリソースを非常に大量に消費する可能性があるため、この問題を軽減するにはユーティリティをセカンダリ サーバーで実行する必要があることです。
  3. MongoDB クラウドマネージャーのバックアップ – MongoDB Cloud Manager は継続的にバックアップします MongoDB レプリカ セットとシャード クラスターから oplog データを読み取ることで、 MongoDB 環境。 MongoDB Cloud Manager は、oplog データを保存することでポイント イン タイム リカバリを作成し、特定のレプリカ セットまたはシャード クラスタのリストアをいつでも作成できるようにします。

Mongodb 監視

モニタリングは、最も重要な管理活動の 1 つです。 MongoDB。これは、発生する可能性のある問題について環境を監視することで、より積極的に対応できるためです。

以下はモニタリングの実装例の一部です。

  1. モンゴスタット 挿入、クエリ、更新、削除などのデータベース操作がサーバー上で実際に発生した回数がわかります。 これにより、サーバーが処理している負荷の量がわかり、サーバーに追加のリソースが必要か、負荷を分散するために追加のサーバーが必要かがわかります。
  2. モンゴトップ の現在の読み取りおよび書き込みアクティビティを追跡し、レポートします。 MongoDB インスタンスを作成し、これらの統計をコレクションごとにレポートします。
  3. MongoDB シンプルな Web ページで診断および監視情報を公開する Web インターフェイスを提供します。ローカルサーバー上の以下の URL を参照して、Web 管理ユーティリティを開くことができます。 http://localhost:28017
  4. serverStatus コマンド、またはシェルからの db.serverStatus() は、データベースのステータスの概要を返します。tails ディスク使用量、メモリ使用量、確立された接続について MongoDB 環境など

MongoDB インデックス作成とパフォーマンスの考慮事項

  1. インデックスはどのデータベースでも非常に重要であり、検索クエリの効率を向上させるために使用できます。 MongoDB。ドキュメント内で継続的に検索を実行する場合は、検索条件で使用されるドキュメントのフィールドにインデックスを追加することをお勧めします。
  2. 返されるクエリ結果の数を常に制限するようにしてください。 ドキュメント内に 2 つのフィールド名があるが、ドキュメントから 2 つのフィールドだけを表示したいとします。 次に、クエリがすべてのフィールドではなく、必要な 2 つのフィールドのみを表示することをターゲットにしていることを確認します。
  3. 特定のフィールド値を表示する場合は、クエリではそれらのフィールドのみを使用します。 コレクション内のすべてのフィールドが必要でない場合は、クエリを実行しないでください。

構成 MongoDB Kerberos認証あり

認可ではクライアントがシステムにアクセスできるようにすることが検討されますが、認証ではクライアントがどのような種類のアクセス権を持っているかがチェックされます。 MongoDB、システムへのアクセスが許可されると。

さまざまな認証メカニズムがありますが、以下にその一部を示します。

MongoDB x.509 証明書を使用した認証

x.509 証明書を使用してクライアントを認証する – 証明書は基本的に、クライアントとクライアント間の信頼できる署名です。 MongoDB サーバー。

したがって、サーバーに接続するためにユーザー名とパスワードを入力する代わりに、クライアントとサーバーの間で証明書が受け渡されます。 MongoDB サーバ。クライアントは基本的に、サーバーへの認証のためにサーバーに渡されるクライアント証明書を持っています。各クライアント証明書は単一の証明書に対応します。 MongoDB ユーザー。したがって、各ユーザーは MongoDB に認証されるためには独自の証明書が必要です。 MongoDB サーバー。

これが確実に機能するようにするには、次のようにしますwing 手順に従う必要があります。

  1. 有効な証明書は、有効な第三者機関から購入し、 MongoDB サーバー。
  2. クライアント証明書には次のものが必要ですwing プロパティ (単一の認証局 (CA) がクライアントとサーバーの両方の証明書を発行する必要があります。クライアント証明書には次のものが含まれている必要があります)wing フィールド - keyUsage およびextendedKeyUsage。
  3. MongDB サーバーに接続する各ユーザーは、個別の証明書を持っている必要があります。

設定方法 MongoDB Kerberos認証あり

以下に設定手順を示します MongoDB Kerberos認証がオンの場合 Windows:

ステップ1) 構成 MongoDB Kerberos認証がオンの場合 Windows
Kerberos は、大規模なクライアント/サーバー環境で使用される認証メカニズムです。

これは非常に安全なメカニズムであり、パスワードが暗号化されている場合にのみ許可されます。良い、 MongoDB には、既存の Kerberos ベースのシステムに対して認証する機能があります。

ステップ2) mongod.exeサーバープロセス
次に、mongod.exe サーバー プロセスを開始します。

ステップ3) mongo.exe クライアントのプロセスと接続
次に、mongo.exe クライアント プロセスを開始し、 MongoDB サーバー。

ステップ4) ユーザーを追加します MongoDB
これは基本的に、$external データベースに対する Kerberos プリンシパル名です。 $external データベースは、次のことを伝える特別なデータベースです。 MongoDB このユーザーを独自の内部システムではなく Kerberos システムに対して認証します。

構成 MongoDB Kerberos認証あり

use $external
db.createUser(
{
	user: "user1@example.NET",

	roles:[
	{
		role: "read" , db:"Marketing"}
		
	}
		  ]
}

ステップ5) コマンドの使用を開始する
次のコマンドを使用して、Kerberos サポートを使用して mongod.exe を起動します。wing command

mongod.exe –auth –setParameter authenticationMechanisms=GSSAPI

これで、Kerberos ユーザーと Kerberos 認証を使用してデータベースに接続できるようになります。

まとめ

  • データベース内のデータが確実に安全に保たれるように、データベースにセキュリティを実装することは非常に重要です。
  • createUser コマンドを使用してデータベースにユーザーを作成できます。 ユーザーに特定のロールを割り当てて、データベース自体に対する特定の権限を与えることができます。
  • 管理者は、すべてのデータベースに対して追加することも、特定のデータベースに対してのみ追加することもできます。 これは、userAdmin または userAdminAnyDatabase ロールを付与することで実現されます。
  • 常にバックアップを行ってください MongoDB 災害が発生した場合でもデータを簡単に回復できる環境を構築します。
  • 常に監視する MongoDB よりプロアクティブに行動し、問題が発生する前に問題を確認できる環境。
  • データベースのセキュリティを強化するためのさまざまな認証メカニズムがあります。 一例として、ユーザー名とパスワードを使用する代わりに証明書を使用してユーザーを認証することが挙げられます。