Kubernetes部署在Debian上的安全策略
导读:Kubernetes 在 Debian 上的安全策略清单 一 系统与内核安全基线 保持系统与组件为最新:定期执行 apt update && apt upgrade,及时修补漏洞;Kubernetes 组件与依赖库同样需要...
Kubernetes 在 Debian 上的安全策略清单
一 系统与内核安全基线
- 保持系统与组件为最新:定期执行 apt update & & apt upgrade,及时修补漏洞;Kubernetes 组件与依赖库同样需要持续更新。
- 禁用 Swap:Kubernetes 要求关闭 Swap(临时执行 swapoff -a,并在 /etc/fstab 中注释含 swap 的行),避免影响 kubelet 调度与稳定性。
- 内核网络与安全模块:启用 br_netfilter、ip_vs、nf_conntrack 等模块(/etc/modules-load.d/),为 kube-proxy/ipvs、网桥与连接跟踪提供必要支持。
- 关键 sysctl 参数:开启 IPv4 转发 与桥接流量进入 iptables(/etc/sysctl.d/k8s.conf),示例:
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1 - 资源与日志:为 systemd 与 journald 设置合理的 ulimit 与 日志持久化/轮转,便于审计与排障(如 DefaultLimitNOFILE、SystemMaxUse、MaxRetentionSec)。
- 主机防火墙:使用 nftables/ufw 仅开放必要端口(如 6443/2379-2380/10250/10251/10252/8472 等,按角色收敛),默认拒绝入站、按需放通出站。
二 集群身份与访问控制
- 认证与加密:为 API Server、kubelet、etcd 等组件启用 TLS/mTLS,强制客户端证书认证,禁用明文端口与不安全访问。
- RBAC 最小权限:按“最小权限原则”配置 Role/ClusterRole 与 RoleBinding/ClusterRoleBinding,避免使用通配高权限的 ClusterRoleBinding;定期审计权限分配。
- ServiceAccount 与 Secret:为 Pod 绑定最小权限的 ServiceAccount;Secret 用于凭证/密钥管理,避免以环境变量明文注入,结合 RBAC 控制访问范围。
- 准入控制与引导:启用关键 准入控制器(如 PodSecurity、NodeRestriction 等);使用 TLS Bootstrapping 为节点与组件安全地自动签发证书。
三 网络与运行时隔离
- CNI 与网络策略:选择支持 NetworkPolicy 的 CNI(如 Calico/Flannel+策略插件),为命名空间与业务 Pod 实施默认拒绝与白名单通信,最小化横向移动面。
- 默认拒绝示例(在 default 命名空间拒绝所有进出):
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default-deny-all
namespace: default
spec:
podSelector: { }
policyTypes:- Ingress
- Egress
- 节点与组件端口收敛:仅暴露 6443(API)、10250(kubelet)、10251/10252(调度器/控制器)、2379-2380(etcd)、以及 flannel VXLAN 8472 等必要端口;控制面与工作节点间按最小连通性配置。
- 容器运行时:优先使用 containerd/CRI-O;自 v1.20 起 Docker 不再作为内置支持运行时,建议以 containerd 为主。
四 镜像、Pod 与数据存储安全
- 镜像与供应链:仅使用可信镜像仓库与 签名镜像;定期扫描镜像漏洞(如 Kube-bench、Kube-hunter、Kubescape),降低 CVE 暴露面。
- Pod 安全基线:以 非 root 运行(runAsNonRoot)、禁用特权容器、限制 Capabilities、设置 readOnlyRootFilesystem、按需设置 fsGroup/supplementalGroups,并遵循 Pod Security 标准(旧集群可用 PSP 的受限配置作为过渡)。
- 受限 PSP 示例(仅作策略范式,实际以 Pod Security 标准为主):
apiVersion: policy/v1
kind: PodSecurityPolicy
metadata:
name: restricted
spec:
privileged: false
runAsUser:
rule: MustRunAsNonRoot
seLinux:
rule: RunAsAny
supplementalGroups:
rule: MustRunAs
ranges:
- min: 1
max: 65535
fsGroup:
rule: MustRunAs
ranges:
- min: 1
max: 65535 - etcd 数据面:为 etcd 启用 TLS 加密 与 对等/客户端证书校验,对数据目录设置最小权限与磁盘加密,避免未授权访问与数据泄露。
五 审计、监控、合规与运维
- 审计与日志:启用 Kubernetes 审计日志(Audit Policy),对关键资源(如 pods/ingresses)记录 RequestResponse 级别事件;主机侧启用 journald 持久化与轮转,集中到 Prometheus/Grafana 与日志平台进行告警与取证。
- 合规与扫描:定期运行 Kube-bench(CIS 基线)、Kube-hunter(外部攻击面)、Kubescape(合规与风险可视化),形成整改闭环。
- 备份与演练:对 etcd 与控制面配置进行 定期备份与恢复演练,确保在故障或入侵时可快速回滚;制定 应急响应预案 与变更评审流程。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Kubernetes部署在Debian上的安全策略
本文地址: https://pptw.com/jishu/755897.html
