保障Ubuntu上Kubernetes的安全需从系统、网络、认证授权等多层面入手,以下是关键措施:
- 系统安全加固
- 禁用Swap并配置NTP时间同步。
- 使用安全内核参数(如
net.bridge.bridge-nf-call-iptables=1)。
- 定期更新系统和Kubernetes组件,修复漏洞。
- 网络与通信安全
- 配置UFW防火墙,仅开放API Server(6443)、etcd(2379/2380)等必要端口。
- 启用TLS加密,确保API Server、etcd等组件间通信安全。
- 部署网络策略插件(如Calico),限制Pod间通信及命名空间隔离。
- 访问控制与权限管理
- 基于RBAC分配最小权限,限制用户/服务账户对资源的操作。
- 为ServiceAccount配置默认只读权限,避免特权滥用。
- 镜像与容器安全
- 从可信源拉取镜像,定期使用工具(如Trivy)扫描漏洞。
- 以非root用户运行容器,限制特权操作。
- 审计与监控
- 启用API Server审计日志,记录敏感操作(如删除、修改资源)。
- 部署Prometheus+Grafana监控集群状态,设置异常告警。
- 数据与备份安全
- 使用Secrets存储敏感信息,避免硬编码密码。
- 定期备份etcd数据和集群配置,确保快速恢复。
参考来源: