首页 > 其他 > 详细

03-k8s认证

时间:2019-07-30 03:29:57      阅读:87      评论:0      收藏:0      [点我收藏+]

k8s认证

主要使用 RBAC授权检查机制
认证: token ssl(双向认证\加密会话)
授权检查
准入控制

客户端 ---> API Server

API Server 对用户权限的判断需要以下:
user: username uid
group:
extra:

  • 开启api代理
kubectl proxy

HTTP request verb
get post put delte
API request verb
get list create update path watch(- w) proxy redirect deletecollection
Resource:
Subresource
namespace
Api group

RBCA

k8s 用户类型

  • user
  • group
  • serviceaccount

serviceaccount 创建

kubectl create serviceaccount default-ns-admin -n default
kubectl create rolebinding default-ns-admin --clusterrole=admin --serviceaccount=default:default-ns-admin  

## 获取serviceaccount的 token 需要用base64解密
kubectl get secrets default-ns-admin-token-2tm4n -o jsonpath={.data.token}|base64 -d

用户ssl 认证相关

https://github.com/huruizhi/Knowledge-warehouse/blob/master/linux总结/CA证书与https讲解.md
https://github.com/gjmzj/kubeasz/blob/master/docs/setup/01-CA_and_prerequisite.md

kubeconfig 配置kubectl 连入apiServer的配置

# kubectl config view 
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: REDACTED
    server: https://192.168.0.200:8443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: admin
  name: kubernetes
current-context: kubernetes
kind: Config
preferences: {}
users:
- name: admin
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED

一个客户端可以配置连接多个集群

context用于定义账号与集群的关系,current-context定义当前访问的集群。

RBAC(Role-Based Access Control)

基于角色的访问控制

技术分享图片

  • role/clusterrole:
    • operations
    • objects
  • rolebinding/clusterrolebinding
    • user or service account
    • role

role 与 rolebinding在名称空间内定义及在当前名称空间内生效。

clusterrole 与clusterrolebinding 在集群中定义且在 整个集群内生效

注意:也可以建立clusterrole 使用 rolebing 进行绑定。

clusterrole 与clusterrolebinding

  • subject 类型:

user group serviceaccount

role clusterrole:

  • object:
    • resource group
    • resource
    • nonResourceURLs
  • action: get, list, watch, patch, delete, deletecollection

dashboard 的认证登录

  • 认证账号类型必须是ServiceAccount 类型,使用rolebinding或者clusterrolebing 进行权限的赋予
  • 使用kubectl get secrets default-ns-admin-token-2tm4n -o jsonpath={.data.token}|base64 -d获取token
  • kubconfig 方式 是token 的封装

使用 kubeconfig 生成 kubeconfig 文件 使用参数 --kubeconfig 指定文件

03-k8s认证

原文:https://www.cnblogs.com/pythonPath/p/11267386.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!