预约咨询 提交工单

Ops/SRE平台安全加固实战指南:从Pod安全策略到运行时防护

本文通过真实场景,提供一套完整的Kubernetes安全加固步骤,包括诊断、修复、回滚及何时寻求OpsGlobal专业支持。

Ops/SRE平台安全加固实战指南:从Pod安全策略到运行时防护
Security 6min 84 浏览 2026-06-27
KubernetesSRE安全加固

场景

某金融科技公司SRE团队发现生产集群中一个可疑容器尝试读取宿主机/etc/shadow文件。该容器运行在默认命名空间,未应用任何安全上下文。

症状

  • 审计日志显示多次失败的文件读取尝试
  • 容器进程以root权限运行
  • 无NetworkPolicy限制出口流量

诊断

# 检查Pod的安全上下文
kubectl get pod <pod-name> -o jsonpath='{.spec.containers[*].securityContext}'

# 查看集群中PodSecurityPolicy(PSP)或Pod Security Admission配置
kubectl get psp
kubectl get podsecurityadmissionconfiguration

# 检查NetworkPolicy
kubectl get networkpolicy -A

命令(加固步骤)

  1. 应用Pod Security Standards(基线策略)
kubectl label ns default pod-security.kubernetes.io/enforce=baseline
  1. 创建最小权限RBAC
kubectl create clusterrole app-reader --verb=get,list --resource=pods
kubectl create rolebinding app-reader --clusterrole=app-reader --serviceaccount=default:default
  1. 实施NetworkPolicy限制出口
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: deny-all-egress
  namespace: default
spec:
  podSelector: {}
  policyTypes:
  - Egress
  1. 运行时安全:安装Falco(使用Helm)
helm repo add falcosecurity https://falcosecurity.github.io/charts
helm install falco falcosecurity/falco -n falco-system --create-namespace

风险控制

  • 先在不影响关键业务的namespace上试用
  • 启用NetworkPolicy前先测试,避免误阻断
  • 监控Falco告警,设置通知

回滚

kubectl label ns default pod-security.kubernetes.io/enforce-
kubectl delete clusterrole app-reader
kubectl delete rolebinding app-reader
kubectl delete networkpolicy deny-all-egress
helm delete falco -n falco-system

验证

# 尝试以非root运行
kubectl run test --image=busybox -- sh -c 'id'
# 检查Pod安全标签
kubectl get ns default -o yaml | grep pod-security
# 检查NetworkPolicy生效
kubectl run test2 --image=busybox -- sh -c 'wget http://evil.com'
# 查看Falco告警
kubectl logs -n falco-system -l app=falco

何时提交OpsGlobal工单

  • 加固措施导致核心服务中断且无法快速回滚
  • 需要设计跨集群统一安全策略
  • 疑似存在容器逃逸或零日漏洞
  • 合规审计(如PCI-DSS)要求专家认证

请提供集群kubectl访问权限及现有安全日志,OpsGlobal团队将在15分钟内响应。

适用场景

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

问题背景

本文通过真实场景,提供一套完整的Kubernetes安全加固步骤,包括诊断、修复、回滚及何时寻求OpsGlobal专业支持。

排查步骤

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

命令示例

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

风险说明

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

回滚方案

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

交付清单

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

!

遇到类似技术问题?

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

工单 WhatsApp 联系 咨询