以下是Kubernetes在Ubuntu上的安全實踐:
-
系統基礎安全
- 禁用Swap:修改
/etc/fstab
并執行swapoff --all
。
- 同步時間:安裝NTP服務,配置可靠時間源。
- 調整內核參數:通過
sysctl
啟用網絡轉發等必要功能。
-
網絡安全防護
- 防火墻配置:使用UFW限制端口,僅開放SSH(22)、API Server(6443)等必需端口,限制訪問來源。
- TLS加密:初始化集群時通過
kubeadm
配置證書,確保API Server、etcd等組件通信加密。
- 網絡策略:部署Calico等插件,通過
NetworkPolicy
限制Pod間通信,實現命名空間隔離。
-
權限與訪問控制
- RBAC:創建最小權限角色(Role/ClusterRole)和綁定(RoleBinding/ClusterRoleBinding),定期審計權限。
- Pod安全:配置Pod Security Policy,禁止容器以root權限運行,限制敏感權限。
-
鏡像與運行時安全
- 使用可信鏡像源,定期更新鏡像并掃描漏洞。
- 以非root用戶運行容器,限制容器內系統調用(如通過Seccomp、AppArmor)。
-
審計與監控
- 啟用API Server審計日志,分析異常操作。
- 部署監控工具(如Prometheus、Grafana),實時追蹤集群狀態。
-
持續安全運維
- 定期更新系統和Kubernetes組件,應用安全補丁。
- 建立安全事件響應機制,快速應對漏洞或入侵。
參考來源: