集群的安全性须要考虑如下几个目标:安全
一、保证容器与其所在宿主机的隔离server
二、限制容器给基础设施及其余容器带来的消极影响的能力对象
三、最小权限原则——合理限制全部组件的权限,确保组件只执行它被受权的行为进程
四、明确组件间边界的划分资源
五、划分普通用户和管理员用户io
六、在必要的时候容许将管理员权限赋给普通用户集群
七、容许拥有Secret数据的应用在集群中运行容器
1、API Server认证基础
集群全部资源的访问和变动都是经过K8S API来实现的,因此集群安全的关键点就是如何识别并认证客户端的身份,以及认证后的受权问题。配置
K8S集群提供了3中级别的客户端身份认证:
1)、最严格的的HTTPS双向证书认证;
2)、HTTP Token认证,经过Token识别合法用户
3)、HTTP Base认证,经过用户名+密码的方式认证
2、API Server 受权
分一下集中受权策略:
1)、AlwaysDeny:拒绝全部请求
2)、AlwaysAllow:接收全部请求
3)、ABAC:基于属性的访问控制,使用用户配置的受权策略匹配用户的请求,受权策略有如下四种属性:
API Server启用ABAC模式时,须要制定受权文件,受权文件里的每一行都是Map类型的JSON对象,称为“访问策略对象”。
3、Admission Control准入控制
Admission Control有一个准入控制列表,发送给API server的任何请求都须要经过准入列表的检查。
4、Service Account
Service Account为运行在Pod里的进程使用。