前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用kubeaudit审查Kubernetes集群中的常见安全控制策略

如何使用kubeaudit审查Kubernetes集群中的常见安全控制策略

作者头像
FB客服
发布2023-03-30 19:23:00
8460
发布2023-03-30 19:23:00
举报
文章被收录于专栏:FreeBuf

 关于kubeaudit 

kubeaudit是一款针对Kubernetes集群安全的审计工具,该工具基于命令行实现其功能,并通过Golang包帮助广大研究人员审计Kubernetes集群中的各种安全问题,其中包括以非root权限运行或使用只读root文件系统等等。

 工具安装 

Brew

代码语言:javascript
复制
brew install kubeaudit

下载源码

广大研究人员还可以直接访问该项目的【Releases页面】下载最新的官方稳定版。

自定义构建

该项目可能随时会进行代码更新,如需使用最新版本的功能,你可以选择进行自定义构建,在构建前别忘了在本地设备上安装并配置好Go v1.17+环境,然后运行下列命令:

代码语言:javascript
复制
go get -v github.com/Shopify/kubeaudit

Docker使用

该项目还提供了一个Docker镜像:shopify/kubeaudit,广大研究人员也可以通过Docker镜像来运行kubeaudit。

 工具使用 

kubeaudit提供了以下三种模式:

1、Manifest模式 2、本地模式 3、集群模式

Manifest模式

我们可以通过“-f/--manifest”选项来给工具提供一个Kubernetes Manifest文件,此时kubeaudit将会审计这个Manifest文件。

参考命令如下:

代码语言:javascript
复制
kubeaudit all -f "/path/to/manifest.yml"

输出结果如下:

代码语言:javascript
复制
$ kubeaudit all -f "internal/test/fixtures/all_resources/deployment-apps-v1.yml"


---------------- Results for ---------------


  apiVersion: apps/v1
  kind: Deployment
  metadata:
    name: deployment
    namespace: deployment-apps-v1


--------------------------------------------


-- [error] AppArmorAnnotationMissing
   Message: AppArmor annotation missing. The annotation 'container.apparmor.security.beta.kubernetes.io/container' should be added.
   Metadata:
      Container: container
      MissingAnnotation: container.apparmor.security.beta.kubernetes.io/container


-- [error] AutomountServiceAccountTokenTrueAndDefaultSA
   Message: Default service account with token mounted. automountServiceAccountToken should be set to 'false' or a non-default service account should be used.


-- [error] CapabilityShouldDropAll
   Message: Capability not set to ALL. Ideally, you should drop ALL capabilities and add the specific ones you need to the add list.
   Metadata:
      Container: container
      Capability: AUDIT_WRITE
...

如果没有报错并且没有安全问题的话,则会返回下列内容:

代码语言:javascript
复制
All checks completed. 0 high-risk vulnerabilities found

自动修复

Manifest模式还支持使用“autofix”命令自动修复所有的安全问题:

代码语言:javascript
复制
kubeaudit autofix -f "/path/to/manifest.yml"

集群模式

kubeaudit支持检测当前环境是否是集群中的一个容器,并尝试审计该集群中所有的Kubernetes资源:

代码语言:javascript
复制
kubeaudit all

本地模式

kubeaudit将会使用本地kubeconfig文件($HOME/.kube/config)尝试与一个集群进行连接,可以使用“--kubeconfig”选项来指定kubeconfig路径:

代码语言:javascript
复制
kubeaudit all --kubeconfig "/path/to/config" --context my_cluster

许可证协议

本项目的开发与发布遵循MIT开源许可证协议。

项目地址

https://github.com/Shopify/kubeaudit

参考资料

https://pkg.go.dev/github.com/Shopify/kubeaudit

https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/

精彩推荐

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

本文分享自 FreeBuf 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •  关于kubeaudit 
  •  工具安装 
    • Brew
      • 下载源码
        • 自定义构建
          • Docker使用
          •  工具使用 
            • Manifest模式
              • 自动修复
                • 集群模式
                  • 本地模式
                  • 许可证协议
                  • 项目地址
                  • 参考资料
                  相关产品与服务
                  容器服务
                  腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档