k8s 安全原理

 

 

 

 

部署态的安全控制:

1.认证 authentication

x509 ,sa,username/password

 x509 启动参数:--client-ca-file=ca.crt  (指定根证书)

service account  启动参数:--service-account-key-file=key.pem (用以生成token),由controller创建,pod用sa中的token 访问api

认证方式有多种,一种通过即可,输出userinfo;然后基于userinfo 进行鉴权

 

2.鉴权 authorization

RBAC ,ABAC, Node

rbac: role,rolebinding (作用于namespace);clusterRole,clusterRoleBinding

 

3.Admission(PodSecurityPolicy)

admin 用户创建podsercurityPolicy,决定能创建什么样的pod;允许挂载什么volume 

;允许使用什么网络(例如直接使用主机网络hostnetwork)

 它是一个k8s对象;貌似类似于openshift中的SCC的对象,restricted,privileged

 

 

4.Pod SecurityContext

pod .yaml 文件中的对象

有容器级别 与pod 级别;在容器级别有系统调用权限设置例如时钟设置等

属性:privileged;runAsUser;fsGroup 等

 

 

运行态的安全控制

5.Network policy

k8s 的一种对象; 用于集群项目间的访问控制,ip 白名单什么的

Ingress :入口请求控制

Egress :出口请求控制

 

 

安全持久化保存键值etcd

posted on 2019-07-20 08:58  Mfrankm  阅读(979)  评论(0编辑  收藏  举报