84100


プライベートネットワーク内にサーバー(192.168.0.100)があり、dockerでmongodbサーバーを建てたとします。特に外部に公開する予定はなく、公開する方法も理解できていません。  
このmongodbはローカル内でしかアクセスしないのでパスワードを設定しても意味がないという認識で間違いないでしょうか？それとも何かリスクはありますか？


CC BY-SA 4.0
2021-12-12T12:13:21.527
84090
2021-12-13T14:03:21.277
2021-12-13T07:10:17.950
3060
7300
question
security mongodb
プライベートネットワーク内のDBにパスワードを設定する意味はありますか？


リスクがあるか意味はあるか？という質問に関しては  
「すべてにリスクは存在します。意味はあります」  
という回答になってしまいます。

たとえば悪意のある人間がプライベートネットワーク内に侵入してきた場合にはどうなるでしょうかDBの中身をすべてかっさらって逃げてしまうかもしれません。

たとえローカルでしかアクセスしないと決めたサーバであってもそのサーバを丸ごと盗まれてしまったらどうなるでしょうか？あとでお家でゆっくり解体されてしまうかもしれません。

また誰かが設定をミスって、非公開のサーバのはずなのに公開の設定に変更してしまいいつの間にか筒抜けだったということもあり得ます。

でもそんなこと考えていたらきりがないよね？と思うかもしれません。  
おっしゃる通りです。きりがないです。  
常にリスクとコストはバランスをとるべきです

どこまでパスワードを設定するかはセキュリティマネジメントの領域になり、実際は組織やプロダクトやサービスのセキュリティレベルに合わせる話です。

ただDBに限らずパスワードが設定可能なすべてのプロダクトはそれだけリスク（悪意による搾取やミスによる漏洩）があると認識してもらえるとよいでしょう。  
「パスワードが設定できるときは設定する。」  
これだけで防げるリスクはたくさんあります。


CC BY-SA 4.0
2021-12-13T00:59:34.730
84100
2021-12-13T00:59:34.730
22665
84090
answer


keitaro_so さんの回答と似通っていますが、ちょっと違う回答です。

現実問題としてパスワードの有無でリスクがあまり変わらないケースというのはあると思います。しかし、リスクの有無を正確に判定するのは結構高度な技量が必要ですし、その判断を間違う可能性も高いです。

つまり、「DBのパスワードを設定する手間」に比べて「DBにパスワードを設定しなくても安全と判断する手間」の方が大きいし、結局「判断が微妙だからパスワードを設定しておこう」という結論になりやすいです。

現実にパスワード設定をしなかったために事故に至る例も結構あるようです。

[MongoDB ユーザー認証設定は必ずしましょう -
Qiita](https://qiita.com/h6591/items/68a1ec445391be451d0d)  
[MongoDBを始めた頃に知っていたら、と思う14のこと](https://www.infoq.com/jp/articles/Starting-
With-MongoDB/)

ということで、DBにパスワードを設定するのは、習慣として身につけておいた方が良いと思います。  
ただ、このような疑問を持つこと自体は大切だと思いますよ。


CC BY-SA 4.0
2021-12-13T14:03:21.277
84113
2021-12-13T14:03:21.277
781
84090
answer