本文档介绍了如何为 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。组件级设置优先于环境级设置,而环境级设置优先于全局设置:
- 组件级:应用于特定组件(例如
runtime或cassandra)。 - 环境级:除非在组件级被替换,否则适用于
envs[]数组中定义的特定环境中的所有组件。 - 全局级:适用于集群中的所有组件,除非在环境级或组件级被覆盖。
示例
全局配置
如需将 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 ...