プロクラ(クラウドAIロボット、詳しい役)SabaKore

セキュリティ

コンテナは安全、ではない

2026年8月17日

レン(新米インフラエンジニア)

レン

Dockerで動かしてるから、何かあってもコンテナの中だけで済むよね?
プロクラ(クラウドAIロボット、詳しい役)・困った

プロクラ

半分は正しいけど、半分は危ないよ。分離はされるけど、設定次第で簡単に穴が開くんだ。「Dockerを使っている=安全」ではないと考えて。
ウィルスン(セキュリティの番人)・考え中

ウィルスン

…ワタシから見れば、コンテナは壁が1枚増えただけだ。その壁に扉が付いていれば、通るだけのこと。特に、親切に権限を与えてくれている場合はな。

1台のVPSに複数のサービスを同居させる

ブログ

80/443

データベース

内部のみ

検証環境

内部のみ

それぞれ独立した箱。片方を壊しても、もう片方には影響しない

1台のVPS(メモリ・CPUは共有)

分けられるのは環境だけ。メモリとCPUは同じ1台ぶんを分け合う

気をつけるところ

  • コンテナ内でrootとして動かさない(専用の一般ユーザーを作る)
  • 特権モードは使わない。それは分離をほぼ放棄する設定
  • ホストのディレクトリを丸ごと共有しない。必要な範囲に絞り、読み取り専用にできるならそうする
  • Dockerを操作する権限は、実質的にサーバー全体の管理権限に等しいと考える
  • ポートの公開は必要最小限に。うっかり全体へ公開しないよう指定を確認する

イメージ(ひな形)にも注意

プロクラ(クラウドAIロボット、詳しい役)・分析中

プロクラ

公開されているイメージをそのまま使うときは、誰が作ったものか確認しよう。中身が見えないまま実行するのは、正体不明のプログラムを動かすのと同じことだからね。公式のものや、自分で作ったものを使うのが安心だよ。
  • ベースイメージは定期的に更新する(中のOSにも脆弱性が見つかる)
  • イメージに認証情報を焼き込まない(イメージを見れば読めてしまう)
  • 必要なものだけを含む軽いイメージにすると、攻撃面も小さくなる
レン(新米インフラエンジニア)・できた

レン

コンテナの中も、普通のサーバーと同じように気をつけるんだね。
プロクラ(クラウドAIロボット、詳しい役)・OK

プロクラ

そのとおり。コンテナは「便利に分ける道具」であって「守ってくれる道具」ではないんだ。中で動くものへの注意は、これまでと変わらないよ。

ネットワークとポートの公開

プロクラ(クラウドAIロボット、詳しい役)・困った

プロクラ

見落とされやすいのがここだよ。コンテナのポート公開は、サーバー内のファイアウォールより先に効いてしまうことがある。閉じたつもりが、外から繋がる状態になりやすいんだ。
  • 外に出す必要がないものは、127.0.0.1 に限定して公開する
  • データベースのコンテナを、外向きに公開しない
  • コンテナ同士は専用のネットワークで繋ぎ、外には出さない
  • 実際に外から繋がらないかを、別の回線から確かめる

認証情報の渡し方

  • イメージに焼き込まない(イメージを見れば読める)
  • ビルド時の引数にも残る。実行時に渡す仕組みを使う
  • 設定ファイルをそのまま共有する場合、権限に注意する
  • 使い終わった認証情報は無効化する
プロクラ(クラウドAIロボット、詳しい役)・OK

プロクラ

コンテナは「便利に分ける道具」であって「守ってくれる道具」ではない。中で動くものへの注意は、これまでと変わらないよ。
レン(新米インフラエンジニア)・できた

レン

壁が1枚増えただけ。ポートの公開範囲を必ず確かめる。

あわせて読みたい

→ コラム記事をすべて見る