预约咨询 提交工单

DevOps安全加固:Ops/SRE平台的RBAC与Pod安全实践

本文通过真实场景演示如何诊断Kubernetes RBAC和Pod安全漏洞,并提供加固步骤、风险控制、回滚与验证方法。适用于需要提升平台安全性的SRE团队。

DevOps安全加固:Ops/SRE平台的RBAC与Pod安全实践
Security 6min 31 浏览 2026-07-13
KubernetesSRE

场景

某SRE团队管理多个Kubernetes集群,默认RBAC配置允许开发人员创建具有特权模式的Pod。安全审计发现,有恶意Pod通过挂载宿主机目录获取了节点访问权限。

症状

  • 集群中出现未知Pod,并绑定到节点目录。
  • 审计日志显示非管理员用户使用了privileged: truehostPID: true
  • 安全扫描工具报告Pod安全策略缺失。

诊断

  1. 检查RBAC绑定:kubectl get clusterrolebindings -o wide,查看是否有宽泛的cluster-admin绑定。
  2. 检查PodSecurityPolicy(PSP)或Pod Security Admission(PSA)状态:kubectl get pspkubectl get admissionregistration.k8s.io/v1/mutatingwebhookconfigurations
  3. 审计Pod规格:kubectl get pods --all-namespaces -o jsonpath="{range .items[*]}{.metadata.name}{'\t'}{.spec.containers[*].securityContext.privileged}{'\n'}{end}"

加固命令

  1. 应用Pod安全标准(PSA):kubectl label ns default pod-security.kubernetes.io/enforce=restricted
  2. 创建最小RBAC:为开发人员绑定仅包含getlist权限的Role,避免cluster-admin
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: default
  name: developer-restricted
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "list", "watch"]
  1. 删除高危ClusterRoleBinding:kubectl delete clusterrolebinding <name>

风险控制

  • 在非生产环境测试PSA标签,避免影响运行中的工作负载。
  • 逐步应用,使用audit模式先记录违规,再切换为enforce
  • 保留管理员紧急通道(如break-glass账号)。

回滚

验证

  • 检查Pod创建是否被PSA拒绝:kubectl run test --image=nginx --privileged应返回错误。
  • 确认非管理员无法列出集群机密:kubectl get secrets --as=developer

何时提交OpsGlobal工单

  • 集群规模超过20个节点,需要统一策略管理。
  • 需要自定义准入控制器或动态安全策略。
  • 安全合规要求(如PCI-DSS)需专业审计报告。

适用场景

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

问题背景

本文通过真实场景演示如何诊断Kubernetes RBAC和Pod安全漏洞,并提供加固步骤、风险控制、回滚与验证方法。适用于需要提升平台安全性的SRE团队。

排查步骤

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

命令示例

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

风险说明

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

回滚方案

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

交付清单

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

!

遇到类似技术问题?

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

工单 WhatsApp 联系 咨询