ホストIPC名前空間の共有

不要なホストIPCの共有を避け、プロセス間通信リソースを分離してください。

説明

IPC名前空間は、プロセス間通信に使うリソースを管理します。ホストと共有すると、コンテナーの分離が弱まる可能性があります。個々のIPCリソースにアクセスできるかどうかは、ユーザー権限やケーパビリティにも依存します。

一般的なアプリケーションコンテナーには、ipc: "host"は必要ありません。特別な運用上の要件がなければ、コンテナーとホストのIPC空間を分離してください。

想定される影響

  • 権限で許可されている場合、コンテナーからホストのIPCリソースにアクセスできます。
  • 分離が弱まり、他のワークロードやホストのリソースに影響する可能性があります。
  • 脆弱性が悪用された際に、被害が広がるおそれがあります。

対処方法

  • ipc: "host"を削除し、既定のIPC分離を維持してください。
  • デバッグや特殊な用途の例外構成は、本番サービスと分けてください。
  • コンテナーの権限、名前空間、ケーパビリティを合わせて確認し、分離方針を一貫させてください。

例

sample/app:latestを実際のアプリケーションイメージに置き換えてください。

変更前

yaml
services:
  webapp:
    image: sample/app:latest
    ipc: "host"

変更後

yaml
services:
  webapp:
    image: sample/app:latest

説明:

  • 変更前: ホストIPC名前空間を共有し、コンテナーの分離を不必要に弱めます。
  • 変更後: 既定のIPC分離によって、コンテナーとホストの間の境界を維持します。

参考資料