在CentOS上部署Kubernetes时,可采取以下安全设置:
系统基础安全
- 防火墙配置:使用
iptables或firewalld限制节点访问,仅开放必要端口(如API Server端口6443)。
- 用户权限管理:通过
chmod/chown限制文件权限,安装auditd审计系统操作日志。
- 系统更新:定期用
yum update打补丁,启用unattended-upgrades自动安装安全更新。
Kubernetes集群安全
- RBAC权限控制:
- 定义
Role/ClusterRole限制资源访问权限(如仅允许特定用户创建Pod)。
- 通过
RoleBinding/ClusterRoleBinding绑定用户或服务账户,遵循最小权限原则。
- 网络策略:
- 使用
NetworkPolicy限制Pod间通信,禁止未授权的流量(如限制数据库Pod仅允许前端服务访问)。
- 需配合Calico等CNI插件启用策略功能。
- 镜像安全:
- 使用私有仓库存储镜像,避免公共仓库的潜在风险。
- 定期扫描镜像漏洞(如使用Trivy、Anchore)。
- 加密通信:
- 为API Server、etcd配置TLS证书,确保数据传输加密。
- 启用Pod间mTLS加密(需结合Service Mesh如Istio)。
组件与运行时安全
- etcd安全:
- 限制etcd访问IP,启用认证和加密。
- 定期备份etcd数据并测试恢复流程。
- Pod安全策略:
- 通过
PodSecurityPolicy(已逐步被OPA/Gatekeeper替代)限制容器特权(如禁止以root用户运行)。
- 禁止特权模式和宿主机命名空间共享。
- 资源隔离:
- 使用命名空间隔离不同团队或环境的资源。
- 通过污点(Taints)和容忍度(Tolerations)控制Pod调度范围。
监控与审计
- 日志与监控:
- 部署Prometheus+Grafana监控集群状态,收集Pod、节点日志。
- 启用Kubernetes审计日志,记录API请求和权限变更。
- 异常检测:
- 使用Kube-bench、kube-hunter等工具定期扫描漏洞。
- 配置告警规则(如节点异常、权限滥用)。
其他安全实践
- 最小化攻击面:关闭不必要的系统服务(如SSH),限制节点SSH访问。
- 高可用与容灾:配置Pod Disruption Budget(PDB)避免单点故障,定期演练故障恢复。
以上措施可显著提升CentOS上Kubernetes集群的安全性,需根据实际业务场景调整策略细节。