This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.11.2. 配置自定义 seccomp 配置集
您可以配置自定义 seccomp 配置集,允许您根据应用要求更新过滤器。这使得集群管理员能够更好地控制在 OpenShift Container Platform 中运行的工作负载的安全性。
seccomp 安全配置集列出了进程可以进行的系统调用(系统调用)。权限比 SELinux 更广泛,可限制操作,如全系统范围内的 write。
11.2.1. 创建 seccomp 配置集 复制链接链接已复制到粘贴板!
您可以使用 MachineConfig 对象来创建配置集。
seccomp 可以限制容器内的系统调用(系统调用),限制应用的访问权限。
先决条件
- 有集群管理员权限。
- 您已创建了自定义安全上下文约束 (SCC)。如需更多信息,请参阅附加资源。
流程
创建
MachineConfig对象:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.2.2. 设置自定义 seccomp 配置集 复制链接链接已复制到粘贴板!
前提条件
- 有集群管理员权限。
- 您已创建了自定义安全上下文约束 (SCC)。如需更多信息,请参阅"附加资源"。
- 您已创建了自定义 seccomp 配置集。
流程
-
使用 Machine Config 将自定义 seccomp 配置集上传到
/var/lib/kubelet/seccomp/<custom-name>.json。有关详细信息,请参阅"附加资源"。 通过引用创建的自定义 seccomp 配置集来更新自定义 SCC:
seccompProfiles: - localhost/<custom-name>.json
seccompProfiles: - localhost/<custom-name>.json1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 提供自定义 seccomp 配置集的名称。
11.2.3. 将自定义 seccomp 配置集应用到工作负载 复制链接链接已复制到粘贴板!
前提条件
- 集群管理员已设置了自定义 seccomp 配置集。如需了解更多详细信息,请参阅 "设置自定义 seccomp 配置集"。
流程
通过设置
securityContext.seccompProfile.type字段,将 seccomp 配置集应用到工作负载,如下所示:示例
spec: securityContext: seccompProfile: type: Localhost localhostProfile: <custom-name>.jsonspec: securityContext: seccompProfile: type: Localhost localhostProfile: <custom-name>.json1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 提供自定义 seccomp 配置集的名称。
另外,您可以使用 pod 注解
seccomp.security.alpha.kubernetes.io/pod: localhost/<custom-name>.json。但是,此方法在 OpenShift Container Platform 4.11 中已弃用。
在部署过程中,准入控制器会验证以下内容:
- 用户角色允许的当前 SCC 的注解。
- Pod 允许包含 seccomp 配置集的 SCC。
如果 pod 允许 SCC,kubelet 会使用指定的 seccomp 配置集运行 pod。
确保 seccomp 配置集已部署到所有 worker 节点。
自定义 SCC 必须具有自动分配给 pod 的适当优先级,或满足 Pod 所需的其他条件,如允许 CAP_NET_ADMIN。