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安全策略参数如下:
Pod安全策略名称,Pod安全策略名称以小写字母开头,可以包含数字、小写字母和-,且不能重名
标签,键值对形式进行增加删除
基础策略
Allow Privilege Escalation,运行允许从其父级升级特权的容器
Default Allow Privilege Escalation,控制进程可以获得父进程获得更多特权
Host IPC,主机IPC命名空间
Host Network,使用主机网络
Host PID,主机PID名称空间
Privileged,运行特权容器
Read Only Root Filesystem,需要采用只读根文件系统
内核安全策略,配置一组功能策略
内核策略:
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,设置需要禁止的安全策略
卷策略 ,控制卷类型的使用,支持“*”匹配全部
卷策略包含:
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
允许主机路径策略,允许的主机路径的白名单
通过制定主机路径前缀,来制定允许的路径,一次可指定多个目录
FS组策略,分配拥有Pod卷的FSGroup
MustRunAs:至少需要指定一个范围,使用第一个范围的最小值作为默认值,对照第一个范围中的第一个ID进行验证。
RunAsAny:没有默认值,允许指定任何fsGroup ID。
主机端口策略,制定使用的主机端口范围
通知过制定端口最小值和最大值,确定一个允许适应范围
用户运行策略
MustRunAs 需要配置范围,使用范围的第一个值作为默认值。根据配置的范围进行验证。
MustRunAsNonRoot 要求使用非零runAsUser启动Pod,或者在镜像中配置USER指令,不提供默认值。
RunAsAny 无默认值,允许任何runAsUser来指定。
SELinux策略
MustRunAs 使用seLinuxOptions作为默认值,根据seLinuxOptions进行验证。
RunAsAny 允许指定任何seLinuxOptions设置。
补充组策略
MustRunAs 需要至少指定一个范围,使用第一个范围的最小值作为默认值,针对所有范围进行验证。
RunAsAny 无默认值。允许指定任何补充组。
确认创建。
通过点击“下载为YAML文件”将所有配置以YAML的形式导出到本地,通知可以通过单击“YAML文件编辑”,从界面编辑转到YAML编辑。
编辑Pod安全策略
单击左侧菜单栏“集群”,进入集群详情页签
选择“Pod安全策略”页签
单击需要编辑的策略后面的
按钮
选择“更改”选项,进入编辑页面
设置个参数,确认设置后,编辑生效
删除Pod安全策略
单击左侧菜单栏“集群”,进入集群详情页签
选择“Pod安全策略”页签
单击需要删除的策略后面的
按钮
选择“删除”选项,确认删除后,删除成功。
同时也支持批量删除,通过复选框选中需要删除的数据,单击列表右上方的删除按钮,确认删除后,选中的安全策略将被删除。
Pod安全策略详情
详情页显示Pod安全测策略创建的时间,对应的YAML,用户可以编辑YAML来修改Pod安全测策略。