kubernetes安全机制--Admission Control 准入控制
来源:互联网 发布:电脑软件学校招生 编辑:程序博客网 时间:2024/04/20 12:24
引言
当请求通过了前面的认证和授权之后,还需要经过准入控制处理通过之后,apiserver 才会处理这个请求。Admission Control 有一个准入控制列表,我们可以通过命令行设置选择执行哪几个准入控制器。只有所有的准入控制器都检查通过之后,apiserver 才执行该请求,否则返回拒绝。
为什么需要Admission Control
在kubernetes中,一些高级特性正常运行的前提条件为,将一些准入模块处于enable状态。总结下,对于kubernetes apiserver,如果不适当的配置准入控制模块,他就不能称作是一个完整的server,某些功能也不会正常的生效。
主要的准入控制器介绍
AlwaysAdmit
允许所有请求
AlwaysDeny
拒绝所有请求
AlwaysPullImages
强制设置Pod拉取镜像策略为Always。这样能够保证私有镜像只能被有拉取权限的使用者使用。
DenyExecOnPrivileged
它会拦截所有想在privileged container上执行命令的请求。(如果自己的集群支持privileged container,自己又希望限制用户在这些privileged container上执行命令,那么强烈推荐使用它。)
DenyEscalatingExec
这个插件禁止那些通过主机执行而获得privileges去执行exec和attach Pod的命令。
ImagePolicyWebhook
通过webhook决定image策略,需要同时配置–admission-control-config-file
ServiceAccount
一个serviceAccount为运行在pod内的进程添加了相应的认证信息。当准入模块中开启了此插件(默认开启),如果pod没有serviceAccount属性,将这个pod的serviceAccount属性设为“default”;确保pod使用的serviceAccount始终存在;如果LimitSecretReferences 设置为true,当这个pod引用了Secret对象却没引用ServiceAccount对象,弃置这个pod;如果这个pod没有包含任何ImagePullSecrets,则serviceAccount的ImagePullSecrets被添加给这个pod;如果MountServiceAccountToken为true,则将pod中的container添加一个VolumeMount 。
ResourceQuota
它会观察所有的请求,确保在namespace中ResourceQuota对象处列举的container没有任何异常。如果在kubernetes中使用了ResourceQuota对象,就必须使用这个插件来约束container。(推荐在admission control参数列表中,这个插件排最后一个。)
LimitRanger
实现配额控制。他会观察所有的请求,确保没有违反已经定义好的约束条件,这些条件定义在namespace中LimitRange对象中。如果在kubernetes中使用LimitRange对象,则必须使用这个插件。
SecurityContextDeny
禁止创建设置了 Security Context 的 pod。这个插件将会将使用了 SecurityContext的pod中定义的选项全部失效。关于 SecurityContext的描述:SecurityContext 在container中定义了操作系统级别的安全设定(uid, gid, capabilities, SELinux等等)。
NamespaceLifecycle
确保处于termination状态的namespace不再接收新的对象创建请求,并拒绝请求不存在的namespace。
InitialResources
根据镜像的历史使用记录,为容器设置默认资源请求和限制
DefaultStorageClass
为PVC设置默认StorageClass
DefaultTolerationSeconds
设置Pod的默认forgiveness toleration为5分钟
PodSecurityPolicy
使用Pod Security Policies时必须开启
NodeRestriction
限制kubelet仅可访问node、endpoint、pod、service以及secret、configmap、PV和PVC等相关的资源(v1.7版本以上才支持)
推荐的设置控制器顺序:
--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,ResourceQuota,DefaultTolerationSeconds
参考链接
Admission Controllers
- kubernetes安全机制--Admission Control 准入控制
- kubernetes中的Admission Controllers
- kubernetes安全控制认证与授权(一)
- kubernetes安全控制认证与授权(二)
- 准入控制解决方案的汇总
- Kubernetes中的角色访问控制机制(RBAC)支持
- OS安全机制之访问控制机制
- 安全的网络通道——网络准入之二层准入
- 安全的网络通道——网络准入之三层准入
- Kubernetes集群安全配置
- kubernetes安全测试
- kubernetes API Server安全
- informix 的安全访问控制机制
- Linux安全--访问控制机制(ACM)
- Linux安全--访问控制机制(ACM)
- Linux安全--访问控制机制(ACM)
- 通过无线AP轻松突破内网准入控制
- 通过无线AP轻松突破内网准入控制
- DOS find
- 移动App和远程服务器笔记(1)
- //先序a 和中序b 求后序 //已知后序a 中序b 求先序
- 安装最新版MySQL 5.7.19的方法
- 扩展欧几里得算法
- kubernetes安全机制--Admission Control 准入控制
- C#批量为图片添加边框、日期、宝宝信息
- Tensorflow学习记录(一)
- X86、X64和X86_64区别
- matlab中的协方差函数
- Python Module
- hpuoj 【1349】三个数求最大值 【水题】
- Dinic模板(附带当前弧优化)
- C_栈的应用----迷宫求解