CKS之k8s安全基准工具:kube-bench

这篇具有很好参考价值的文章主要介绍了CKS之k8s安全基准工具:kube-bench。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 CIS K8s安全基准(CIS K8s Benchmark)

        CIS Kubernetes Benchmark 由互联网安全中心(CIS)社区维护,旨在提供 Kubernetes 的安全配置基线,旨在为互联网环境提供免费的安全防御方案。CIS是一个非营利性组织,其制定的安全基准覆盖了多个领域,包括操作系统、中间件、应用程序等多个层面。

        CIS官网:https://www.cisecurity.org/

        在Kubernetes领域,CIS也提出了相应的安全基准,专门针对Kubernetes集群的配置和管理提出了一系列安全建议和最佳实践。这些安全基准旨在帮助组织评估和加强其Kubernetes集群的安全性。

        Kubernetes CIS基准:https://www.cisecurity.org/benchmark/kubernetes/

 CIS K8s安全基准测试工具(kube-bench)

        kube-bench是由容器安全企业Aquasecurity开发的一款工具,它基于CIS为Kubernetes制定的安全标准,专门用于评估Kubernetes集群的安全配置。这个工具主要的功能包括检测存在安全隐患的配置项、文件权限设置、账户安全及暴露的端口等多个方面。通过这些检查,kube-bench帮助用户识别并修正Kubernetes集群中可能存在的安全问题,进而增强集群的安全性。

项目地址:https://github.com/aquasecurity/kube-bench

kube-bench部署

1、下载二进制包

https://github.com/aquasecurity/kube-bench/releases

2、解压使用

tar zxvf kube-bench_0.6.3_linux_amd64.tar.gz

mkdir /etc/kube-bench # 创建默认配置文件路径

mv cfg /etc/kube-bench/cfg

kube-bench使用

1. 运行所有适用的检查项

   如果无法运行,可容器化部署,参考文章:https://zhuanlan.zhihu.com/p/627749341

kube-bench run

2. 只运行控制组内的某些检查项

kube-bench run --check=1.1.1,1.1.2

3. 列出所有可用的控制检查项

kube-bench check --list

4. 针对特定的节点角色运行检查(master/node/etcd/policies)

kube-bench run --targets=master,node

5. 将结果输出为JSON格式

kube-bench run --json

6. 并行运行检查以提高速度

kube-bench run --parallel

7. 更新CIS基准到最新版本

kube-bench download latest

8. 查看kube-bench版本

kube-bench version


kube-bench配置

1.文件格式
 kube-bench的配置文件采用YAML格式,包含一系列的检查项配置。每个检查项通过唯一的id进行标识。

 测试项目配置文件路径:/etc/kube-bench/cfg/cis-1.6/

配置项示例:

  • id: 1.2.21
    text: "Ensure that the --profiling argument is set to false (Automated)"
    audit: "/bin/ps -ef | grep $apiserverpbin | grep -v grep"
    tests:
    test_items:
    • flag: "--profiling"
      compare:
      op: eq
      value: false
      remediation: |
      Edit the API server pod specification file $apiservercconf
      on the master node and set the below parameter.
      --profiling=fals

2.检查项字段
每个检查项都包含以下几个主要字段:

  • id: 唯一标识符

  • text: 对该检查项的文字描述

  • audit: 执行审计的命令,用于检查当前系统状态

  • tests: 具体的测试条件  #tests下的test_items字段定义了具体的测试条件。可以根据实际需求修改该部分的测试逻辑

    • test_items: 实际测试项
    • compare: 测试结果与期望值的比较方式(eq、neq等)
  • remediation: 如果审计失败,给出的修复建议

  • scored: 该项对总分数的影响(true、false、WARN)

  • type: 该项的处理方式(manual、skip、info)   #对于某些无法自动检查的项目,可以设置type=manual,kube-bench就会跳过该项并给出WARN警告。如果想跳过某项检查,可以将对应项的type设为skip,这样kube-bench就不会执行该项检查。

  1. 处理方式

  2. 测试条件

kube-bench运行示例

输出结果分为不同的部分,每部分检查 Kubernetes 的特定安全性方面,比如 API 服务器的配置、控制器管理器、调度器等。每项检查后面标记了“PASS”、“WARN”或“FAIL”,分别表示通过、警告或失败。警告和失败项通常需要人工检查或更正。例如,“FAIL”可能表明配置不符合安全最佳实践,而“WARN”可能意味着某些安全特性没有被启用或需要人工确认配置是否正确。

  • “PASS”:表示检查项符合安全推荐。
  • “WARN”:表示配置可能存在风险,建议进行检查。
  • “FAIL”:表示配置不符合安全推荐,需要采取措施改进。

下图为Node相关的安全检查

1.1.12项“确保 etcd 数据目录权限设置为 700 或更严格 (自动化)”显示为“FAIL”,意味着当前的权限设置不够严格,可能需要进行权限的修改来加强安全性。

CKS之k8s安全基准工具:kube-bench,云原生,kubernetes,安全,容器

下图为关于Node节点的修复建议

1.1.9:建议对特定文件修改权限为644。 1.1.10:建议更改文件的所有权为 root 用户和 root 组。 1.1.12:针对 etcd 服务器节点,提供了获取 etcd 数据目录的方法,并建议将该目录的所有权更改为 etcd 用户和 etcd 组。

后面的部分是关于 API 服务器的安全配置建议,包括:

1.2.1:编辑 API 服务器 pod 规范文件,设置参数 --anonymous-auth=false 以禁用匿名访问。 1.2.6:建议根据 Kubernetes 文档设置 TLS 连接,并编辑 kube-apiserver 的配置文件,设置 --kubelet-certificate-authority 参数。 1.2.10:建议编辑 API 服务器 pod 规范文件,设置 admission 控制插件相关参数。

CKS之k8s安全基准工具:kube-bench,云原生,kubernetes,安全,容器

下图为关于Node安全检查的结果

CKS之k8s安全基准工具:kube-bench,云原生,kubernetes,安全,容器文章来源地址https://www.toymoban.com/news/detail-846817.html

到了这里,关于CKS之k8s安全基准工具:kube-bench的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 云原生管理工具dashboard--Kube Sphere(k8s)和Portainer(Docker)安装

    安装 推荐直接使用All in One 安装模式安装,最为简单,同时安装kube Sphere也支持同时安装好k8s的环境 官方安装网址如下,写的很详细,也贴心的准备了中国地区安装的网络问题应对方式 在 Linux 上以 All-in-One 模式安装 KubeSphere 安装 建议直接以docker形式安装,命令如下 -d : 表示

    2024年01月22日
    浏览(42)
  • kubernetes CIS 安全基准 Kube-bench 安全工具

    开头语 写在前面:如有问题,以你为准, 目前24年应届生,各位大佬轻喷,部分资料与图片来自网络 内容较长,页面右上角目录方便跳转 问题:下载pdf后,根据里面的基准来检查K8s集群配置,但内容量太大,一般会采用相关工具来完成这项工作。 Kube-bench 是容器安全厂商

    2024年02月02日
    浏览(46)
  • k8s学习-CKS真题-Runtime设置gVisor

    安装gVisor 使用以下命令下载gvisor安装包: 将下载的文件重命名为runsc,并放在/usr/local/bin目录中: 为runsc文件赋予可执行权限: 运行以下命令以安装gvisor到docker: 安装到containerd 由于我的集群版本已经是v1.25了,改为了containerd,所以需要修改一下配置 添加以下内容到配置中

    2023年04月14日
    浏览(37)
  • 【K8S系列】深入解析k8s 网络插件—kube-router

    做一件事并不难,难的是在于坚持。坚持一下也不难,难的是坚持到底。 文章标记颜色说明: 黄色 :重要标题 红色 :用来标记结论 绿色 :用来标记论点 蓝色 :用来标记论点 在现代容器化应用程序的世界中,容器编排平台Kubernetes已经成为标准。Kubernetes是一个分布式系统

    2024年02月08日
    浏览(37)
  • k8s kube-proxy详解

    kube-proxy是kubernetes中网络核心组件,实现了服务暴露和转发等网络功能。kube-proxy支持userspace,ipvs和iptables三种代理模式。userspace性能问题较严重,基本不再使用,应用最多的是iptables和ipvs模式。 kube-proxy 以daemonset的方式运行在每个Node计算节点上,负责Pod网络代理, 它会定时通

    2024年02月10日
    浏览(60)
  • k8s安装kube-promethues(0.7版本)

    目录 k8s安装kube-promethues(0.7版本) 一.检查本地k8s版本,下载对应安装包 二.安装前准备 1.文件分类整理 2.查看K8s集群是否安装NFS持久化存储,如果没有则需要安装配置 1).安装NFS服务 2).k8s注册nfs服务 3.修改Prometheus 持久化 4.修改grafana持久化配置 5.修改 promethus和Grafana的Service 端口

    2024年02月08日
    浏览(42)
  • 详解K8s 镜像缓存管理kube-fledged

    本文分享自华为云社区《K8s 镜像缓存管理 kube-fledged 认知》,作者: 山河已无恙。 我们知道  k8s  上的容器调度需要在调度的节点行拉取当前容器的镜像,在一些特殊场景中, 需要 快速启动和/或扩展 的应用程序。例如,由于数据量激增,执行实时数据处理的应用程序需要

    2024年04月15日
    浏览(49)
  • k8s安装promethues,kube-promethues安装法

    目录 k8s安装kube-promethues(0.7版本) 一.检查本地k8s版本,下载对应安装包 二.安装前准备 1.文件分类整理 2.查看K8s集群是否安装NFS持久化存储,如果没有则需要安装配置 1).安装NFS服务 2).k8s注册nfs服务 3.修改Prometheus 持久化 4.修改grafana持久化配置 5.修改 promethus和Grafana的Service 端口

    2024年02月08日
    浏览(76)
  • k8s安装promethues监控,kube-promethues安装法

    目录 k8s安装kube-promethues(0.7版本) 一.检查本地k8s版本,下载对应安装包 二.安装前准备 1.文件分类整理 2.查看K8s集群是否安装NFS持久化存储,如果没有则需要安装配置 1).安装NFS服务 2).k8s注册nfs服务 3.修改Prometheus 持久化 4.修改grafana持久化配置 5.修改 promethus和Grafana的Service 端口

    2024年02月08日
    浏览(36)
  • 记录k8s kube-controller-manager-k8s-master kube-scheduler-k8s-master重启

    1、报错如下 I0529 01:47:12.679312       1 event.go:307] \\\"Event occurred\\\" object=\\\"k8s-node-1\\\" fieldPath=\\\"\\\" kind=\\\"Node\\\" apiVersion=\\\"v1\\\" type=\\\"Normal\\\" reason=\\\"CIDRNotAvailable\\\" message=\\\"Node k8s-node-1 status is now: CIDRNotAvailable\\\" E0529 01:48:44.516760       1 controller_utils.go:262] Error while processing Node Add/Delete: failed to allocate cid

    2024年02月09日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包