セキュリティ
データベースを外に出さない
2026年8月17日
レン
手元のパソコンからデータベースを直接見たくて、外部接続を許可したんだ。便利だよ!

ウィルスン
…それは朗報だ。インターネットに口を開けたデータベースは、常に探し回られている。専用の検索サービスすら存在するのだよ。初期設定のままなら、ワタシは何もせずデータを全部持ち出せる。

レン
探し回られてるの!?立てたばかりなのに!

プロクラ
残念ながら本当だよ。インターネット全体をスキャンして、開いているデータベースを探す仕組みがあるんだ。公開した数分後に見つかることもある。
原則:外から直接つながせない
- 同じサーバー内のアプリからだけつなぐ設定にする(外部からの接続を待ち受けない)
- ファイアウォールでもデータベースのポートを閉じる(二重に守る)
- 初期設定のパスワード・初期ユーザーは必ず変更する
- アプリ用のユーザーには、必要な操作の権限だけを与える
それでも外から見たいとき

プロクラ
ポートを開ける必要はないよ。SSHの接続を経由してつなぐ方法(ポートフォワード)がある。これならデータベースのポートはインターネットに出さないまま、手元のツールから見られる。

レン
開けなくてもいいんだ!

プロクラ
そう。「便利さのために開ける」前に、開けずに済む方法がないか考えてみて。たいていの場合、あるからね。
なぜ外に出てしまうのか

プロクラ
多くは、意図して公開したわけではないんだ。手元で動かしていた設定のまま本番に持ち込んだ、という経路がいちばん多い。
- 接続を受け付ける範囲が「すべて」のままになっている
- Dockerでポートを公開する書き方をして、ファイアウォールを迂回している
- 管理ツールを一時的に公開して、そのまま消し忘れている
- 初期設定のパスワードや、認証なしの設定のまま動かしている

プロクラ
2つめは特に見落とされやすいよ。コンテナのポート公開は、サーバー内のファイアウォールの設定より先に効いてしまうことがある。閉じたつもりが開いている、という状態になりやすいんだ。
確認と対処
- ss -tulpn で、外向きに待ち受けているものを一覧で確認する
- データベースは 127.0.0.1 でだけ待ち受けるようにする
- 別のサーバーから繋ぐ必要があるなら、接続元を絞るか、内部だけの経路を使う
- 認証を必ず有効にし、初期設定のパスワードは変更する
- 外部から実際に繋がらないことを、別の回線から確かめる

ウィルスン
…付け加えておこう。ワタシは、公開されているデータベースを探す道具を持っている。キミが公開した時点で、探す手間すらかからんのだよ。

レン
待ち受ける範囲を絞る。コンテナのポート公開にも気をつける。
あわせて読みたい
- セキュリティAPIキーをGitHubに上げてしまったら:消すより先に無効化する公開した瞬間から何が起きているのか、なぜ消すだけでは終わらないのか、対処の正しい順番と、次から同じことを起こさないための仕組みを解説します。
- セキュリティ使っていないアカウントを残さない使われていないアカウントとSSH鍵が入口になる理由、棚卸しの手順、消すときの副作用、共同作業で鍵を渡すときの決めごとまで解説します。
- セキュリティ権限777の罠:ファイルパーミッションの基本権限を777にして直すのがなぜ危険か、3桁の数字の意味、そして所有者を合わせるという本筋の直し方。鍵やログなど特に注意するファイルまで解説します。
- セキュリティ個人情報を預かるということ:立場が変わる、という話他人の情報を保管する側になると何が変わるのか、漏らしたときに起きること、そして設計の段階でリスクそのものを減らす考え方を解説します。