关于 kubernetes-security-audit
用于审计 Kubernetes 集群安全的技能,覆盖工作负载、身份、网络和供应链,并提供带 YAML 证据与风险说明的发现结果及修复清单。
主要功能
- 01审计工作负载安全设置
- 02检查 RBAC 角色与权限提升路径
- 03核查网络策略和暴露面
- 04评估镜像来源与机密信息
- 05提供证据和修复清单
适用场景
- 01部署前审计集群
- 02发现服务账户权限过宽
- 03识别服务或控制平面暴露
- 04准备清单以修复发现的问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ securityskills/ skills --skill kubernetes-security-audit安装后在 Claude Code 中输入/kubernetes-security-audit确认已加载。
详细介绍
Kubernetes 安全审计
从四个层面审计集群:工作负载、身份、网络、供应链。
工作负载安全
- Pod 安全标准:检查命名空间标签(
pod-security.kubernetes.io/enforce) - 特权 Pod、
hostPID/hostNetwork/hostPath用法——每项都需要说明理由 - 以 root 身份运行的容器;
allowPrivilegeEscalation: true;缺少readOnlyRootFilesystem - 在 Pod 和容器级别设置
securityContext;将 capabilities 降至最低限度
RBAC
- 枚举绑定;找出
cluster-admin主体——将其范围缩小到明确列出的主体 - 提权路径:
bind/escalate/impersonate动词;create pods+ 节点特权;create pods/exec - 服务账号:工作负载是否使用默认 SA?不需要时是否禁用了令牌自动挂载?
- 检查自定义角色中是否存在通配符(
*)动词/资源
网络
- NetworkPolicy:以每个命名空间默认拒绝入口/出口流量为基线
- 跨命名空间暴露:哪些命名空间可以访问
kube-system、入口控制器、数据库 - 控制平面暴露:API 服务器是否使用公共 IP?etcd 是否可访问/经过身份验证?
供应链
- 镜像来源:固定注册表摘要(而非
:latest),验证签名(cosign) - 准入控制:镜像策略;禁止使用来自不可信注册表的特权镜像
- 密钥:静态存储的 Kubernetes Secrets(已配置 KMS 加密);不得烘焙到镜像中,也不得将其作为环境变量写入已提交到 git 的清单
快速检查
kubectl get pods -A -o json | jq '[.items[] | select(.spec.containers[].securityContext.privileged==true)]'
kubectl get ns -l pod-security.kubernetes.io/enforce
kubectl auth can-i --list --as=system:serviceaccount:default:default
kubectl get networkpolicy -A
输出
按层列出发现,附上 YAML 证据、风险以及用于修复的加固清单。
评论
支持 Markdown