zl程序教程

您现在的位置是:首页 >  其他

当前栏目

保证Kubernetes生产环境安全七条建议

2023-03-07 09:49:00 时间

 限制网络暴露

Kubernetes 重要组件的网络暴露必须限制:其中 Kubelet API、Kubernetes Dashboard、ETCD 上述组件不要暴露到公网,内部暴露也尽量限制范围。API server 如果非要对外暴露一定是提供HTTPS证书认证的方式。

使用 RBAC

安全领域的坚守的准则之一:最小化权限开放。通过RBAC 开放最小化权限。因为在k8s中serviceaccount 会自动注入到 pod 中的,给予不必要的权限非常危险,尤其操作 Pod 的权限。

Secret

Secret 管理程序,商业的有如 Hashicorp Vault,开源的有 Sealed Secrets、Kamus 、Helm Secerts Plugin。原生sercet的base64 实在是太弱了。

Network Policy

Network Policy 作为在 Kubernetes 集群范围内控制应用网络访问范围的有效手段。但这个设置需要谨慎,否则很容易导致生产故障。

Security Context

Kubernetes 的 Security Context 定义 Pod 或 Container 的特权与访问控制设置。包括非root运行,开放各种capabilities等。比如,下面通过NET_ADMIN 开启容器配置网络的权限。

  1. apiVersion: v1  
  2. kind: Pod  
  3. metadata:  
  4.   name: security-context-demo-4  
  5. spec:  
  6.   containers:  
  7.   - name: sec-ctx-4  
  8.     image: busybox  
  9.     securityContext:  
  10.       capabilities:  
  11.         add: ["NET_ADMIN"]  

seccomp

过滤危险的系统调用。

安全容器

部分高危的应用可用采用kata等安全容器部署,减少容器逃逸带来的风险。