码迷,mamicode.com
首页 > Web开发 > 详细

Kubernetes---安全 认证

时间:2020-05-01 18:19:32      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:api   不同   ca证书   客户   直接   保密   域名空间   das   证书认证   

⒈机制说明

技术图片

 

⒉Authentication

  1.分类

    1.HTTP Token认证:通过一个Token(字符串) 来识别合法用户

    HTTP Token 的认证是用一个很长的特殊编码方式的并且难以被模仿的字符串-Token 来表达客户的一种方式。Token 是一个很长的很复杂的宇符串,每个Token 对应一个用户名存储在 AP| Server能访问的文件中。当客户端发起API调用请求时,需要在 HTTP Header里放入 Token。
 
    2.HTTP Base认证:通过用户名+密码的方式认证
 
    用户名+:+密码 用 BASE64 算法进行编码后的宇符串放在 HTTP Request 中的 HeatherAuthorization域里发送给服务端,服务端收到后进行编码,获取用户名及密码
  
    3.最严格的 HTTPS 证书认证:基于CA根证书签名的客户端身份认证方式
  
    首先签署一个CA根证书,所有节点的证书都是以这个根证书所签发出来的子证书,并且是HTTPS的双向认证。
技术图片
  2.K8S中需要认证的节点
 
技术图片
    
    
    两种类型:
      1.Kubenetes 组件对API Server的访问: kubectl、 Controller Manager、Scheduler、 kubelet、kube-proxy
      2.Kubernetes 管理的Pod对容器的访问:Pod (dashborad 也是以Pod 形式运行)
    
    安全性说明:
      1.Controller Manager、 Scheduler 与 API Server 在同一台机器,所以直接使用API Server 的非安全端口访问,--insecure-bind-address=127.0.0.1,防止不必要的性能消耗
      2.kubectl、 kubelet、 kube-proxy访问API Server 就都需要证书进行HTTPS 双向认证
    
    证书颁发:
      1.手动签发:通过k8s 集群的跟ca 进行签发HTTPS 证书
      2.自动签发:kubelet 首次访问API Server时,使用token 做认证,通过后,Contrller Manager 会为kubelet 生成一个证书,以后的访问都是用证书做认证了
 
  3.kubeconfig
  kubeconfig文件包含集群参数 (CA证书、API Server地),客户端参数(上面生成的证书和私钥),集群context信息(集群名称、用户名) Kubenetes 组件通过启动时指定不同的kubeconfig 文件可以切换到不同的集群
  
  4.ServiceAccount
  Pod中的容器访问APServer。因为Pod的创建、销毁是动态的,所以要为它手动生成证书就不可行了。
  Kubenetes使用了Service Account解决Pod访问API Server的认证问题 
 
  5.Secret 与SA的关系
  Kubernetes 设计了一种资源对象叫做 Secret,分为两类,一种是用于 ServiceAccount 的service-account token,另一种是用于保存用户自定义保密信息的Opaque.ServiceAccount 中用到包含三个部分: Token、 ca.crt, namespace
    token是使用API Server私钥签名的 JWT。用于访问API Server时,Server端认证
    ca.crt,根证书。用于Client端验证API Server发送的证书
    namespace,标识这个service-account-token的作用域名空间
kubectl get secret --all-namespaces
kubectl describe secret default-token-5gm9r --namespace=kube-system
  默认情况下,每个namespace都会有一个ServiceAccount,如果 Pod 在创建时没有指定ServiceAccount, 就会使用Pod 所属的namespace 的 ServiceAccount
  
  6.总结
技术图片
 
 
 
 
 
 

Kubernetes---安全 认证

标签:api   不同   ca证书   客户   直接   保密   域名空间   das   证书认证   

原文地址:https://www.cnblogs.com/fanqisoft/p/12814062.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!