Linux 环境下 Kubernetes 的安全策略框架
在 Linux 节点上,Kubernetes 的安全策略应覆盖运行时权限、网络分段、身份与授权、准入控制与主机加固五个层面,目标是实现最小权限与最小暴露面,并在出现问题时具备可观测与审计能力。
一 运行时与内核安全
以非 root 运行并收紧能力集:设置 runAsNonRoot: true、指定非 root runAsUser/runAsGroup,按需仅添加必要能力,推荐默认 drop: [“ALL”] 后再按需 add;同时关闭特权提升与特权容器。示例要点:
启用 Linux 内核安全模块:
落实 Pod 安全性标准(PSS) 与准入控制:在命名空间上以标签配置 enforce/audit/warn 与版本,例如:
二 网络策略与微分段
默认拒绝与白名单放行:同一命名空间内未配置策略时 Pod 默认互通,应优先建立“默认拒绝”基线,再按依赖关系逐条放行,降低横向移动风险。
策略要素与标签驱动:基于 podSelector / namespaceSelector / ipBlock 定义源/目的,使用 ingress/egress 与 policyTypes 控制入/出站;以稳定 标签 而非易变的 Pod IP 作为选择依据,便于演进与回滚。
分层策略与可见性:
三 身份与访问控制 RBAC
最小权限与职责分离:以 Role/ClusterRole 定义细粒度权限(apiGroups/resources/verbs 及子资源如 pods/log),通过 RoleBinding/ClusterRoleBinding 将权限授予 User/Group/ServiceAccount;跨命名空间授权优先使用 ClusterRole + RoleBinding,谨慎授予 ClusterRoleBinding。
验证与运维:使用 kubectl auth can-i 校验主体权限,定期审计绑定关系与权限范围,避免权限蔓延与越权访问。
四 加密、审计与集群配置
传输与静态加密:启用 TLS 保护 API Server、kubelet、etcd 等组件与控制面通信;对 Secrets 等敏感数据启用 加密静态(EncryptionConfiguration),并妥善管理密钥轮转。
审计与监控:开启 审计日志 与指标/事件观测,结合告警规则识别异常 API 调用与权限提升;对关键命名空间与系统组件设置更严格的审计级别。
漏洞与版本管理:保持 Kubernetes 与节点 Linux 处于受支持版本,及时修补 CVE;建立 镜像扫描 与 运行时监控 流程,降低供应链与运行时风险。
五 主机与平台加固要点
节点最小化:关闭不必要的内核模块、服务与端口,限制 特权用户 与直接主机访问;为容器运行时与 kubelet 配置 最小权限 与 系统调用白名单(配合 seccomp/AppArmor/SELinux)。
网络与平台策略:选择支持 NetworkPolicy 的 CNI(如 Calico、Cilium);在云平台上可启用 eBPF 数据面 与 L7/FQDN 策略能力,统一实施微分段与出口治理。