数か月前に MongoDB のセキュリティに関するドキュメントをいくつか作成しましたが、ここで見つけることができます。これが出発点になるはずです。
- 私が読んだことからわかるように、MongoDb はデフォルトでは統合セキュリティをまったくサポートしていません。パスワード付きの独自のユーザー データベースを持ち、役割も持たないはずですよね?
MongoDB 2.2 までは、認証と認可はすべてローカルで行われていました。2.2 では、制限された RBAC (Role Based Access)、つまり「読み取り」と「書き込み」の 2 つの役割があり、「書き込み」はそのデータベースですべてを実行できます。管理者。
2.4 では、新しいロールによって状況が変わります。
name description of privilege
read ability to query data in any collection in the database, other than 'system.users', and also ability to run any command without an A or W attribute
readWrite everything permitted by 'read' privilege, and also the ability to insert, update,
or remove documents or indexes in any collection other than 'system.users', and also the ability to run any command without an A attribute
userAdmin ability to read and write the 'system.users' collection
dbAdmin ability to run admin commands affecting a single database; see list below
serverAdmin ability to run admin commands affecting the entire database server; Can only be set on admin database; see discussion
clusterAdmin admin commands for a cluster of shards or a replica set; Can only be set on admin database
ここに記載されているとおり。この強化された RBAC は、2.3.2 (開発ビルド) および次の製品リリースである 2.4.0 以降のすべてのバージョンの MongoDB で利用できます。
MongoDB 2.4 では、認証に Kerberos を使用することもできますが、この委任された認証は、エンタープライズ ビルドでのみ使用できます。これには、商用サポート契約が必要です。
現在、MongoDB 内にはパスワードの複雑さを強制するものは何もありませんが、Kerberos を使用する 2.4 では明らかに KDC がこれを実行できます。ユーザーが複雑でないパスワードを使用し、複数のデバイスで同じパスワードを再利用することの問題を認識するように (内部のパスワード ポリシーなどを通じて) 手動で確認する必要があります。2.2 を実行していると仮定すると、MongoDB アクセスのすべてのログイン、パスワード、およびアクセス許可は、各データベースの system.users コレクションに格納されます。これは、あなたが読むべきドキュメントへの正確なリンクです。