以下是Ubuntu Kubernetes集群的安全策略,涵盖系统、网络、权限及监控等核心层面:
一、系统级安全加固
- 最小权限原则
- 容器以非root用户运行,通过
securityContext设置runAsNonRoot: true。
- 禁用Swap并配置NTP时间同步,确保内核参数符合Kubernetes需求。
- 镜像安全
- 仅使用可信来源的镜像,定期通过工具(如Trivy)扫描漏洞。
- 为敏感信息使用Secret存储,避免硬编码密码。
二、网络访问控制
- 防火墙规则
- 用UFW限制非必要端口(仅开放API Server、etcd等必需端口),默认拒绝入站流量。
- 示例:
ufw allow from <集群节点IP段> to any port 6443 proto tcp。
- 网络策略(NetworkPolicy)
- 基于CNI插件(如Calico)实现Pod级微隔离,默认拒绝所有流量,按需放行特定命名空间或标签的流量。
- 示例:限制数据库Pod仅允许来自应用层的访问。
三、权限与认证管理
- RBAC权限控制
- 为不同用户/服务账户分配最小权限角色(Role/ClusterRole),通过RoleBinding绑定到命名空间或集群。
- 示例:限制开发人员仅能访问测试命名空间的Pod。
- 服务账户管理
- 禁用默认ServiceAccount的特权,为CI/CD等场景创建专用服务账户并绑定最小权限。
四、通信与数据安全
- TLS加密
- 启用API Server、etcd、kubelet间的TLS通信,通过kubeadm配置证书并定期轮换。
- 敏感数据保护
- 使用Secret存储敏感信息,避免直接暴露在环境变量中。
五、监控与审计
- 日志与审计
- 启用API Server审计日志,记录敏感操作(如删除资源、权限变更)。
- 定期分析日志,使用工具(如Kubeaudit)检测异常行为。
- 运行时监控
- 部署Prometheus+Grafana监控集群状态,设置异常流量、权限滥用等告警。
六、持续安全运维
- 定期更新:升级Ubuntu系统和Kubernetes组件,修复已知漏洞。
- 备份与恢复:定期备份etcd数据,确保灾难场景下快速恢复。
- 安全策略验证:通过工具(如Kubescape)扫描集群配置,验证策略合规性。
参考来源: