Ubuntu Kubernetes安全策略有哪些
导读:Ubuntu 上可用的 Kubernetes 安全策略全景 在 Ubuntu 上,Kubernetes 的安全策略通常覆盖 节点与系统层、控制面与准入、网络与命名空间隔离、身份与权限、镜像与密钥、审计与监控 等层面。下面按“策略类别—关键措...
Ubuntu 上可用的 Kubernetes 安全策略全景
在 Ubuntu 上,Kubernetes 的安全策略通常覆盖 节点与系统层、控制面与准入、网络与命名空间隔离、身份与权限、镜像与密钥、审计与监控 等层面。下面按“策略类别—关键措施—实施要点”给出可直接落地的清单与示例。
一 节点与系统层安全
- 系统加固
- 保持系统与时区一致,启用 NTP 时间同步;禁用 Swap(Kubernetes 要求)。
- 仅启用必要的系统服务,关闭不必要的端口与内核功能,减少攻击面。
- 防火墙与端口
- 使用 UFW 或 nftables 实施默认拒绝入站,仅放行必要端口(示例见下表)。
- 如不使用 NodePort,建议限制或关闭 30000–32767 端口段的外网访问。
- 内核网络参数
- 启用桥接流量走 iptables/ip6tables,开启 IPv4 转发,保证 Pod 网络与 kube-proxy/IPVS 正常工作。
- 容器运行时
- 选择受支持的 containerd/Docker,并以最小权限运行;镜像仓库使用可信源,定期更新与打补丁。
示例 UFW 规则(仅示例,按实际网段调整):
- 允许管理网段 SSH:ufw allow from 192.168.1.0/24 to any port 22 proto tcp
- 允许 API Server:ufw allow from 10.0.0.0/24 to any port 6443 proto tcp
- 允许 kubelet API:ufw allow from 10.0.0.0/24 to any port 10250 proto tcp
- 允许 DNS:ufw allow from 10.0.0.0/24 to any port 53 proto tcp,udp
- 允许 etcd(主节点间):ufw allow from to any port 2379,2380 proto tcp
以上做法有助于在主机侧构建第一道安全防线,并与集群网络策略形成纵深防御。
二 控制面与准入控制
- 强制 TLS 通信
- 使用 kubeadm 初始化时启用证书与 SAN,定期校验与轮换证书(如:kubeadm certs check-expiration / renew all),避免长期有效凭据。
- 禁用不安全端口与接口
- 确保 API Server 非安全端口(8080/–insecure-port) 已关闭,避免明文访问与横向渗透风险。
- 准入控制与 Pod 安全
- 启用关键准入插件:NodeRestriction、AlwaysPullImages、DenyEscalatingExec、ResourceQuota、LimitRanger、NamespaceLifecycle 等,降低提权与资源滥用风险。
- 使用 Pod Security Admission(PSA) 替代已弃用的 PodSecurityPolicy(PSP),在命名空间上设置 enforce=restricted / baseline / privileged 等级,统一约束特权、根用户、卷类型等。
这些控制面与准入策略可显著降低控制面被滥用与恶意 Pod 注入的风险。
三 网络与命名空间隔离
- 部署支持策略的 CNI 插件
- 如 Calico/Cilium/Canal,启用命名空间与服务间的细粒度流量控制。
- 默认拒绝 + 白名单
- 先以“全局默认拒绝”为基线,再为 DNS(TCP/UDP 53)、健康检查、必要的业务依赖逐条放行,避免“全通”策略。
- 命名空间与业务隔离
- 对敏感命名空间(如 database)实施入/出站白名单,仅开放必要协议与端口;分阶段推广策略,先测试再上线。
示例(Calico 全局默认拒绝 + DNS 放行):
- 全局默认拒绝
- apiVersion: projectcalico.org/v3
- kind: GlobalNetworkPolicy
- metadata: name: default-deny
- spec: selector: all(); types: [Ingress, Egress]
- DNS 例外
- apiVersion: networking.k8s.io/v1
- kind: NetworkPolicy
- metadata: name: allow-dns; namespace: default
- spec: podSelector: {
}
;
policyTypes: [Ingress];
ingress: from: [{
namespaceSelector: {
matchLabels: {
name: kube-system}
}
}
, {
podSelector: {
matchLabels: {
k8s-app: kube-dns}
}
}
];
ports: [{
protocol: TCP, port: 53}
, {
protocol: UDP, port: 53}
]
网络策略能把“谁能和谁通信”收敛到可控集合,是东西向流量的关键防线。
四 身份与权限控制
- RBAC 最小权限
- 以 Role/ClusterRole + RoleBinding/ClusterRoleBinding 精确授权;限制 default ServiceAccount 权限,避免“过度授权”与横向移动。
- 凭据与配置安全
- 保护 kubeconfig 与 ServiceAccount Token,避免提交到代码仓库;对外部访问采用 堡垒机/跳板机 与 最小源网段 策略。
- 审计与监控
- 启用 API Server 审计日志(按级别记录 create/update/delete 等敏感操作),结合 Prometheus/Grafana 与告警规则,形成可观测与取证闭环。
RBAC 与审计是“谁能做什么、做了什么”的硬约束与证据链,必须纳入日常运维与合规要求。
- 启用 API Server 审计日志(按级别记录 create/update/delete 等敏感操作),结合 Prometheus/Grafana 与告警规则,形成可观测与取证闭环。
五 镜像与密钥管理
- 镜像安全
- 仅使用可信镜像源与 签名镜像;定期扫描漏洞(如 Trivy/Anchore),及时升级基础镜像与依赖;优先选择 最小化镜像 减少攻击面。
- 密钥与敏感信息
- 使用 Secrets 管理密码/令牌/证书,避免明文与硬编码;结合 RBAC 控制访问;对 PV/PVC 与 etcd 数据启用 加密(如平台提供)。
镜像与密钥是供应链与应用数据安全的源头,需与 CI/CD 流水线打通实现自动化治理。
- 使用 Secrets 管理密码/令牌/证书,避免明文与硬编码;结合 RBAC 控制访问;对 PV/PVC 与 etcd 数据启用 加密(如平台提供)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Kubernetes安全策略有哪些
本文地址: https://pptw.com/jishu/771260.html
