Pod 安全标准
应用 Pod 安全标准,在 Pod 层面强制执行安全最佳实践。
Pod 安全标准 是 CoddyKit 上的免费 Kubernetes Basics 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Kubernetes Basics 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Kubernetes Basics 课程共包含 4 节课。
什么是 PSS?
Kubernetes Pod 安全标准(PSS)是一组用于在 Pod 上实施安全最佳实践的准则和控制措施。
通过限制 Pod 可以执行的操作,它们有助于保护集群免受常见安全漏洞和权限提升攻击的影响。
您可以把它们想象成 Pod 的安全检查清单!
三个安全级别
PSS 定义了三个不同的安全级别,每个级别提供不同程度的保护:
- 特权级别:不受限制,安全性最低。
- 基线级别:防止已知的权限提升。
- 受限级别:实施强化的安全最佳实践。
这些级别是累积的,也就是说,受限级别包含基线级别的所有保护措施,而基线级别包含特权级别的所有保护措施(更准确地说,是不施加任何限制)。
特权级别:不受限制的访问
特权级别 PSS 提供不受限制的安全策略。
这意味着在此策略下运行的 Pod 可以请求任何能力,并且可以完全访问主机的资源和命名空间,类似于在主机上以 root 身份运行。
这通常被认为非常不安全,因此只应用于确实需要此类访问权限的系统级工作负载。
基线级别:防止漏洞利用
基线级别 PSS 旨在防止已知的权限提升。
对于大多数用户定义的应用来说,这是一个很好的起点。
主要限制包括:
- 不允许使用特权容器。
- 不允许使用 hostPath 卷(特定安全类型除外)。
- 不允许使用主机网络或共享 PID 命名空间。
- 限制可用的能力。
此级别有助于缓解许多常见的攻击途径。
受限级别:强化安全性
受限级别 PSS 强制实施强化的安全最佳实践。
它面向对安全性要求极高的应用,并要求 Pod 以最小权限运行。
除了基线级别的限制之外,受限级别还要求:
- 以非 root 用户身份运行。
- 删除所有 Linux 能力,只添加特定的必需能力。
- 要求使用
seccomp和AppArmor配置文件。
这是安全性最高、限制最严格的 PSS 级别。
通过准入控制强制执行 PSS
Pod 安全标准通过 Kubernetes 的一项名为 Pod 安全准入 的功能来强制执行。
此准入控制器会拦截 Pod 创建请求,并根据 Pod 所在命名空间配置的 PSS 级别对请求进行检查。
您可以向命名空间添加特定标签,以应用 PSS 级别。例如:
kubectl label namespace <namespace-name> pod-security.kubernetes.io/enforce=restricted控制 Pod 安全性
为了使 Pod 符合 PSS,您通常需要在 Pod 定义中使用 securityContext 字段。
此字段允许您为 Pod 或其中的单个容器定义权限和访问控制设置。
常见设置包括:
runAsUser:指定容器进程使用的用户 ID。allowPrivilegeEscalation:防止进程获得多于其父进程的权限。capabilities:管理 Linux 功能。
不安全的 Pod 示例
让我们看一个由于其安全上下文而违反 Baseline PSS 的 Pod 定义。此配置通常是不安全的:
apiVersion: v1
kind: Pod
metadata:
name: unsafe-pod
spec:
containers:
- name: my-container
image: nginx
securityContext:
privileged: true
# This allows the container to run with root capabilities
# and access host devices directly.
# Violates Baseline PSS.符合 Baseline 的 Pod 示例
下面展示了如何定义符合 Baseline PSS 级别的 Pod。请注意,其中没有 privileged: true 以及其他受限设置。
若要实现更严格的 Restricted 合规性,您还应添加 runAsNonRoot: true、readOnlyRootFilesystem: true,并删除所有功能。
apiVersion: v1
kind: Pod
metadata:
name: safe-pod
spec:
containers:
- name: my-container
image: nginx
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
# This Pod runs with minimal privileges and
# adheres to the Baseline PSS.PSS 快速检查
以下关于 Pod 安全标准(PSS)的说法中,哪一项是 TRUE?
回顾:Pod 安全标准
在本课中,您了解了 Kubernetes Pod 安全标准(PSS),以及它们对于保护集群安全的重要性。
- PSS 定义了三个级别:Privileged、Baseline 和 Restricted。
- Baseline 可防止已知的权限提升,适合大多数应用。
- Restricted 强制执行强化的安全策略,要求使用最低权限。
securityContext字段有助于配置符合 PSS 的 Pod。
应用 PSS 是构建更安全 Kubernetes 环境的重要一步!
常见问题解答
「Pod 安全标准」课时是免费的吗?
是的 — 「Pod 安全标准」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Kubernetes Basics 课程的其余内容,请升级到 CoddyKit PRO。 Kubernetes Basics 课程共包含 4 节课。
「Pod 安全标准」这节课中我会学到什么?
应用 Pod 安全标准,在 Pod 层面强制执行安全最佳实践。 你通过在浏览器中直接运行的动手代码来练习 Kubernetes Basics,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Kubernetes Basics 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Kubernetes Basics 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「Pod 安全标准」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Kubernetes Basics 课中编写并运行代码吗?
能。每节 Kubernetes Basics 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。