Kubernetes 通过配置内置准入控制器实施Pod安全标准

2022-06-11 14:19 更新

通过配置内置准入控制器实施 Pod 安全标准

在 v1.22 版本中,Kubernetes 提供一种内置的准入控制器 用来强制实施 Pod 安全标准。 你可以配置此准入控制器来设置集群范围的默认值和豁免选项。

在开始之前

您的 Kubernetes 服务器必须为 v1.22 或更高版本。 要检查版本,请输入 ​kubectl version​。

  • 确保 ​PodSecurity ​特性门控已被启用。

配置准入控制器 

  • pod-security.admission.config.k8s.io/v1beta1
  • apiVersion: apiserver.config.k8s.io/v1
    kind: AdmissionConfiguration
    plugins:
    - name: PodSecurity
      configuration:
        apiVersion: pod-security.admission.config.k8s.io/v1beta1
        kind: PodSecurityConfiguration
        # 当未设置 mode 标签时会应用的默认设置
        #
        # level 标签必须是以下取值之一:
        # - "privileged" (默认)
        # - "baseline"
        # - "restricted"
        #
        # version 标签必须是如下取值之一:
        # - "latest" (默认) 
        # - 诸如 "v1.24" 这类版本号
        defaults:
          enforce: "privileged"
          enforce-version: "latest"
          audit: "privileged"
          audit-version: "latest"
          warn: "privileged"
          warn-version: "latest"
        exemptions:
          # 要豁免的已认证用户名列表
          usernames: []
          # 要豁免的运行时类名称列表
          runtimeClasses: []
          # 要豁免的名字空间列表
          namespaces: []
    Note:
    v1beta1 配置结构需要使用 v1.23+ 版本;对于 v1.22 版本,可使用 v1alpha1。
  • pod-security.admission.config.k8s.io/v1alpha1
  • apiVersion: apiserver.config.k8s.io/v1
    kind: AdmissionConfiguration
    plugins:
    - name: PodSecurity
      configuration:
        apiVersion: pod-security.admission.config.k8s.io/v1alpha1
        kind: PodSecurityConfiguration
        # 当未设置 mode 标签时会应用的默认设置
        #
        # level 标签必须是以下取值之一:
        # - "privileged" (默认)
        # - "baseline"
        # - "restricted"
        #
        # version 标签必须是如下取值之一:
        # - "latest" (默认) 
        # - 诸如 "v1.24" 这类版本号
        defaults:
          enforce: "privileged"
          enforce-version: "latest"
          audit: "privileged"
          audit-version: "latest"
          warn: "privileged"
          warn-version: "latest"
        exemptions:
          # 要豁免的已认证用户名列表
          usernames: []
          # 要豁免的运行时类名称列表
          runtimeClasses: []
          # 要豁免的名字空间列表
          namespaces: []


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号