Pod 安全策略(PSP)曾用于控制 Kubernetes 中 pod 的安全设置,但现在已被弃用,转而使用 Pod Security Admission(PSA)机制。PSA 提供了一种更简单、更有效的方式来执行 Pod 的安全标准。


下面的示例说明了如何使用 Pod Security Admission 为 Pod 执行安全上下文。本示例将展示如何将安全级别应用到命名空间。

【代码清单】

# Define a namespace with a Pod Security Admission level
apiVersion: v1
kind: Namespace
metadata:
 name: secure-namespace
 annotations:
  pod-security.kubernetes.io/enforce: privileged
# Apply the namespace configuration
kubectl apply -f namespace.
# Verify the applied annotations
kubectl get namespace secure-namespace -o jsonpath='{.metadata.annotations}'

【执行结果】

map[[pod-security.kubernetes.io/enforce:privileged](http://pod-security.kubernetes.io/enforce:privileged)]

Pod Security Admission 允许您使用注解在命名空间级别执行安全策略。在本例中,我们将 pod-security.kubernetes.io/enforce 注解设置为特权,这意味着只有具有特权安全上下文的 pod 才能在此命名空间中运行。这是从更复杂的 PSP 系统转变而来的,使集群管理员更容易管理安全,而无需为 pod 安全的各个方面定义详细的策略。

【小知识】

PSA 机制提供三个安全级别: 特权、基线和受限,允许灵活的安全实施。

从 PSP 过渡到 PSA 的目的是简化安全管理,减少与定义复杂策略相关的开销。

建议大多数工作负载采用受限级别,以最大限度地降低安全风险。