Pod によるホスト IPC 名前空間の共有

ホスト IPC リソースが不要な Pod では host_ipc を無効にしてください。

説明

host_ipc = true の Pod は、ホストの IPC 名前空間を共有します。共有メモリやセマフォなどのホスト IPC リソースへのアクセス範囲が広がり、コンテナーの分離が弱まる場合があります。実際の読み取りや変更には、リソースの権限などのアクセス制御も適用されます。

想定される影響

  • 権限が許すホスト IPC リソースを通じて、データが漏えい・変更される場合があります。
  • IPC リソースへの干渉や枯渇が、他のプロセスの動作に影響する場合があります。

対処方法

  • ホスト IPC の共有が不要なワークロードでは host_ipc = false を使用してください。必要な例外は、システムツールの用途とアクセス権限を確認して限定してください。
  • 非 root 実行と最小権限を適用し、Pod Security Admission やポリシーエンジンで不要な host_ipc の使用を制限してください。

例

ホスト IPC の共有だけを比較する既存の Pod 例です。実際のデプロイには保守されているイメージを使ってください。

変更前

hcl
resource "kubernetes_pod" "pod" {
  metadata {
    name = "terraform-example"
  }

  spec {
    host_ipc = true

    container {
      image = "nginx:1.7.9"
      name  = "example"
    }
  }
}

変更後

hcl
resource "kubernetes_pod" "pod" {
  metadata {
    name = "terraform-example"
  }

  spec {
    host_ipc = false

    container {
      image = "nginx:1.7.9"
      name  = "example"
    }
  }
}

補足:

  • 変更前: ホストの IPC 名前空間を共有します。
  • 変更後: ホスト IPC 名前空間の共有を無効にします。

参考資料