预约咨询 提交工单

强化Kubernetes集群:SRE团队的实用安全指南

了解如何识别和修复SRE团队常见的Kubernetes安全弱点,包含逐步命令和风险控制措施。

强化Kubernetes集群:SRE团队的实用安全指南
Security 6min 84 浏览 2026-06-29
KubernetesSRE

场景

某公司运行一个多租户Kubernetes集群,多个团队部署工作负载。安全审计发现,某些Pod能够访问宿主机文件系统,原因是使用了特权容器或hostPath卷。

症状

  • Pod内可以读取宿主机的/etc/shadow等敏感文件。
  • 安全扫描工具报告违反Pod安全标准。
  • 非预期的网络连接或资源访问。

诊断

  1. 检查特权容器: bash kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{.metadata.namespace} {.metadata.name} {.spec.containers[*].securityContext.privileged}{"\n"}{end}' 输出中若出现true,则存在特权容器。
  2. 检查hostPath卷: bash kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{.metadata.namespace} {.metadata.name} {.spec.volumes[*].hostPath}{"\n"}{end}'
  3. 检查RBAC权限: bash kubectl get rolebindings,clusterrolebindings --all-namespaces -o wide 查找不合理的绑定,如将cluster-admin授予普通用户。

风险控制

  • 应用Pod安全准入控制器(Pod Security Admission),设置全局策略为restricted
  • 使用OPA/Gatekeeper或Kyverno强制禁止特权容器和hostPath。
  • 实施网络策略(NetworkPolicy)限制Pod间通信。
  • 采用最小权限原则配置RBAC,避免使用*通配符。
  • 启用审计日志,定期审查。

回滚

若策略导致应用异常,可通过GitOps回滚配置:

git revert <commit-hash>
kubectl apply -f <previous-config>

或临时删除准入控制器Webhook配置。

验证

  • 重新运行诊断命令,确认无特权容器。
  • 使用kube-bench进行安全基准测试: bash kubectl run kube-bench --image=aquasec/kube-bench:latest --restart=Never --rm --command -- /kube-bench run --targets=master,node
  • 检查审计日志中是否有违反策略的拒绝事件。

何时提交OpsGlobal工单

  • 当需要批量修复大量历史工作负载时。
  • 若已发现安全漏洞,需快速取证和隔离。
  • 当集群策略需要统一管理且团队缺乏经验时。

适用场景

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

问题背景

了解如何识别和修复SRE团队常见的Kubernetes安全弱点,包含逐步命令和风险控制措施。

排查步骤

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

命令示例

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

风险说明

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

回滚方案

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

交付清单

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

!

遇到类似技术问题?

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

工单 WhatsApp 联系 咨询