MongoDBは、過去18か月で目覚ましい進歩を遂げました。最も重要な改善が見られたMongoDB領域の1つは、セキュリティです。本番データベースでは、セキュリティが非常に重要です。既存のリレーショナルデータベースは、データベース管理者(DBA)がデータベースのセキュリティを管理するのに役立つ多くのノブとコントロールを提供し、MongoDBも同様の場所に到達しています。この投稿では、認証、承認、監査の分野でのセキュリティ機能について詳しく説明します。
-
認証
MongoDBは、データベースへのユーザー接続を認証するためのさまざまなメカニズムを提供します。セキュリティと管理の最適なバランスを提供するメカニズムを選択してください。オプションですが、すべての本番システムで認証をオンにすることをお勧めします。
-
チャレンジレスポンス認証(MongoDB-CR)
これは、従来のユーザー名/パスワードベースの認証です。ユーザーは、データベースのスコープまたはクラスター全体で作成できます。ユーザーが特定のデータベースのデータにのみアクセスする必要がある場合は、そのデータベースに固有のユーザーのみを作成することをお勧めします。管理者はクラスターレベルのアクセスを制限する必要があります。
-
X.509証明書認証
ユーザーは、X.509証明書を使用してMongoDBデータベースに対して認証できます。これを行うには、MongoDBサーバーでSSLを有効にする必要があります。デフォルトでは、MongoDBのコミュニティビルドではSSLが有効になっていません。 Enterpriseエディションを使用するには、独自のビルドをロールアウトするか、サインアップする必要があります。一意のサブジェクトを持つX.509証明書ごとにMongoDBでユーザーを作成できます。詳細な手順については、MongoDBX.509証明書の設定を参照してください。
-
Kerberos認証
MongoDBのエンタープライズビルドは、クライアントサーバー認証の業界標準であるKerberosを使用した認証をサポートしています。たとえば、Active Directoryがインストールされている企業の場合、UseはKerberos認証メカニズムを使用してユーザーを認証できます。これにより、ユーザー名、パスワード、または証明書を管理する手間が省けます。 MongoDBをActiveDirectoryと統合する手順については、ここをクリックしてください。
-
-
承認
認証システムは、ユーザーが認証を完了した後に実行できる操作を決定します。 MongoDBは、役割ベースのアクセス制御(RBAC)モデルをサポートしています。各ユーザーには、実行を許可されている操作を決定する特定の役割が割り当てられています。 MongoDBには一連の組み込みの役割があり、独自のカスタム役割を作成することもできます。各ロールには、リソースとそのリソースで許可されている操作をペアにする一連の特権が割り当てられます。 MongoDBは、次のスコープで組み込みの役割を提供します。
-
データベースユーザーの役割
読み取り、読み取り/書き込み
-
データベース管理者(DBA)の役割
dbAdmin、dbOwner、userAdmin
-
クラスター管理者の役割
clusterAdmin、clusterManager、clusterMonitor、hostManager
-
役割のバックアップと復元
バックアップ、復元
-
すべてのデータベースの役割
readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase
-
スーパーユーザーの役割
ルート
ユーザーに割り当てる必要のある役割の詳細については、組み込みの役割のドキュメントを参照してください。
-
-
監査
MongoDB Enterprise 2.6リリースでは、監査のサポートが追加されました。ユーザーログイン、DDLの変更、レプリカセットの構成の変更など、興味深いMongoDB操作の監査イベントを生成するようにMongoDBサーバーを構成できます。これにより、既存のエンタープライズ監査ツールを使用して、必要なイベントを取得して処理できます。詳細については、監査できるMongoDBイベントのリストを参照してください。
MongoDBデータベースのセキュリティを向上させるためのその他のヒントについては、他のブログ投稿–MongoDBのセキュリティを向上させるための10のヒントを参照してください。