説明
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分離によって、コンテナーとホストの間の境界を維持します。