当前位置: 首页 > news >正文

【安全与故障排查】05-K8s安全加固:RBAC+网络策略+镜像扫描实践

K8s 安全加固:RBAC + 网络策略 + 镜像扫描实践

专栏:安全 & 故障排查
难度:进阶
标签:Kubernetes安全RBACNetworkPolicy镜像扫描容器安全


前言

K8s 默认配置安全性较弱,一个被攻陷的 Pod 可能横向移动到整个集群。本文从RBAC、网络策略、镜像安全三个维度建立纵深防御。


一、RBAC 最小权限配置

# 错误做法:给应用分配 cluster-admin# 正确做法:按需分配最小权限# 创建只能读取自己命名空间Pod的角色apiVersion:rbac.authorization.k8s.io/v1kind:Rolemetadata:name:pod-readernamespace:productionrules:-apiGroups:[""]resources:["pods","pods/log"]verbs:["get","list","watch"]---apiVersion:rbac.authorization.k8s.io/v1kind:RoleBindingmetadata:name:read-podsnamespace:productionsubjects:-kind:ServiceAccountname:myapp-sanamespace:productionroleRef:kind:Rolename:pod-readerapiGroup:rbac.authorization.k8s.io
# 审计现有的ClusterRoleBinding,找出权限过大的kubectl get clusterrolebindings-ojson|jq'.items[] | select(.roleRef.name == "cluster-admin") | {name: .metadata.name, subjects: .subjects}'

二、NetworkPolicy(网络隔离)

# 默认拒绝所有入站流量apiVersion:networking.k8s.io/v1kind:NetworkPolicymetadata:name:default-deny-ingressnamespace:productionspec:podSelector:{}policyTypes:-Ingress---# 只允许 frontend 访问 backendapiVersion:networking.k8s.io/v1kind:NetworkPolicymetadata:name:allow-frontend-to-backendnamespace:productionspec:podSelector:matchLabels:app:backendpolicyTypes:-Ingressingress:-from:-podSelector:matchLabels:app:frontendports:-protocol:TCPport:8080---# 只允许 backend 访问数据库apiVersion:networking.k8s.io/v1kind:NetworkPolicymetadata:name:allow-backend-to-dbnamespace:productionspec:podSelector:matchLabels:app:databaseingress:-from:-podSelector:matchLabels:app:backendports:-port:5432

三、镜像安全扫描(Trivy)

# 安装 Trivywgethttps://github.com/aquasecurity/trivy/releases/latest/download/trivy_Linux-64bit.tar.gztarxf trivy_Linux-64bit.tar.gz&&mvtrivy /usr/local/bin/# 扫描镜像(CRITICAL + HIGH漏洞)trivy image--severityCRITICAL,HIGH myapp:1.0.0# 扫描结果示例输出:# Total: 3 (CRITICAL: 1, HIGH: 2)# ...# 集成到 CI 流水线(发现CRITICAL漏洞时阻断构建)trivy image --exit-code1--severityCRITICAL myapp:latest

四、Pod 安全配置

# 安全的 Pod 配置模板spec:securityContext:runAsNonRoot:true# 禁止以root运行runAsUser:1000fsGroup:2000seccompProfile:type:RuntimeDefault# 启用默认seccompcontainers:-name:myappsecurityContext:allowPrivilegeEscalation:false# 禁止权限提升readOnlyRootFilesystem:true# 根文件系统只读capabilities:drop:-ALL# 去掉所有capabilitiesadd:-NET_BIND_SERVICE# 只添加需要的

五、Secret 安全管理

# 问题:Secret 以Base64存储在etcd,非加密# 解决方案1:etcd加密# 解决方案2:使用External Secrets Operator对接Vault# Vault集成示例kubectl apply-fvault-secret-store.yaml# ExternalSecret会从Vault自动拉取,生成K8s Secret

结语:K8s 安全是一个纵深防御的体系:RBAC 控制权限,NetworkPolicy 控制流量,镜像扫描控制来源,Pod 安全限制运行时。四层防御都要有。

http://www.jsqmd.com/news/1151264/

相关文章:

  • BERT 预训练实战:PyTorch 复现 MLM 与 NSP 双任务,Loss 降至 1.2
  • 抖店发货后买家改地址怎么办一件代发订单还能拦截吗
  • ASIC vs FPGA vs SoC:3类芯片选型指南,从成本、功耗到开发周期对比
  • 操作系统调度算法与LinuxCFS实现
  • MP2315GJ-Z 3A同步降压芯片:从24V输入到5V/3A输出的完整PCB布局与效率实测
  • 为什么你的企业需要一次“风险体检”——高企税务稽查已进入“穿透式审查”时代,你的企业能扛住吗?
  • 06-高级模式与实战项目——21. 实战项目五:社交媒体
  • 【Bug已解决】Anthropic API Error 500 / 503 / Internal server error — Claude Code API 服务端错误解决方案
  • 多功能证件阅读机在酒店行业的应用,主要围绕提升外籍宾客入住效率、满足公安合规要求及优化住客服务体验展开,已成为酒店智能化管理的关键设备-5-12
  • 上课记笔记写不完不会整理?2026学习笔记生成使用场景该怎么选
  • 2026丹东黄金回收白银回收铂金回收市民首选无隐形扣费正规备案回收门店联系方式推荐
  • 多模态大模型 5 大核心技术解析:从提示学习到 RLHF 的演进路径
  • 2026在线PDF转Excel,实操指南:无水印免费、无需注册的安全转换方案
  • 抖店哪些商品应该批量下架长期不出单商品怎么清理
  • Go语言的runtime.SetFinalizer终结器与对象复活在垃圾回收中的行为
  • HarmonyKit | 鸿蒙新特性应用:颜色转换 HEX↔RGB↔HSL 三色空间互转算法
  • 掌握Git rebase与merge的区别
  • 抖店一件代发供应商发货地不一致怎么办会不会影响买家体验
  • 理解Kubernetes Service类型
  • YOLOv11涨点改进| CVPR 2026 | 独家卷积+Mamba改进篇| 引入AKCMamba-YOLO中的CAKCMamba模块,助力小目标检测、遥感目标检测、图像分类、图像分割任务,高效涨点
  • 电力系统小电流接地系统单相故障(中性点不接地系统+经消弧线圈接地)Matlab仿真分析
  • torchvision.datasets 内置10+数据集:从MNIST到ImageNet的快速调用指南
  • 冷思考与行业复盘,数字孪生标准化、数据安全、人才缺口与个人科研选题规划
  • Sallen-Key 萨伦 - 基 低通滤波器 完整详解(原理、公式、设计、优缺点)
  • 抖店爆款断货怎么办一件代发怎么提前准备备用货源
  • NLP自然语言处理实战
  • 前端状态管理库对比与复杂应用状态设计
  • 容器安全加固:lxcfs-tools在容器隔离中的关键作用
  • 禽蛋五氯酚酸钠新污染物科普:筑牢蛋品安全的新防线
  • Magpie终极指南:免费开源让老旧窗口瞬间高清化的完美解决方案