Pod安全策略

Kubernetes Pod安全策略(PSP)是Kubernetes安全版块中极为重要的组件。Pod安全策略是集群级别的资源,用于控制Pod安全相关选项,并且还是一种强化Kubernetes工作负载安全性的机制。Kubernetes平台团队或集群运维人员可以利用它来控制pod的创建以及限制特定的用户、组或应用程序可以使用的功能。

前提条件

  • 以系统管理员登录平台。

  • 集群为Kubernetes集群,并且开启Pod安全策略。

  • 系统默认内置两个策略:chiwen-psp-permissive 和 chiwen-psp-restrictive,集群组件默认使用chiwen-psp-permissive策略,用户创建的Pod默认使用chiwen-psp-restrictive,用户也可以自定义Pod安全策略。

创建Pod安全策略

  • 单击左侧菜单栏“集群”,进入集群详情页签

  • 选择“Pod安全策略”页签

  • 单击“创建Pod安全策略”按钮

    Pod安全策略参数如下:

    1. Pod安全策略名称,Pod安全策略名称以小写字母开头,可以包含数字、小写字母和-,且不能重名

    2. 标签,键值对形式进行增加删除

    3. 基础策略

      • Allow Privilege Escalation,运行允许从其父级升级特权的容器

      • Default Allow Privilege Escalation,控制进程可以获得父进程获得更多特权

      • Host IPC,主机IPC命名空间

      • Host Network,使用主机网络

      • Host PID,主机PID名称空间

      • Privileged,运行特权容器

      • Read Only Root Filesystem,需要采用只读根文件系统

    4. 内核安全策略,配置一组功能策略

      内核策略:

       CHOWN、DAC_OVERRIDE、DAC_READ_SEARCH、FOWNER、FSETID、
       KILL、SETGID、SETUID、SETPCAP、LINUX_IMMUTABLE、NET_BIND_SERVICE、NET_BROADCAST、NET_ADMIN、NET_RAW、IPC_LOCK、IPC_OWNER、SYS_MODULE、SYS_RAWIO、SYS_CHROOT、SYS_PTRACE、SYS_PACCT、SYS_ADMIN、SYS_BOOT、SYS_NICE、SYS_RESOURCE、SYS_TIME、SYS_TTY_CONFIG、MKNOD、LEASE、AUDIT_WRITE、AUDIT_CONTROL、SETFCAP、MAC_OVERRIDE、MAC_ADMIN、SYSLOG、WAKE_ALARM、BLOCK_SUSPEND、AUDIT_READ
      
      • Allowed Capabilities,设置允许的内核策略

      • Default Add Capabilities,设置默认添加的安全策略

      • Required Drop Capabilities,设置需要禁止的安全策略

    5. 卷策略 ,控制卷类型的使用,支持“*”匹配全部

      卷策略包含:

       azureFile、azureDisk、flocker、flexVolume、hostPath、emptyDir、gcePersistentDisk、awsElasticBlockStore、gitRepo、secret、nfs、iscsi、glusterfs、persistentVolumeClaim、rbd、cinder、cephFS、downwardAPI、fc、configMap、vsphereVolume、quobyte、photonPersistentDisk、projected、portworxVolume、scaleIO、storageos
      
    6. 允许主机路径策略,允许的主机路径的白名单

      通过制定主机路径前缀,来制定允许的路径,一次可指定多个目录

    7. FS组策略,分配拥有Pod卷的FSGroup

      • MustRunAs:至少需要指定一个范围,使用第一个范围的最小值作为默认值,对照第一个范围中的第一个ID进行验证。

      • RunAsAny:没有默认值,允许指定任何fsGroup ID。

    8. 主机端口策略,制定使用的主机端口范围

      通知过制定端口最小值和最大值,确定一个允许适应范围

    9. 用户运行策略

      • MustRunAs 需要配置范围,使用范围的第一个值作为默认值。根据配置的范围进行验证。

      • MustRunAsNonRoot 要求使用非零runAsUser启动Pod,或者在镜像中配置USER指令,不提供默认值。

      • RunAsAny 无默认值,允许任何runAsUser来指定。

    10. SELinux策略

      • MustRunAs 使用seLinuxOptions作为默认值,根据seLinuxOptions进行验证。

      • RunAsAny 允许指定任何seLinuxOptions设置。

    11. 补充组策略

      • MustRunAs 需要至少指定一个范围,使用第一个范围的最小值作为默认值,针对所有范围进行验证。

      • RunAsAny 无默认值。允许指定任何补充组。

    12. 确认创建。

      通过点击“下载为YAML文件”将所有配置以YAML的形式导出到本地,通知可以通过单击“YAML文件编辑”,从界面编辑转到YAML编辑。

编辑Pod安全策略

  • 单击左侧菜单栏“集群”,进入集群详情页签

  • 选择“Pod安全策略”页签

  • 单击需要编辑的策略后面的按钮

  • 选择“更改”选项,进入编辑页面

  • 设置个参数,确认设置后,编辑生效

删除Pod安全策略

  • 单击左侧菜单栏“集群”,进入集群详情页签

  • 选择“Pod安全策略”页签

  • 单击需要删除的策略后面的按钮

  • 选择“删除”选项,确认删除后,删除成功。

同时也支持批量删除,通过复选框选中需要删除的数据,单击列表右上方的删除按钮,确认删除后,选中的安全策略将被删除。

Pod安全策略详情

详情页显示Pod安全测策略创建的时间,对应的YAML,用户可以编辑YAML来修改Pod安全测策略。

© 2022 MiaoYun Chengdu Yuan Lai Yun Zhi Technologies Inc.            Version: 21.12.3

results matching ""

    No results matching ""