昇腾社区首页
中文
注册

Kubernetes安全加固

Kubernetes需要进行如下加固:

  • kube-apiserver加强:
    • 修改启动参数“--profiling”的值设置为“false”,防止用户动态修改kube-apiserver日志级别。
    • 修改或增加启动参数“--tls-cipher-suites”,设置它的值如下,避免使用不安全的TLS加密套件带来风险。
      --tls-cipher-suites=TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
    • 修改或增加启动参数“--audit-policy-file”,配置K8s的审计策略,具体配置可参考Kubernetes官方文档
  • kubelet加强:
    • 为防止单Pod占用过多进程数,可以开启SupportPodPidsLimit,并设置--pod-max-pids。在kubelet配置文件的KUBELET_KUBEADM_ARGS项增加--feature-gates=SupportPodPidsLimit=true --pod-max-pids=<max pid number>,配置修改后,重启生效。具体可参考Kubernetes官方文档
    • 修改或增加启动参数“--tls-cipher-suites”,设置它的值如下,避免使用不安全的TLS加密套件带来风险。
      --tls-cipher-suites=TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384

      K8s v1.19及以上版本支持TLS v1.3的加密套件,建议使用高版本的K8s时,加上TLS v1.3的加密套件。

  • K8s集群使用的OS kernel内核版本大于或等于4.6,安装完K8s后手动开启AppArmor或者SELinux。
  • 其余安全加固内容可参考Kubernetes官方文档Security相关内容,也可以参考业界其他优秀加固方案。
  • 请在K8s中为上层业务平台配置合适的权限,如限制账号可访问的API组等,避免上层业务操作不必要的K8s资源,详细可参考官方文档