MongoDB は、データのセキュリティを向上させるための一連のコンポーネントを提供します。 MongoDB ではデータ セキュリティが最も重要であるため、これらのコンポーネントを利用して危険性を軽減します。ここでは、個人またはクラウドの MongoDB サーバーのセキュリティを向上させるために使用できる 10 のヒントを紹介します。
1. 認証を有効にする — 信頼されたネットワーク上に MongoDB サーバーをデプロイする場合でも、認証を有効にすることは優れたセキュリティ対策です。ネットワークが攻撃された場合に「多層防御」を提供します。構成ファイルを編集して auth
1
auth = true
2 を有効にします。実稼働データベースをインターネットに公開しないでください。データベースへの物理的なアクセスを制限することは、非常に重要なセキュリティ対策です。必要がない場合は、運用環境データベースをインターネットに公開しないでください。攻撃者が MongoDB サーバーに物理的に接続できなければ、データは現在より安全ではなくなります。サービスをアマゾン ウェブ サービス (AWS) にデプロイする場合は、仮想プライベート クラウド (VPC) のプライベート サブネットにデータベースをデプロイする必要があります。詳細については、ブログ投稿「プライベート クラウド (VPC) への MongoDB のデプロイ」を参照してください。
3. ファイアウォールを使用する - ファイアウォールを使用すると、MongoDB サーバーへの接続を許可されるエンティティを制限できます。最善の方法は、独自のアプリケーション サーバーのみがデータベースにアクセスできるようにすることです。アマゾン ウェブ サービス (AWS) にデプロイできない場合は、「セキュリティ グループ」機能を使用してアクセスを制限できます。ファイアウォール機能をサポートしていないプロバイダーのホストにサービスを展開する場合は、「iptables」を使用してサーバーを自分で設定するだけで済みます。直面している特定の環境に合わせて iptables を構成するには、mongodb のドキュメントを参照してください。
4. キー ファイルを使用してレプリケーション サーバー クラスターを確立します。共有キー ファイルを指定して、レプリケーション クラスター内の MongoDB インスタンス間の通信を有効にします。次のように keyfile パラメーターを構成ファイルに追加します。このファイルの内容は、レプリケーション クラスター内のすべてのマシンで同じである必要があります。
1
keyFile = /srv/mongodb/keyfile
5. HTTP ステータス インターフェイスを無効にする - デフォルトでは、Mongodb はポート 28017 で http インターフェイスを実行し、「メイン」ステータス ページを提供します。運用環境ではこのインターフェイスを使用しないことをお勧めします。このインターフェイスを無効にすることをお勧めします。この http インターフェイスは、「nohttpinterface」構成設定を使用して無効にすることができます。
1
nohttpinterface = true
6. REST インターフェースを無効にする - 運用環境では MongoDB の REST インターフェースを有効にしないことをお勧めします。このインターフェイスは認証をサポートしていません。このインターフェースはデフォルトでは閉じられています。 「rest」構成オプションを使用してこのインターフェイスを開く場合は、運用システムでそれをオフにする必要があります。
1
rest = false
7.bind_ip を設定する - システムが複数のネットワーク インターフェイスを使用している場合は、「bind_ip」オプションを使用して、この設定項目に関連付けられたインターフェイスのみをリッスンするように mongodb サーバーを制限できます。デフォルトでは、mongoDB はすべてのインターフェースをバインドします。
1
bind_ip = 10.10.0.25,10.10.0.26
8. SSL を有効にする - SSL を使用しない場合、MongoDB クライアントと MongoDB サーバー間で送信されるデータはクリア テキストであり、盗聴される可能性があります。改ざんと「中間者」攻撃。インターネットなどのセキュリティで保護されていないネットワーク経由で MongoDB サーバーに接続している場合は、SSL を有効にすることが非常に重要です。
9. ロールベースの認証 - MongoDB はロールベースの認証をサポートしているため、各ユーザーが実行できるアクションをきめ細かく制御できます。ロールベースの認証を使用してデータベースへのアクセスを制限し、すべてのユーザーが管理者にならないようにします。詳細については、ロールのドキュメントを参照してください。
10. エンタープライズレベルの MongoDB と kerberos - エンタープライズレベルの mongodb は kerberos 認定を継承します。詳細については、mongodb のドキュメントを参照してください。ユーザー名/パスワードベースのシステムは本質的に安全ではないため、可能であれば Kerberos ベースの認証を使用してください。
以上がMongoDB のセキュリティを向上させる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。