---
layout: LearningLayout
description: Kubernetes教程_本文面向集群管理员,阐述Pod Security Standards 的概念。
meta:
- name: keywords
content: Kubernetes 教程,Pod Security Standards
---
# Pod Security Standards
本文档主要参考了 Kubernetes 官方文档:[Pod Security Standards](https://kubernetes.io/zh/docs/concepts/security/pod-security-standards/)
| 控制(Control) | 策略(Policy) |
| HostProcess |
Windows Pod 提供了运行 HostProcess 容器 的能力, 这使得对 Windows 节点的特权访问成为可能。 基线策略中对宿主的特权访问是被禁止的。 HostProcess Pod 是 Kubernetes v1.22 版本的 alpha 特性。 限制的字段
允许的值
|
| 宿主名字空间 |
必须禁止共享宿主名字空间。 限制的字段
允许的值
|
| 特权容器 |
特权 Pod 关闭了大多数安全性机制,必须被禁止。 限制的字段
允许的值
|
| 权能 |
必须禁止添加除下列字段之外的权能。 限制的字段
允许的值
|
| HostPath 卷 |
必须禁止 HostPath 卷。 限制的字段
允许的值
|
| 宿主端口 |
应禁止使用宿主端口,或者至少限定为已知列表。 限制的字段
允许的值
|
| AppArmor |
在受支持的主机上,默认使用 限制的字段
允许的值
|
| SELinux |
设置 SELinux 类型的操作是被限制的,设置自定义的 SELinux 用户或角色选项是被禁止的。 限制的字段
允许的值
限制的字段
允许的值
|
/proc 挂载类型 |
要求使用默认的 限制的字段
允许的值
|
| Seccomp |
Seccomp Profile 禁止被显式设置为 限制的字段
允许的值
|
| Sysctls |
Sysctls 可以禁用安全机制或影响宿主上所有容器,因此除了若干“安全”的子集之外,应该被禁止。 如果某 sysctl 是受容器或 Pod 的名字空间限制,且与节点上其他 Pod 或进程相隔离,可认为是安全的。 限制的字段
允许的值
|
| 控制(Control) | 策略(Policy) |
| 基线策略的所有要求。 | |
| 卷类型 |
除了限制 HostPath 卷之外,此类策略还限制可以通过 PersistentVolumes 定义的非核心卷类型。 限制的字段
允许的值 spec.volumes[*] 列表中的每个条目必须将下面字段之一设置为非空值:
|
| 特权提升(v1.8+) |
禁止(通过 SetUID 或 SetGID 文件模式)获得特权提升。 限制的字段
允许的值
|
| 以非 root 账号运行 |
必须要求容器以非 root 用户运行。 限制的字段
允许的值
spec.securityContext.runAsNonRoot 设置为
true,则允许容器组的安全上下文字段设置为 未定义/nil。
|
| 非 root 用户(v1.23+) |
Containers 不可以将 runAsUser 设置为 0 限制的字段
允许的字段
|
| Seccomp (v1.19+) |
Seccomp Profile 必须被显式设置成一个允许的值。禁止使用 限制的字段
允许的值
spec.securityContext.seccompProfile.type
已设置得当,容器级别的安全上下文字段可以为 未定义/nil。
反过来说,如果 _所有的_ 容器级别的安全上下文字段已设置,则 Pod 级别的字段可为 未定义/nil。
|
| 权能(v1.22+) |
容器组必须弃用 限制的字段
允许的值
限制的字段
允许的值
|