MongoDBのセキュリティ「べからず」集的なものがあったため、要約してみました。
原文:http://blog.mongodb.org/post/87691901392/mongodb-security-part-ii-10-mistakes-that-can
MongoDBのセキュリティ「べからず」集の要約
1. MongoDBのサーバを直接インターネットにさらす
ちゃんとFWの中に入れるなり、前にサーバを置くなりしよう。
2. アクセスコントロールをしない
MongoDBにはロールベースアクセスコントロールがあります。これを使って、ユーザ毎にアクセスできるDBや操作を制御すべきでしょう。
3. SSLを使わない
MongoDBドライバ - mongod(s)間をSSLしましょう。
4. 不必要なインターフェースを公開する
HTTP,REST,JSONPインターフェースは使わないなら止めましょう。
5. ユーザのアカウント管理がずさん
2でアクセスコントロールを有効にしても、何でもできるユーザを作って使わせてはダメ。ちゃんと、最少な権限だけ与えましょう。
6. OSのパワーユーザで動かす
Linuxならrootでmongodやmongosを動かすなってことです。
7. レプリカセットキーファイルを使わない
プリカ同士で相手を認証するキーファイルをちゃんと使いましょう。
8. SSLの設定がしょぼい
3.でSSLを使ったとしても、オレオレ証明書などしょぼいSSLはダメ。
9. バックアップが無防備
バックアップもファイル自体は簡単に復元できるので、バックアップも本体同様のセキュリティレベルにすべし。
10. セキュリティの知識が乏しい
機密情報を格納するならば、リリース前にセキュリティのホワイトペーパとかが出てるから読みましょう。
所感
特に目新しいことは無く、「当たり前のことをちゃんやるように」と書いてあるように思えました。
また、当然全部やればよいというわけではなく、要件に照らし合わせることが必要でしょう。たとえば、VPNがあるのにSSLを使う必要はないです。他にも、MongoDBをキャッシュ層としてつかうのであれば、インターネットにさらすことが必須になる場合もあるでしょう。
あと、javascriptを無効にするオプションがあるので、それがインジェクション対策として入ってもよいかなと思いました。