为 pod 安全性配置 Seccomp 配置文件

本文档介绍了如何为 Apigee Hybrid pod 配置 Kubernetes Seccomp(安全计算模式)配置文件,以通过限制容器可以发出的系统调用 (syscall) 来增强安全性。

Kubernetes 中的 Seccomp 配置文件简介

Seccomp 是一项 Linux 内核安全功能,可限制进程可进行的系统调用。与 Kubernetes 搭配使用时,您可以将 Seccomp 配置文件应用于 pod 的 securityContext,以限制其容器可用的系统调用。这有助于减少容器的攻击面,并通过强制执行最小权限原则来降低容器突破或权限升级的风险。

如需详细了解 Kubernetes 中的 Seccomp,请参阅 Kubernetes 文档中的安全计算 (Seccomp)

在混合环境中,Seccomp 配置文件默认不启用。您可以选择通过向 overrides.yaml 文件添加 seccompProfile 对象,将 Seccomp 配置文件应用于混合组件。

配置 Seccomp 配置文件

您可以在 overrides.yaml 文件中添加 securityContext.seccompProfile 配置块,以全局、按环境或按组件应用 Seccomp 配置文件。Hybrid 支持以下 Seccomp 配置文件类型:

  • RuntimeDefault:容器运行时指定的默认配置文件。这是推荐的选项,因为它可在保持与大多数工作负载兼容的同时,提供合理的安全级别。
  • Unconfined:不对 Pod 应用任何 Seccomp 限制。这是安全性最低的选项,请谨慎使用。

配置优先级

您可以在 overrides.yaml 中按以下级别设置 seccompProfile。组件级设置优先于环境级设置,而环境级设置优先于全局设置:

  1. 组件级:应用于特定组件(例如 runtimecassandra)。
  2. 环境级:除非在组件级被替换,否则适用于 envs[] 数组中定义的特定环境中的所有组件。
  3. 全局级:适用于集群中的所有组件,除非在环境级或组件级被覆盖。

示例

全局配置

如需将 RuntimeDefault Seccomp 配置文件应用于没有环境级或组件级替换项的所有组件,请将以下内容添加到 overrides.yaml 的顶层:

securityContext:
  seccompProfile:
    type: RuntimeDefault

环境配置

如需将 RuntimeDefault Seccomp 配置文件应用于特定环境中的所有组件,请在 envs[] 元素下添加以下配置:

envs:
  - name: "my-environment"
    securityContext:
      seccompProfile:
        type: RuntimeDefault
    ...

组件配置

如需将 RuntimeDefault Seccomp 配置文件应用于特定组件(例如运行时组件),请在该组件下添加相应配置:

runtime:
  securityContext:
    seccompProfile:
      type: RuntimeDefault
...