Skip to main content

Command Palette

Search for a command to run...

简介:CIS Kubernetes 安全基准指南

Updated
2 min read

在使用 Kube Bench 的过程中注意到,其指导依据来自于 CIS Benchmark,于是顺藤摸瓜,下载了 CIS Kubernetews Be nchmark 的 PDF 版本,全文有两百多页,阅读量还蛮大的,因此对其进行整理,便于大家参考使用。

简介

CIS 的指导原则里把建议行为分成了两级:

  • 一级:使用该建议不会造成负面影响。
  • 二级:仅建议在非常强调安全性的系统中使用,可能对系统有副作用。

另外还将具体的检测结果分为计分和不计分两种结果。

以上两个维度可以用来对系统进行现状评估,也有助于读者选择性地采纳加固措施。

整个指南分为五个部分:

  1. 控制平面组件
  2. etcd
  3. 控制平面配置
  4. 节点配置
  5. 策略

检查项概要

  1. 所有运行参数文件、kubeconfig 文件以及证书,权限至少应为 644 并且属于 root:root

  2. 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 等模式来代替客户端证书认证。
  3. Controller Manager

    • 关闭 profiling
    • 开启 --use-service-account-credentials
    • 绑定 127.0.0.1
    • 启用 --service-account-private-key-file
    • --feature-gates 启用 RotateKubeletServerCertificate
  4. Scheduler

    • 关闭 profiling
    • 绑定 127.0.0.1
  5. ETCD

    • 启用节点间和客户端的双向认证
    • 设置数据文件权限
    • 禁用 --auto-tls
    • 使用独立的 CA 证书
  6. 工作节点

    • 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
  7. RBAC 和 ServiceAccount

    • 仅在需要时才使用 cluster-admin 角色
    • 限制对 secret 的访问
    • 限制使用通配符
    • 限制分配 Pod 创建权限
    • 仅在需要时才加载 Token,缺省将 automountServic eAccountToken 为 false
    • 使用不同的 ServiceAccount
  8. Pod Security Policy

    • 使用 PSP 不应泛泛使用 privileged
    • 使用 PSP 谨慎控制如下授权
      • hostPID
      • hostIPC
      • hostNetwork
      • allowPrivilegeEscalation
      • runAsUser.rule
      • NET_RAW
    • 不应提供全面放行的 PSP 策略
  9. 网络策略和 CNI

    • 支持策略的 CNI
    • 所有命名空间都定义网络策略
  10. Secret 管理

    • 建议使用文件而非环境变量
    • 使用外部 Secret 存储
  11. 扩展准入控制

    • 保障镜像来源
  12. 通用策略

    • 命名空间隔离
    • 在 Docker 中启用 seccomp
    • 为 Pod 和容器启用 Security context
    • 不用缺省命名空间

More from this blog

龙虾恐慌:AIOps 又要改名了?

ChatGPT 开始,把 AI 拉近到普罗大众的面前,让无数人感受到 AI 的亲民魅力。而龙虾,则把大模型驱动的自动化能力,突然间变得水灵灵、活泼泼地走进千家万户。它不只是“风口上的猪”,而是风口本身。热度高到让 Mac mini 一度断货,不知道这在不在库克的预料之内。 每代人都有每代人的鸡蛋,春节期间,我就领了我的鸡蛋。翻出古老的 MacBook Air M1,充值各种大模型。当然了,这个工具

Mar 9, 20261 min read

再见 2025

我猜不少人以为这个号废了吧?并没有,只是今年变化有点大,一直有种抄起键盘,无从说起的感觉,所以一直偷懒到今天,2025 的最后一天。 今年是我的第四个本命年,去年末一期播客里,大内说本命年不是灾年,是变化年,有危也有机。可是讲真啊,只看到危,没看到机。 各种因缘际会,从鹅厂跳槽到前东家,已经接近四年,第一个合同期已经进入尾声。除了前两年还在云原生领域嗷嗷叫,后两年基本都是些鸡零狗碎的东西了,用老东家的术语说是——偏离主航道,可谓是前景暗淡了。 一旦确定要滚蛋,反倒心思轻松起来,每天骑着我的小红车...

Jan 5, 20261 min read

辅助编程?dora 说:我知道你很急可是请你别急

从 OpenGPT 把大模型的火烧旺了之后,这三年来,相信很多组织或摩拳擦掌、或躬身入局,希望借助聪明能干的大模型,或想偿还技术宅,或想降本增效,或想弯道超车。一时间,沉寂许久的 AIxx 又活过来了,LLM Ops、Vibe Coding、中医大模型、GPT 算命等等,全都老树发新芽,焕发了勃勃生机。那么视角拉回从业者最关注的饭碗相关的领域之一——AI 辅助开发,产生了什么触动,应该如何拥抱呢? DORA 的年度报告中给出了很有意思的结论——强者恒强。 执行摘要部分总结了几个有趣的点: 问题...

Oct 6, 20251 min read

[译]dora:ai 辅助软件开发状态报告

执行摘要 在 2025 年,科技领导者面临的核心问题已不再是“是否要采用 AI”,而是“如何实现其价值”。 DORA 的研究基于超过 100 小时的定性访谈和来自全球近 5,000 名技术专业人士的问卷调查。研究揭示了一个关键事实:AI 在软件开发中的主要角色是“放大器”。它会放大高效能组织的优势,也会凸显组织的缺陷。 关键结论:AI 是放大器 AI 投资的最大回报并非来自工具本身,而是来自组织底层系统的战略性建设: 高质量的内部平台 清晰的工作流 团队的协同能力 缺少这些基础,AI ...

Oct 2, 202514 min read

僭越了,有人在用 Rust 写 Kubernetes

一个新语言问世,最爱做的事情之一,就是重写存量软件了。 云原生喝酒 SIG 重点扶持项目——rk8s(https://github.com/rk8s-dev/rk8s) 也可以归在这个范畴里,只不过这个项目重写的东西比较大,是 Kubernetes。 从 2025 年 1 月第一个 Commit 开始,到现在有了 200 多次 Commit,十几万行代码。当然距离 Kubernetes 的几百万行代码还差得远——老马就是喜欢整这种大无畏项目。 另外该项目也是国内第一个脱离 Cargo 转向使用 ...

Sep 27, 20253 min read

【伪】架构师

342 posts