预约咨询 提交工单

为 Ops/SRE 平台加固 Kubernetes:深入实用的安全指南

一份实用的指南,用于检测和修复 Kubernetes RBAC 配置错误,包含审查权限、执行最小权限原则和验证修复的命令。

为 Ops/SRE 平台加固 Kubernetes:深入实用的安全指南
Security 6min 4 浏览 2026-08-05
KubernetesSRE安全

场景:集群中出现未经身份验证的 API 调用

您的 SIEM 系统发出关于 Kubernetes API 服务器可疑 API 调用的警报。审计日志显示来自 system:anonymous 的请求,对部署和命名空间执行了 deleteupdate 等操作。更糟糕的是,有未知 IP 正在拉取机密信息。

症状

  • kubectl get events --all-namespaces 显示未经授权的修改。
  • 审计日志(如果启用)显示匿名请求获得成功响应。
  • 一些生产环境的部署已被更改。
  • 您的安全团队怀疑发生了数据泄露。

诊断

首先,确认 API 服务器的授权模式和匿名设置:

kubectl get --raw /api/v1/namespaces/kube-system/configmaps | grep -i anonymous

如果无法获取审计日志,请检查绑定:

kubectl get clusterrolebindings,rolebindings -A -o yaml | grep -B2 -A10 "system:anonymous"

检查匿名用户可以执行哪些操作:

kubectl auth can-i --list --as system:anonymous

审计和加固命令

列出所有关联了匿名用户的绑定:

kubectl get clusterrolebinding,rolebinding -A -o json | jq '.items[] | select(.subjects[]?.name=="system:anonymous")'

删除危险的绑定(替换 <binding-name>):

kubectl delete clusterrolebinding <binding-name> --dry-run=client -o yaml > backup.yaml
kubectl delete clusterrolebinding <binding-name>

应用额外的加固措施:

# 启用 Pod 安全准入(示例:强制执行 baseline/默认策略)
kubectl label --overwrite ns --all pod-security.kubernetes.io/enforce=baseline

风险控制

  • 执行最小权限 RBAC:移除匿名和过宽的绑定;使用用户组和服务账户。
  • 启用审计日志:转发到 SIEM。
  • 使用网络策略:限制 Pod 之间的通信和出口流量。
  • 禁用匿名访问:如果不需要未认证的健康检查端点,可设置 --anonymous-auth=false
  • 轮换所有凭据:如果怀疑已被入侵。

回滚

如果删除绑定导致某些功能异常(例如监控代理失去访问权限),可从备份重新应用:

kubectl apply -f backup.yaml

回滚后测试连通性。

验证

确认匿名用户无法读取机密:

kubectl auth can-i --list --as system:anonymous | grep -i secret
# 应该显示无法 get/list secrets,或显示 "no"

模拟匿名请求:

curl -ks https://$(kubectl get svc kubernetes -n default -o jsonpath='{.spec.clusterIP}'):443/api/v1/secrets
# 预期返回:403 Forbidden

何时提交 OpsGlobal 工单

如果您缺乏时间或专业知识进行全面安全审计,无法识别所有受影响的路径,或需要取证分析,请提交工单。OpsGlobal 的 SRE 安全专家可以帮助您加固平台、实施最佳实践的 RBAC,并建立持续的安全监控。

适用场景

适合正在处理 Security、Kubernetes, SRE, 安全 相关问题的团队,用于快速建立排查路径和交付标准。

问题背景

一份实用的指南,用于检测和修复 Kubernetes RBAC 配置错误,包含审查权限、执行最小权限原则和验证修复的命令。

排查步骤

先确认影响范围和最近变更,再收集日志、配置、指标和链路数据,最后按风险从低到高执行修复。

命令示例

示例命令请替换为你的真实资源名,并使用环境变量保存账号、密码、token 等敏感信息。

风险说明

生产环境操作前需要确认备份、权限边界、变更窗口和回滚路径,避免扩大故障影响。

回滚方案

保留原配置和发布版本;如修复后指标异常,立即回退配置、镜像或数据库变更并复核日志。

交付清单

问题定位记录、关键命令、修复步骤、验证结果、后续优化建议。

!

遇到类似技术问题?

如果你的服务器、K8s、Docker、CI/CD、数据库或监控系统出现类似问题,可以提交日志和配置文件,我们帮你远程诊断。

工单 WhatsApp 联系 咨询