Kubernetes提供了一种内置的准入控制器,称为PodSecurityPolicy(Pod 安全策略),用于强制实施 Pod 安全性标准。通过配置PodSecurityPolicy,可以定义并应用一组安全策略规则,限制哪些Pod可以被创建和运行。
一、准备
Pod 安全性准入(Pod Security Admission)在 Kubernetes v1.22 作为 Alpha 特性发布, 在 Kubernetes v1.23 中作为 Beta 特性默认可用。从 1.25 版本起, 此特性进阶至正式发布(Generally Available)。
要获知版本信息,请输入 kubectl version.
二、配置准入控制器
pod-security.admission.config.k8s.io/v1 配置需要 v1.25+。 对于 v1.23 和 v1.24,使用 v1beta1。 对于 v1.22,使用 v1alpha1。
apiVersion: apiserver.config.k8s.io/v1 kind: AdmissionConfiguration plugins: - name: PodSecurity configuration: apiVersion: pod-security.admission.config.k8s.io/v1 kind: PodSecurityConfiguration # 当未设置 mode 标签时会应用的默认设置 # # level 标签必须是以下取值之一: # - "privileged" (默认) # - "baseline" # - "restricted" # # version 标签必须是如下取值之一: # - "latest" (默认) # - 诸如 "v1.29" 这类版本号 defaults: enforce: "privileged" enforce-version: "latest" audit: "privileged" audit-version: "latest" warn: "privileged" warn-version: "latest" exemptions: # 要豁免的已认证用户名列表 usernames: [] # 要豁免的运行时类名称列表 runtimeClasses: [] # 要豁免的名字空间列表 namespaces: []
- 上面的清单需要通过 ——admission-control-config-file 指定到 kube-apiserver;
- 上面的清单需要通过 –admission-control-config-file 指定给 kube-apiserver。