温馨提示×

Ubuntu Kubernetes安全设置有哪些要点

小樊
43
2025-11-28 22:29:38
栏目: 智能运维

Ubuntu 上 Kubernetes 安全设置要点

一 主机与网络基线

  • 禁用 Swap:执行 sudo swapoff -a 并注释 /etc/fstab 中的 swap 行,避免 kubelet 异常与稳定性风险。
  • 内核网络参数:在 /etc/sysctl.d/kubernetes.conf 中启用桥接流量进入 iptables,并开启转发:
    net.bridge.bridge-nf-call-ip6tables=1、net.bridge.bridge-nf-call-iptables=1、net.ipv4.ip_forward=1;执行 sysctl -p 生效。
  • 时间同步:安装并启用 NTP/chrony,保证节点时间一致,避免证书校验与调度异常。
  • 防火墙与端口:使用 UFW 实施最小暴露面,仅放通必要端口,例如:
    • 22/TCP SSH(限定管理网段)
    • 6443/TCP API Server(仅内网/跳板机)
    • 10250/TCP Kubelet API(节点间)
    • 2379–2380/TCP etcd(主节点间)
    • 53/TCP/UDP DNS
    • 如不使用 NodePort(30000–32767),建议关闭或严格限制来源。
  • 容器运行时:优先使用 containerd(或 Docker),并配置镜像仓库凭据与拉取策略,减少供应链风险。

二 集群通信与认证

  • 全组件 TLS:确保 API Server、etcd、kubelet、kube-proxy、controller-manager、scheduler 之间通信均启用 TLS;使用 kubeadm 初始化时配置证书与 SAN(如 --apiserver-cert-extra-sans=外网IP/域名),避免明文端口与不安全端口。
  • 禁用不安全端口:确保 kube-apiserver 未启用 --insecure-port--insecure-bind-address=0.0.0.0,仅使用 6443 安全端口。
  • 证书与凭据治理:集中管理 CA/etcd/cert 生命周期,定期轮换;为 kubeconfig 设置最小权限与过期策略,避免长期有效凭据。

三 身份与访问控制

  • RBAC 最小权限:以 Role/ClusterRole + RoleBinding/ClusterRoleBinding 精确授权;避免将 cluster-admin 直接绑定到用户或应用 ServiceAccount;定期审计并清理不再使用的绑定。
  • 命名空间隔离:按 dev/staging/prod 划分命名空间,配合 ResourceQuotaLimitRange 控制资源与权限边界。
  • 外部身份集成:对接 OIDC/LDAP,在 API Server 启用相关启动参数,实现统一身份与单点登录。
  • 权限自检:使用 kubectl auth can-i --list --as=system:serviceaccount:<ns>:<sa> 验证最小权限是否满足。

四 网络与 Pod 安全

  • NetworkPolicy:启用网络策略插件(如 Calico/Cilium),默认拒绝入站/出站,按需放行:
    • 命名空间默认拒绝示例:
      • apiVersion: networking.k8s.io/v1
      • kind: NetworkPolicy
      • metadata: name: default-deny; namespace: staging
      • spec: podSelector: {}; policyTypes: [Ingress]
    • 按需仅允许必要流量(如仅允许来自 frontend 命名空间的 80/443)。
  • 注意:开启网络策略可能对性能有轻微影响,需在启用前评估与验证。
  • 运行时安全:为工作负载设置 SecurityContext(如 runAsNonRoot、readOnlyRootFilesystem、dropCapabilities、seccompProfile),避免使用特权容器。

五 镜像与供应链、审计与运维

  • 可信镜像与私有仓库:仅从可信源拉取,使用 Harbor/Quay 等私有仓库,启用镜像签名与漏洞扫描,定期更新镜像以修复 CVE。
  • 数据与凭据:使用 Secrets(优先 KMS/外部密钥管理)管理敏感信息,避免明文;对 PV/PVC 启用加密与最小权限挂载。
  • 审计与监控:开启 Kubernetes 审计日志,结合 Prometheus/Grafana 与告警规则,持续监测异常 API 调用、资源异常与节点状态。
  • 持续加固:保持 Ubuntu 与 Kubernetes 组件及时更新,遵循 最小权限原则零信任 思路,定期复盘安全基线。

0