codecamp

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

通过配置内置准入控制器实施 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: []


Kubernetes 使用名字空间标签来实施Pod安全性标准
Kubernetes 使用配置文件对Kubernetes对象进行声明式管理
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Kubernetes 管理集群

Kubernetes Service

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }