Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >简介:CIS Kubernetes 安全基准指南

简介:CIS Kubernetes 安全基准指南

作者头像
崔秀龙
发布于 2020-02-26 03:11:49
发布于 2020-02-26 03:11:49
2.5K10
举报
文章被收录于专栏:伪架构师伪架构师

在使用 Kube Bench 的过程中注意到,其指导依据来自于 CIS Benchmark,于是顺藤摸瓜,下载了 CIS Kubernetes 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
    • 不用缺省命名空间

附件

暗号:cis,获取原文下载链接,其中包含所有检查项目的详细解释,以及检查工作表。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 伪架构师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
10 条评论
热度
最新
cis
cis
回复回复点赞举报
cis
cis
回复回复点赞举报
cis
cis
回复回复点赞举报
cis
cis
回复回复点赞举报
cis
cis
回复回复点赞举报
cis
cis
回复回复点赞举报
cis
cis
回复回复点赞举报
请问下原文下载链接在哪
请问下原文下载链接在哪
回复回复点赞举报
cis
cis
回复回复点赞举报
cis
cis
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
kubernetes关键概念总结
每个service对应一个cluster IP,cluster IP对应的服务网段最初是在配置kube-apiserver、kube-controller-manager和kube-proxy的systemd unit时指定的,如kube-apiserver参数为--service-cluster-ip-range。
charlieroro
2020/03/24
4210
最全K8S加固指南:12个最佳实践,防止K8S配置错误
在容器环境中,K8S管理着拥有数个、数百个甚至数千个节点的容器集群,其配置的重要性不可忽略。K8S的配置选项很复杂,一些安全功能并非默认开启,这加大了安全管理难度。如何有效地使用包括Pod安全策略、网络策略、API服务器、Kubelet及其他K8S组件和功能策略建立安全的K8S环境?整理了以下12个最佳实践,对K8S进行全面加固。
CNCF
2021/11/11
1.5K0
最全K8S加固指南:12个最佳实践,防止K8S配置错误
12个Kubernetes配置的最佳实践
到目前为止,我们大多数人都听说过人为错误,在导致数据泄露中所扮演的角色。自7月以来,Capital One发生的黑客入侵事件只是一连串安全事件中的最新一起,这些事件的成功可以追溯到错误配置的基础设施或安全设置。随着组织加速使用容器和Kubernetes,并将应用程序开发和部署转移到云平台,防止环境中可避免的错误配置变得越来越重要。
CNCF
2019/12/04
9790
Kubernetes 安全大揭秘:从攻击面剖析到纵深防御体系构建(上)
在云原生技术席卷全球的今天,Kubernetes(K8s)已成为容器编排领域的事实标准。据CNCF 2023年调查报告显示,96%的受访企业正在或计划使用Kubernetes,其覆盖场景从核心业务系统到边缘计算节点无所不包。然而,随着K8s的普及,其暴露的安全问题也愈发严峻。
星尘安全
2025/02/25
4580
Kubernetes 安全大揭秘:从攻击面剖析到纵深防御体系构建(上)
kubernetes(十五) kubernetes 运维
1、服务器初始化 2、部署etcd集群,包括生成证书 3、部署master(kube-apiserver、scheduler、controller-manager) 4、部署node(kubelet、proxy、docker) 5、部署网络组件、dashboard、ingress controller、配置pv自动供给、CoreDNS等
alexhuiwang
2020/09/23
1.2K0
kubernetes(十五) kubernetes 运维
Kubernetes | 安全 - Safety
Kubernetes 作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。API Server 是集群内部 各个组件通信的中介,也是外部控制的入口。所以 Kubernetes 的安全机制基本就是围绕保护 API Server 来设计 的。Kubernetes 使用了认证(Authentication)、鉴权(Authorization)、准入控制(Admission Control)三步来保证API Server的安全.
Zkeq
2023/05/14
3340
Kubernetes | 安全 - Safety
Kubernetes 的授权和审计
Kubernetes 中的账号和认证,除了基础的双向证书认证之外,还有 OIDC 等方式的第三方集成能力,这里暂且不提。这里主要想谈谈授权和审计方面的内容。
崔秀龙
2020/05/27
6800
k8s实践(6)--Kubernetes安全:API Server访问控制
安全永远是一个重大的话题,特别是云计算平台,更需要设计出一套完善的安全方案,以应对复杂的场景。 Kubernetes主要使用Docker作为应用承载环境,Kubernetes首先设计出一套API和敏感信息处理方案,当然也基于Docker提供容器安全控制。以下是Kubernetes的安全设计原则:
黄规速
2022/04/14
2.5K0
k8s实践(6)--Kubernetes安全:API Server访问控制
K8s API访问控制
我们在请求API Server的时候,会经历哪些步骤呢?总得来说,有如下步骤:
谢公子
2023/02/27
2.3K0
K8s API访问控制
Kubernetes 运维遇到的问题记录(1)
ssh进入集群节点,telnet 本机的 kubelete 的 服务端口 10250,可以。
后端云
2022/11/25
1.4K0
Kubernetes 运维遇到的问题记录(1)
kube-apiserver启动命令参数解释
在apiserver启动时候会有很多参数来配置启动命令,有些时候不是很明白这些参数具体指的是什么意思。
小陈运维
2022/03/07
2.8K0
Kubernetes TLS bootstrapping
众所周知 TLS 的作用就是对通讯加密,防止中间人窃听;同时如果证书不信任的话根本就无法与 apiserver建立连接,更不用提有没有权限向 apiserver 请求指定内容。在开启了 TLS 的集群中,每当与集群交互的时候少不了的是身份认证,使用 kubeconfig(即证书) 和 token 两种认证方式是最简单也最通用的认证方式。
看、未来
2022/06/12
9130
Kubernetes TLS bootstrapping
Kubernetes云原生安全渗透学习
Kubernetes简称k8s,是当前主流的容器调度平台,被称为云原生时代的操作系统。在实际项目也经常发现厂商部署了使用k8s进行管理的云原生架构环境,在目前全面上云的趋势,有必要学习在k8s环境的下的一些攻击手法,本文非常适合刚入门或者准备学习云安全方向的安全人员,每个步骤都是亲手复现整理。文中如有错误的地方,还望各位大佬在评论区指正。
王先森sec
2023/04/24
1.9K0
Kubernetes云原生安全渗透学习
Kubernetes(k8s)权限管理RBAC详解
在K8S中支持授权有AlwaysDeny、AlwaysAllow、ABAC、Webhook、RBAC、Node共6种模式,从1.6版本起,K8S默认启用RBAC访问控制策略,目前RBAC已作为稳定的功能,管理员可以通过 Kubernetes API 动态配置策略来启用RBAC,需要在 kube-apiserver 中添加参数--authorization-mode=RBAC。
王先森sec
2023/10/17
2.1K0
Kubernetes(k8s)权限管理RBAC详解
Kubernetes 安全机制解读
在 k8s 中,所有资源的访问和变更都是围绕 APIServer 展开的。比如说 kubectl 命令、客户端 HTTP RESTFUL 请求,都是去 call APIServer 的 API 进行的,本文就重点解读 k8s 为了集群安全,都做了些什么。
CS实验室
2021/03/22
9010
Kubernetes 安全机制解读
Kubernetes集群的身份验证
用户在访问Kubernetes集群的API server时,访问请求需要经过身份验证、授权和准入控制这三个阶段的检查,才能真正到达API服务,如下图所示:
mazhen
2023/11/24
5980
Kubernetes集群的身份验证
外包精通--0成本学习IT运维k8s之安全(一)kube-bench
Kubernetes CIS基准:https://www.cisecurity.org/benchmark/kubernetes/
Godev
2024/05/05
3450
外包精通--0成本学习IT运维k8s之安全(一)kube-bench
第四篇(二进制部署k8s集群---master集群部署)
本文在以下主机上操作部署k8s集群 k8s-master1:192.168.206.31 k8s-master2:192.168.206.32 k8s-master3:192.168.206.33
@凌晨
2020/11/23
7580
9-Kubernetes入门基础之集群安全介绍
描述: Kubernetes 作为一个分布式的集群管理工具,保证集群的安全性是非常至关重要的。同时由于API Server是集群内部各个组件通信的中介,也是外部控制的入口,所以Kubernetes的安全机制基本是就是围绕保护API Server 来进行设计的;
全栈工程师修炼指南
2022/09/29
1.4K0
9-Kubernetes入门基础之集群安全介绍
附005.Kubernetes身份认证
与Kubernetes交互通常有kubectl、客户端(Dashboard)、REST API请求。
木二
2019/07/01
1.6K0
附005.Kubernetes身份认证
相关推荐
kubernetes关键概念总结
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档