本文档介绍了如何为 Apigee Hybrid pod 配置 Kubernetes Seccomp(安全计算模式)配置文件,以通过限制容器可以发出的系统调用 (syscall) 来增强安全性。
Kubernetes 中的 Seccomp 配置文件简介
Seccomp 是一项 Linux 内核安全功能,可限制进程可进行的系统调用。与 Kubernetes 搭配使用时,您可以将 Seccomp 配置文件应用于 pod 的 securityContext,以限制其容器可用的系统调用。这有助于减少容器的攻击面,并通过强制执行最小权限原则来降低容器逃逸或提权的风险。
如需详细了解 Kubernetes 中的 Seccomp,请参阅 Kubernetes 文档中的安全计算 (Seccomp)。
在混合环境中,Seccomp 配置文件默认不启用。您可以通过向 overrides.yaml 文件添加 seccompProfile 对象,选择将 Seccomp 配置文件应用于混合组件。
配置 Seccomp 配置文件
您可以通过添加 securityContext.seccompProfile 配置块,在 overrides.yaml 文件中全局、按环境或按组件应用 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 ...