Kubescape入门
Kubescape是一个K8sopen-source工具,提供multi-cloudK8s单层玻璃,包括风险分析、安全合规性、RBAC可视化工具和图像漏洞扫描。Kubescape在CI/CD管道的早期阶段扫描K8s集群、YAML文件和HELM图表,根据多个框架(例如NSA-CISA、MITRE ATT&CK®)、软件漏洞和RBAC(role-based-access-control)违规检测错误配置,立即计算风险分数并显示风险趋势。由于其easy-to-useCLI界面、灵活的输出格式和自动扫描功能,它成为开发人员中的fastest-growingKubernetes工具之一,节省了Kubernetes用户和管理员的宝贵时间、精力和资源。Kubescape与其他DevOps工具进行了本地集成,包括Jenkins、CircleCI、Github workflows、Prometheus和Slack,并支持multi-cloudK8s部署,如EKS、GKE和AKS。
Kubescape CLI:

TL;DR
Install:
curl -s https://raw.githubusercontent.com/armosec/kubescape/master/install.sh | /bin/bash
在windows上安装
在macOS上安装
通过nix在NixOS或Linux/macOS上安装
使用Go安装
Run:
kubescape scan --submit --enable-host-scan --verbose

Kubescape是一个开源项目,我们欢迎您的反馈和改进意见。我们还致力于与Kubernetes社区合作,帮助使测试本身随着Kubernetes的发展变得更加健壮和完整。
点击👍 如果你想让我们继续发展和改善库贝斯卡普😀
成为团队的一员
我们邀请你加入我们的团队!我们对这个项目感到兴奋,希望回报我们得到的爱。
想要贡献吗?想讨论点什么吗?有问题吗?
- 请随意从路线图中选择任务或建议您自己的功能。有关更多信息,请直接与我们联系:)
- 打开一个问题,我们正试图在48小时内作出回应
- 加入我们在discord服务器上的讨论!

选项和示例
Playground
Tutorials
- Overview
- How To Secure Kubernetes Clusters With Kubescape And Armo
- 扫描Kubernetes YAML个文件
- 在air-gapped环境中扫描Kubescape(离线支持)
- 在Kubescape SaaS版本中管理异常
- 配置和运行自定义框架
- 自定义控件配置。Kubescape CLI、Kubescape SaaS
在Windows上安装
需要powershell v5.0+
iwr -useb https://raw.githubusercontent.com/armosec/kubescape/master/install.ps1 | iex
注意:如果出现错误,您可能需要使用更改执行策略(即启用Powershell)
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
在macOS上安装
-
brew tap armosec/kubescape -
brew install kubescape
安装在NixOS上或使用nix(社区)
直接问题通过此处提到的通道通过nix安装kubescape
您可以非正式地在Linux或macOS以及其他平台上使用nix。
在一个短暂的shell中尝试:nix-shell -p kubescape
照常安装声明性
NixOS:
# your other config ...
environment.systemPackages = with pkgs; [
# your other packages ...
kubescape
];
home-manager:
# your other config ...
home.packages = with pkgs; [
# your other packages ...
kubescape
];
或者到您的个人资料(不是首选):nix-env --install -A nixpkgs.kubescape
用法和示例
Examples
扫描正在运行的Kubernetes集群,并将结果提交给Kubescape SaaS版本
kubescape scan --submit --enable-host-scan --verbose
在这里阅读更多关于
enable-host-scan标志的信息
使用nsa框架扫描正在运行的Kubernetes集群,并将结果提交给Kubescape SaaS版本
kubescape scan framework nsa --submit
使用MITRE ATT&CK®框架扫描正在运行的Kubernetes集群,并将结果提交给Kubescape SaaS版本
kubescape scan framework mitre --submit
使用控件名称或控件ID扫描具有特定控件的正在运行的Kubernetes集群
kubescape scan control "Privileged container"
扫描特定命名空间
kubescape scan --include-namespaces development,staging,production
扫描群集并排除某些命名空间
kubescape scan --exclude-namespaces kube-system,kube-public
在部署之前扫描本地yaml/json文件。看看演示,如果目录是git repo,请提交结果。文档
kubescape scan *.yaml --submit
扫描git存储库中的kubernetes清单文件并提交结果
kubescape scan https://github.com/armosec/kubescape --submit
显示所有扫描的资源(包括通过的资源)
kubescape scan --verbose
以json格式输出
添加
--format-version v2标志
kubescape scan --format json --format-version v2 --output results.json
以junit xml格式输出
kubescape scan --format junit --output results.xml
pdf格式的输出-由@alegrey91提供
kubescape scan --format pdf --output results.pdf
以prometheus度量格式输出-由@Joibel贡献
kubescape scan --format prometheus
扫描有异常,有异常的对象将显示为exclude,而不是fail
kubescape scan --exceptions examples/exceptions/exclude-kube-namespaces.json
扫描舵图
kubescape scan </path/to/directory> --submit
Kubescape将加载默认值文件
Offline/Air-gaped Environment Support
可以脱机运行Kubescape!
下载所有工件
- 下载并保存在本地目录中,如果未指定路径,则将全部保存在
~/.kubescape
kubescape download artifacts --output path/to/local/dir
- 将下载的工件复制到air-gaped/offline环境
- 使用下载的工件进行扫描
kubescape scan --use-artifacts-from path/to/local/dir
下载单个工件
您还可以下载单个工件并使用--use-from标志进行扫描
- 下载并保存在文件中,如果未指定文件名,将保存在
~/.kubescape/<framework name>.json
kubescape download framework nsa --output /path/nsa.json
- 将下载的工件复制到air-gaped/offline环境
- 使用下载的框架扫描
kubescape scan framework nsa --use-from /path/nsa.json
使用Helm定期扫描-由@yonahd提供
请按照此处的说明操作helm chart repo
使用docker图像扫描
Official Docker image quay.io/armosec/kubescape
docker run -v "$(pwd)/example.yaml:/app/example.yaml quay.io/armosec/kubescape scan /app/example.yaml
如果你愿意,你可以自己构建docker图像
手动提交数据
如果希望手动提交数据,请使用submit命令
手动提交扫描结果
通过使用
--format-version v2标志支持向前兼容性
首先,使用json格式标志扫描集群:kubescape scan framework <name> --format json --format-version v2 --output path/to/results.json。
现在,您可以将结果提交到Kubescape SaaS版本-
kubescape submit results path/to/results.json
Integrations
VS Code Extension
扫描YAML文件,同时使用vs代码扩展名写入它们
Lens Extension
使用Kubescape镜头扩展直接在镜头IDE中查看Kubescape扫描结果
Building Kubescape
Windows
go build .
OR
make build
Linux/MacOS
- 安装libgit2依赖项
make libgit2
构建libgit2需要
cmake。您可以通过运行sudo apt-get install cmake(Linux)或brew install cmake(MacOS)来安装它
-
Build
make build -
Test
make test
VS代码配置示例
您可以使用下面的示例文件来设置VS代码环境,以进行构建和调试。
// .vscode/settings.json
{
"go.testTags": "static",
"go.buildTags": "static",
"go.toolsEnvVars": {
"CGO_ENABLED": "1"
}
}
// .vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch Package",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${workspaceFolder}/main.go",
"args": [
"scan",
"--logger",
"debug"
],
"buildFlags": "-tags=static"
}
]
}
引擎盖下
Technology
Kubescape基于OPA引擎:https://github.com/open-policy-agent/opa和ARMO的姿态控制。
这些工具从API服务器检索Kubernetes对象,并运行由ARMO开发的一组rego代码片段。
默认情况下,结果以非常“控制台友好”的方式打印,但可以以JSON格式检索以进行进一步处理。
Kubescape是一个开源项目,我们欢迎您的反馈和改进意见。我们还打算与Kubernetes社区合作,以帮助使测试本身在Kubernetes开发时更加健壮和完整。

浙公网安备 33010602011771号