MongoDB セキュリティ、監視、バックアップ (Mongodump)
⚡ スマートサマリー
MongoDB セキュリティ、監視、バックアップは、データの安全性、可用性、復旧性を確保するためのデータベース管理の中核概念です。このリソースでは、セキュリティのベストプラクティス、mongodumpによるバックアップ、監視ツール、インデックス作成のヒント、認証メカニズム、x.509証明書、および構成について説明します。 MongoDB Kerberos認証を使用。

重要な概念の1つは MongoDB データベース管理とは、データベースの運用管理のことです。セキュリティ、バックアップ、データベースへのアクセスといった重要な側面は、データベース管理においてすべて重要な概念となります。
MongoDB セキュリティ概要
MongoDB データベースのセキュリティメカニズムを定義する機能があります。デフォルトでは、すべてのデータベースに誰もが自由にアクセスできる状態は望ましくありません。 MongoDBしたがって、何らかのセキュリティメカニズムが必要になります。 MongoDB は重要。
データベースにセキュリティを実装する際のベストプラクティスは以下のとおりです。
- アクセス制御を有効にする – すべてのアプリケーションとユーザーがデータベースにアクセスする際に何らかの認証メカニズムを強制されるようにユーザーを作成します MongoDB.
- ロールベースのアクセス制御を設定する – 時には論理的なグループが存在するping 必要となる可能性のある権限を、役割ごとにまとめることができます。そして、これらの役割にユーザーを割り当てることができます。
- 設定してみる MongoDB TLSやSSLなどの暗号化プロトコルを使用する。これらのプロトコルは、クライアントとサーバー間で流れるトラフィックを暗号化するために使用できる。 MongoDB 環境。
- 監査の設定 – 管理者は通常、誰が何をしているかを知る必要があり、これは後で問題を分析するのに役立ちます。最良の方法は、監査を有効にすることです。 MongoDB.
- 実行する MongoDB サーバーインスタンスには、サーバー環境上の必要なリソースのみにアクセスできる、個別のユーザーIDが割り当てられます。
MongoDB バックアップ手順 – mongodump
で作業する場合 MongoDBそのため、データが失われた場合に備えて、常にバックアップ手順を確立しておくことが重要です。 MongoDB 何らかの理由で破損した場合。以下は、内部で利用可能なバックアップメカニズムです。 MongoDB:
- 基礎となるデータ ファイルのコピーによるバックアップ これはおそらく最も簡単なメカニズムです。必要なのは、データファイルをコピーすることだけです。 MongoDB それらを既存の場所にコピーし、理想的には別のサーバーにコピーします。
- mongodump を使用してデータベースをバックアップする – mongodump ツールは、 MongoDB データベースからデータを取り出し、高精度のBSONファイルを作成します。ただし、データセットの容量が大きい場合、mongodumpは非常に多くのリソースを消費する可能性があるため、この問題を軽減するには、このユーティリティをセカンダリサーバーで実行する必要があります。
- MongoDB クラウドマネージャーのバックアップ – MongoDB Cloud Manager は継続的にバックアップします MongoDB レプリカセットとシャードクラスタを、 MongoDB 環境。 MongoDB Cloud Managerは、oplogデータを保存することで特定時点の復旧を実現し、特定のレプリカセットまたはシャーディングされたクラスターに対して任意の時点でのリストアを実行できます。
MongoDB 監視
モニタリングは、最も重要な管理活動の 1 つです。 MongoDBこれは、発生する可能性のある問題を事前に監視することで、より積極的に対応できるためです。以下に、監視を実装する例をいくつか示します。
- モンゴスタット この機能を使うと、挿入、クエリ、更新、削除といったデータベース操作がサーバー上で実際に何回行われたかがわかります。これにより、サーバーが処理している負荷を把握でき、サーバーに追加のリソースが必要かどうか、あるいは負荷分散のために追加のサーバーが必要かどうかが判断できます。
- モンゴトップ tracks は、現在の読み取りおよび書き込みアクティビティを報告します。 MongoDB インスタンスを作成し、これらの統計をコレクションごとにレポートします。
- MongoDB 診断情報と監視情報をシンプルなウェブページで表示するウェブインターフェースを提供します。
- serverStatusコマンド、またはシェルからのdb.serverStatus()は、ディスク使用量、メモリ使用量、データベースへの接続確立状況など、データベースのステータスの概要を返します。 MongoDB 環境、その他。
MongoDB インデックス作成とパフォーマンスの考慮事項
- インデックスはどのデータベースでも非常に重要であり、検索クエリの効率を向上させるために使用できます。 MongoDB文書内で継続的に検索を実行する場合は、検索条件で使用される文書のフィールドにインデックスを追加することをお勧めします。
- クエリ結果の返される数を常に制限するように心がけましょう。例えば、ドキュメントに複数のフィールド名が含まれている場合でも、表示したいフィールドが2つだけであれば、クエリは必要な2つのフィールドのみを表示するように設定し、すべてのフィールドを表示しないようにしてください。
- 特定のフィールド値を表示する場合は、クエリではそれらのフィールドのみを使用します。 コレクション内のすべてのフィールドが必要でない場合は、クエリを実行しないでください。
MongoDB 認証メカニズム
認可はクライアントのシステムへのアクセスを保証することに焦点を当てているのに対し、認証はクライアントがどのような種類のアクセス権限を持っているかをチェックします。 MongoDB システムへのアクセスが許可されると、様々な認証メカニズムが利用可能になります。以下にその一部を示します。
MongoDB x.509 証明書を使用した認証
クライアントの認証には x.509 証明書を使用します。証明書は基本的にクライアントとサーバー間の信頼できる署名です。 MongoDB サーバー。
したがって、サーバーに接続するためにユーザー名とパスワードを入力する代わりに、クライアントとサーバーの間で証明書が受け渡されます。 MongoDB サーバー。クライアントは基本的にクライアント証明書を持ち、それをサーバーに渡してサーバーへの認証を行います。各クライアント証明書は単一の MongoDB ユーザー。したがって、各ユーザーは MongoDB 認証を受けるには、独自の証明書が必要です。 MongoDB サーバー。
これが確実に機能するためには、以下の手順に従う必要があります。
- 有効な証明書は、有効な第三者機関から購入し、インストールする必要があります。 MongoDB サーバー。
- クライアント証明書には、以下の特性が備わっている必要があります。単一の認証局(CA)がクライアントとサーバーの両方の証明書を発行すること、およびクライアント証明書にkeyUsageフィールドとextendedKeyUsageフィールドが含まれていること。
- 接続する各ユーザーは MongoDB サーバーには別途証明書が必要です。
設定方法 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
基本的に Kerberos プリンシパル名であるユーザーを $external データベースに追加します。$external データベースは、特別なデータベースであり、 MongoDB このユーザーを独自の内部システムではなく Kerberos システムに対して認証します。
use $external db.createUser( { user: "user1@example.NET", roles: [ { role: "read", db: "Marketing" } ] } )
ステップ5) コマンドの使用を開始する
以下のコマンドを使用して、Kerberos認証をサポートした状態でmongod.exeを起動します。
mongod.exe --auth --setParameter authenticationMechanisms=GSSAPI
これで、Kerberos ユーザーと Kerberos 認証を使用してデータベースに接続できるようになります。

