内容简介:在使用CIS 的指导原则里把建议行为分成了两级:另外还将具体的检测结果分为计分和不计分两种结果。
在使用 Kube Bench 的过程中注意到,其指导依据来自于 CIS Benchmark ,于是顺藤摸瓜,下载了 CIS Kubernetews Be nchmark 的 PDF 版本,全文有两百多页,阅读量还蛮大的,因此对其进行整理,便于大家参考使用。
简介
CIS 的指导原则里把建议行为分成了两级:
- 一级:使用该建议不会造成负面影响。
- 二级:仅建议在非常强调安全性的系统中使用,可能对系统有副作用。
另外还将具体的检测结果分为计分和不计分两种结果。
以上两个维度可以用来对系统进行现状评估,也有助于读者选择性地采纳加固措施。
整个指南分为五个部分:
- 控制平面组件
- etcd
- 控制平面配置
- 节点配置
- 策略
检查项概要
-
所有运行参数文件、kubeconfig 文件以及证书,权限至少应为
644
并且属于root:root
。 -
API Server
-
南向和北向通信
- 关闭匿名访问
- 禁止明文通信
-
认证
- 启用 Node,RBAC 认证
- 禁用 Token 和 Basic 认证
- 禁用 Alwaysallow
-
Admission Control
- 禁用:AlwaysAdmit
- 启用:AlwaysPullImages、AlwaysAdmit、EventRateLimit、ServiceAccount、NamespaceLifecycle、PodSecurityPolicy、NodeRestriction
-
关闭
profiling
- 启用审计日志
- 启用请求超时
-
启用
--service-account-lookup
-
--tls-cipher-suites
仅使用新的、强加密算法 -
使用
oidc
等模式来代替客户端证书认证。
-
南向和北向通信
-
Controller Manager
-
关闭
profiling
-
开启
--use-service-account-credentials
-
绑定
127.0.0.1
-
启用
--service-account-private-key-file
-
--feature-gates
启用RotateKubeletServerCertificate
-
关闭
-
Scheduler
profiling 127.0.0.1
-
ETCD
--auto-tls
-
工作节点
- Kubelet、Kube-proxy 的服务和配置文件权限
- 关闭匿名访问
-
--authorization-mode
禁用AlwaysAllow
-
kubelet 参数
--read-only-port
为 0 -
--streaming-connection-idle-timeout
不应设置为 0 -
--protect-kernel-defaults
设置为true
-
--make-iptables-util-chains
设置为true
-
不要设置
--hostname-override
- HTTPS 访问
-
--rotate-certificates
设置为true
-
--event-qps
设置足够高,或者为0
-
--feature-gates
启用RotateKubeletServerCertificate
-
RBAC 和 ServiceAccount
cluster-admin secret false
-
Pod Security Policy
-
使用 PSP 不应泛泛使用
privileged
-
使用 PSP 谨慎控制如下授权
hostPID hostIPC hostNetwork allowPrivilegeEscalation runAsUser.rule NET_RAW
- 不应提供全面放行的 PSP 策略
-
使用 PSP 不应泛泛使用
-
网络策略和 CNI
- 支持策略的 CNI
- 所有命名空间都定义网络策略
-
Secret 管理
- 建议使用文件而非环境变量
- 使用外部 Secret 存储
-
扩展准入控制
- 保障镜像来源
-
通用策略
- 命名空间隔离
- 在 Docker 中启用 seccomp
- 为 Pod 和容器启用 Security context
- 不用缺省命名空间
以上所述就是小编给大家介绍的《简介:CIS Kubernetes 安全基准指南》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。