【云原生-K8s】检查yaml文件安全配置kubesec部署及使用

    • 基础介绍
      • 基础描述
      • 特点
    • 部署
      • 在线下载
      • 百度网盘下载
      • 安装
    • 使用
      • 官网样例yaml
      • HTTP远程调用
      • 安全建议
    • 总结

基础介绍

在这里插入图片描述

基础描述

  • Kubesec 是一个开源项目,旨在为 Kubernetes 提供安全特性。它提供了一组工具和插件,用于保护和管理在 Kubernetes 集群中的工作负载和基础设施。Kubesec 的目标是帮助开发人员和运维人员在 Kubernetes 环境中实现安全性、可靠性和合规性。

特点

  • 自动化的安全策略:Kubesec 提供了自动化的安全策略,可以基于角色的访问控制(RBAC)和标签选择器来定义和执行安全规则。这可以帮助开发人员和运维人员快速部署和管理安全策略,而无需手动编写复杂的脚本来保护 Kubernetes 集群。
  • 加密和身份验证:Kubesec 支持对 Kubernetes 集群中的数据和通信进行加密,以确保敏感数据的安全性。它还提供了身份验证和授权机制,可以验证集群中节点的身份并限制它们的访问权限。
  • 漏洞扫描和修复:Kubesec 可以与漏洞扫描工具集成,以发现和修复 Kubernetes 工作负载中的漏洞。它还可以监视集群中的容器映像,并在发现新漏洞时自动更新容器映像。
  • 合规性检查:Kubesec 可以与合规性框架集成,以确保 Kubernetes 集群符合特定的安全标准和法规要求。它提供了可扩展的插件架构,可以轻松添加新的合规性规则和检查。
  • 安全审计日志:Kubesec 可以生成详细的安全审计日志,记录集群中发生的安全事件和操作。这些日志可以用于监控和检测潜在的安全问题,并提供合规性报告。
    kubesec官网:https://kubesec.io/
    开源地址:https://github.com/controlplaneio/kubesec

部署

在线下载

在这里插入图片描述

wget https://github.com/controlplaneio/kubesec/releases/download/v2.14.0/kubesec_linux_amd64.tar.gz

百度网盘下载

链接:https://pan.baidu.com/s/1KHb5Qn9k1uIQeFOE_Ib6rg?pwd=h0i0
提取码:h0i0
–来自百度网盘超级会员V7的分享

安装

  • 解压:tar -zxf kubesec_linux_amd64.tar.gz
  • 移入二进制目录:mv kubesec /usr/bin/
  • 查询版本信息:kubesec version
  • 查询 kubesec scan --help 使用方法
    在这里插入图片描述

使用

官网样例yaml

cat <<EOF > kubesec-test.yaml
apiVersion: v1
kind: Pod
metadata:name: kubesec-demo
spec:containers:- name: kubesec-demoimage: gcr.io/google-samples/node-hello:1.0securityContext:readOnlyRootFilesystem: true
EOF
  • 执行 检查yaml安全配置
kubesec scan kubesec-test.yaml

HTTP远程调用

  • 部署docker容器
docker run -d -p 8080:8080 kubesec/kubesec http 8080

在这里插入图片描述

  • 本地执行post请求进行安全扫描
curl -sSX POST --data-binary @kubesec-test.yaml http://localhost:8080/scan

在这里插入图片描述

安全建议

  • 安全扫描的json结果,每个id给我安全配置建议,可进行参考
[{"object": "Pod/kubesec-demo.default","valid": true,"fileName": "kubesec-test.yaml","message": "Passed with a score of 1 points","score": 1,"scoring": {"passed": [{"id": "ReadOnlyRootFilesystem","selector": "containers[] .securityContext .readOnlyRootFilesystem == true","reason": "An immutable root filesystem can prevent malicious binaries being added to PATH and increase attack cost","points": 1}],"advise": [{"id": "ApparmorAny","selector": ".metadata .annotations .\"container.apparmor.security.beta.kubernetes.io/nginx\"","reason": "Well defined AppArmor policies may provide greater protection from unknown threats. WARNING: NOT PRODUCTION READY","points": 3},{"id": "ServiceAccountName","selector": ".spec .serviceAccountName","reason": "Service accounts restrict Kubernetes API access and should be configured with least privilege","points": 3},{"id": "SeccompAny","selector": ".metadata .annotations .\"container.seccomp.security.alpha.kubernetes.io/pod\"","reason": "Seccomp profiles set minimum privilege and secure against unknown threats","points": 1},{"id": "AutomountServiceAccountToken","selector": ".spec .automountServiceAccountToken == false","reason": "Disabling the automounting of Service Account Token reduces the attack surface of the API server","points": 1},{"id": "RunAsGroup","selector": ".spec, .spec.containers[] | .securityContext .runAsGroup -gt 10000","reason": "Run as a high-UID group to avoid conflicts with the host's groups","points": 1},{"id": "RunAsNonRoot","selector": ".spec, .spec.containers[] | .securityContext .runAsNonRoot == true","reason": "Force the running image to run as a non-root user to ensure least privilege","points": 1},{"id": "RunAsUser","selector": ".spec, .spec.containers[] | .securityContext .runAsUser -gt 10000","reason": "Run as a high-UID user to avoid conflicts with the host's users","points": 1},{"id": "LimitsCPU","selector": "containers[] .resources .limits .cpu","reason": "Enforcing CPU limits prevents DOS via resource exhaustion","points": 1},{"id": "LimitsMemory","selector": "containers[] .resources .limits .memory","reason": "Enforcing memory limits prevents DOS via resource exhaustion","points": 1},{"id": "RequestsCPU","selector": "containers[] .resources .requests .cpu","reason": "Enforcing CPU requests aids a fair balancing of resources across the cluster","points": 1},{"id": "RequestsMemory","selector": "containers[] .resources .requests .memory","reason": "Enforcing memory requests aids a fair balancing of resources across the cluster","points": 1},{"id": "CapDropAny","selector": "containers[] .securityContext .capabilities .drop","reason": "Reducing kernel capabilities available to a container limits its attack surface","points": 1},{"id": "CapDropAll","selector": "containers[] .securityContext .capabilities .drop | index(\"ALL\")","reason": "Drop all capabilities and add only those required to reduce syscall attack surface","points": 1}]}}
]

在这里插入图片描述

  • 如上图,yaml安全配置建议配置内存及cpu相关等参数
  • 在实际业务中,如自建devops平台、或者在实际编写yaml过程中,都可以使用kubesec进行检查校验,根据实际情况进行修改。

总结

Kubesec 是一个针对 Kubernetes 的安全特性扩展项目,旨在提供自动化的安全策略、加密和身份验证、漏洞扫描和修复、合规性检查以及安全审计日志等功能,以增强 Kubernetes 集群的安全性、可靠性和合规性。
通过部署 Kubesec,可以自动化地定义和执行安全规则,减少手动编写安全脚本的工作量,同时提供加密和身份验证机制,确保集群中的数据和通信的安全性。此外,Kubesec 还支持与漏洞扫描工具集成,以发现和修复工作负载中的漏洞,并可以监视容器映像以自动更新漏洞修复。
Kubesec 还提供了合规性检查功能,以确保 Kubernetes 集群符合特定的安全标准和法规要求。它支持可扩展的插件架构,可以轻松添加新的合规性规则和检查。此外,Kubesec 还生成详细的安全审计日志,记录集群中的安全事件和操作,以便进行监控和检测潜在的安全问题,并提供合规性报告。
总之,Kubesec 是一个强大的工具,可以帮助开发人员和运维人员在 Kubernetes 环境中实现安全性、可靠性和合规性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/198615.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端三段面试经历(字节、滴滴、虎牙),讲真的还挺难的

小编整理最近了小伙伴中具有代表性的面试经历及面试题&#xff0c;他们的情况小编就不多说了&#xff0c;一起看看他们面试中都遇到了什么问题。 字节一面 刚开始就问我的项目&#xff0c;问得很详细。 webpack 提高构建速度的方式loader 输入什么产出什么 &#xff1f;webpac…

全光谱护眼灯好吗?考公用的台灯推荐

全光谱护眼台灯是近年来新兴的一种照明产品&#xff0c;其使用全光谱LED灯泡&#xff0c;能够模拟自然光的光谱&#xff0c;为人们提供更加舒适、柔和的照明环境。相比传统的白炽灯或荧光灯&#xff0c;全光谱护眼台灯在照明效果、节能环保、眼睛健康等方面都有着明显的优势。 …

mysql:免费的GUI客户端工具推荐并介绍常用的操作

给大家推荐几个常用的 mysql 数据库客户端 sequel-pro sequel-ace 官网下载地址 免费 sequel-ace 可以理解为 Sequel Pro 的升级版&#xff0c;由于Sequel Pro官方不维护了&#xff0c;特别是对 MySQL 8.0 支持不好&#xff0c;所以现在由社区维护了新分支 sequel-ace&#x…

生鲜蔬果展示预约小程序作用是什么

线下生鲜蔬果店非常多&#xff0c;对商家来说主要以同城生意为主&#xff0c;而在互联网电商的发展下&#xff0c;更多的商家会选择搭建私域商城进行多渠道的销售卖货和拓展&#xff0c;当然除了直接卖货外&#xff0c;还有产品纯展示或预约订购等需求。 但无论哪种模式&#…

【云原生 | Docker】Docker核心概念 应用上手最佳流程

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…

面试题:Java Switch 是如何支持 String 的,为什么不支持 long

目录 前言一、结论二、枚举类型是咋变成 int 类型的&#xff1f;三、String 类型是咋变成 int 类型的&#xff1f;四、它们的包装类型支持吗&#xff1f; 前言 我们知道Java Switch 支持byte、short、int类型&#xff0c;在JDK 1.5 时&#xff0c;支持了枚举类型&#xff0c;在…

STC15F100E单片机模拟串口

文章目录 一、芯片简介二、开发环境三、软件模拟串口参考 一、芯片简介 STC15F100系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机&#xff0c;新一代8051单片机&#xff0c;指令代码完全兼容传统8051&#xff0c;但是速度快6-12倍。 内部集成R/C时钟&#xff0c;5MHz…

25、pytest的测试报告插件allure

allure简介 在这里&#xff0c;你将找到使用allure创建、定制和理解测试报告所需的一切。开始让你的测试沟通更清晰&#xff0c;更有影响力。 Allure Report是一个实用程序&#xff0c;它处理由兼容的测试框架收集的测试结果并生成HTML报告。 安装allure 1、确保安装了Java…

【SSM源码】基于JAVA的高校竞赛和考级查询系统

该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程等学习内容。 目录 一、项目介绍&#xff1a; 二、文档学习资料&#xff1a; 三、模块截图&#xff1a; 四、开发技术与运行环境&#xff1a; 五、代码展示&#xff1a; 六、数据库表截图&#xff1a…

MISRA C 2012 标准浅析

MISRA(The Motor Industry Software Reliability Association)&#xff0c;汽车工业软件可靠性联会&#xff1b; 1994年&#xff0c;英国成立。致力于协助汽车厂商开发安全可靠的软件的跨国协会&#xff0c;其成员包括&#xff1a;AB汽车电子、罗孚汽车、宾利汽车、福特汽车、捷…

js实现动态添加删除表格数据的两种方式

目录 1、通过创建节点实现 css代码 html代码 js代码 完整代码 2、通过渲染表格&#xff0c;事件委托实现 css代码 html代码 js代码 完整代码 效果图 1、通过创建节点实现 思路&#xff1a;先把整体的html结构写出来&#xff0c;table表格分为3部分&#xff0c;其中t…

HNU-电路与电子学-2021期末A卷(不含解析)

【写在前面】 电路与电子学好像是从2020级开设的课程&#xff0c;故实际上目前只有2020与2021两个年级考过期末考试。 本份卷子的参考性很高&#xff0c;这是2020级的期末考卷。题目都是很典型的&#xff0c;每一道题都值得仔细研究透。 特别注意&#xff1a;看得懂答案跟写得…

逆水行舟!浅谈24届双非本科秋招

逆水行舟&#xff01;浅谈24届双非本科的秋招 逆水行舟&#xff01;浅谈24届双非本科的秋招0、背景 -- 写下本文的初衷1、实习 -- 秋招的预备战役1.1 科大讯飞1.2 三七互娱 2、秋招 -- 一场没有硝烟的战争3、总结 -- 做好自己想做的事情 0、背景 – 写下本文的初衷 如题&#…

常用汇编指令集

寄存器 如上是OD展示的寄存器&#xff0c;逐条说明常用的寄存器和标志位含义&#xff1a; EIP&#xff1a;寄存器指向即将要执行的指令的地址&#xff08;EIP中的地址&#xff0c;就是下一步要执行指令的地址&#xff09; ESP&#xff1a;里面的内容永远指向堆栈的最顶端 EAX&…

一文详解集合竞价,建议收藏!

集合竞价是指对在规定的一段时间内接受买卖申报一次性集中撮合的竞价方式。沪深市场9:15-9:25及14:57-15:00为集合竞价的时间段。集合竞价的所有交易以同一个价格成交。集合竞价的成交价确定原则是&#xff1a; 1、可实现最大成交量的价格&#xff1b; 2、高于该价格的买入申…

mac苹果笔记本电脑如何强力删除卸载app软件?

苹果电脑怎样删除app&#xff1f;不是把app移到废纸篓就行了吗&#xff0c;十分简单呢&#xff01; 其实不然&#xff0c;因为在Mac电脑上&#xff0c;删除应用程序只是删除了应用程序的主要组件。大多数时候&#xff0c;系统会有一个相当长的目录&#xff0c;包含所有与应用程…

Java三种代理模式:静态代理、动态代理和CGLIB代理

Java三种代理模式&#xff1a;静态代理、动态代理和CGLIB代理 代理模式 代理模式是23种设计模式种的一种。代理模式是一种结构型设计模式&#xff0c;它允许为其他对象提供一个替代品或占位符&#xff0c;以控制对这个对象的访问。代理模式可以在不修改被代理对象的基础上&am…

C语言之多重循环

目录 二重循环 用break语句强制结束循环 显示图形 绘制等腰直角三角形 多重循环 continue语句 将循环语句的循环体作为循环语句&#xff0c;就可以进行二重、三重循环。这样的循环称为多重循环。 我们先来了解二重循环 二重循环 在之前我们学习到的循环中的程序都比较简…

Java---异常

文章目录 1. 异常概述2. try...catch3. Throwable成员方法4. 编译时异常和运行时异常区别5. 异常处理之throws6. 自定义异常7. throws和throw的区别 1. 异常概述 1. 异常&#xff1a;就是程序中出现了不正常的情况。 2. Error&#xff1a;严重问题&#xff0c;不需要处理。Exce…

【带头学C++】----- 九、类和对象 ---- 9.4 拷贝构造函数、赋值

目录 9.4 拷贝构造函数、赋值 9.4.1 定义拷贝构造函数 9.4.2 拷贝构造和无参构造、有参构造的关系 9.4.3 拷贝构造的几种调用形式 1、旧对象给新对象初始化&#xff0c;调用拷贝构造 2、给对象取别名不会调用拷贝构造 3、普通对象作为函数参数&#xff0c;调用函数时会发…