本文主要从不同层面与多个维度描述Kubernetes技术与架构的安全性。
云原生的安全性
从系统分层架构的角度分析,自底向上,云原生的安全性主要包括云、集群、容器以及代码四个层面,简称云原生4C安全,其架构图如下所示:
Pod安全标准
Pod的标准安全性主要包括三个级别的安全策略,由宽松到严格分别是特权(Privileged),该安全策略一般是对系统或者基础设施,默认地,权限授予给具有特权或者可信任的用户使用,基线(Baseline),该安全策略一般是对容器化层面的非关键应用的操作人员或者开发者,约束(Restricted),该安全策略一般是对Pod层面的关键应用的操作人员或者开发者,其作用是安全性增强。
服务账户(Service Account)
在Kubernetes集群中,服务账户是非人造账户ID,主要是用于Kubernetes集群内外的组件、Pod以及实体之间的信任互访,其使用场景主要包括Pod与Kubernetes集群API server服务器之间的信任访问、Pod与外部服务之间的信任访问、Pod与容器镜像服务中心之间的信任访问、第三方安全软件与不同Pod之间的信任访问,服务账号的信任访问包括token授权以及token鉴权两个部分。
Pod安全性确认
Kubernetes集群使用Pod安全性确认控制器保证Pod在创建的过程中实施Pod的安全性策略。
Kubernetes API访问控制
如上所示,外部用户使用服务账户ID信任访问Kubernetes的流程,该流程包括四个步骤,分别是获取授权、接受鉴权、授权确认、读写数据
RBAC
RBAC(Role Based Access Control)是基于角色的访问控制,每个角色是一个权限的子集合,被授权该角色的资源能拥有子集合内的权限。
Secret
Secret是Kubernetes对象类型,用于保存Kubernetes集群内的敏感信息,例如,密码、token或者SSH秘钥。
多租户
鉴权机制
现代化软件硬件系统的数据安全传输以及数据安全存储,基本上都是以数字证书的形式实现,例如,X.509类型的加密标准的数字证书,该类型数字证书的加密标准既能提供对称加密以及非对称加密、双重签名的安全保证。
安全性检查清单
Kubernetes集群技术与架构的安全性检查清单的维度主要包括鉴权授权、网络安全、Pod安全性、日志审计、Pod布局、容器镜像、权限确认控制器。