k8s权限管理

权限介绍

k8s的资源访问控制支持多种模式,对于资源的管理模式基于RBAC(role basic access control)。主要涉及到以下个k8s对象类型:

  • serviceaccout
  • role
  • rolebinding
  • clusterrole
  • clusterrolebinding

role 和 clusterrole 的一个区别在于,role授予的权限只能是在所属的namespace,而clusterrole是全局的。在k8s资源中,有些资源是有namespace scope的,可以通过kubectl api-resources 进行查看

NAME                              SHORTNAMES   APIVERSION                             NAMESPACED   KIND
bindings                                       v1                                     true         Binding
componentstatuses                 cs           v1                                     false        ComponentStatus
configmaps                        cm           v1                                     true         ConfigMap
endpoints                         ep           v1                                     true         Endpoints
events                            ev           v1                                     true         Event

对于serviceaccount(以下简称sa)类型的用户,在1.24版本之前,创建sa用户时,会对应生成一个secret用于访问认证,1.24版本之后,官方建议使用kubectl create token serviceaccount来进行生成,可以对token的使用期限,对象进行控制,比较安全。

K8s的资源访问严格遵循resetful风格,从3方面进行资源限制

  • apiGroups

    对服务器的api端口进行控制

  • resources

    对k8s的资源类型进行控制

  • verbs

    对k8s的资源进行操作控制

详细的控制权限可以看官方文档:https://kubernetes.io/zh-cn/docs/reference/access-authn-authz/authorization/

操作实践

笔者的版本为1.26,所以在创建完成sa之后,没有生成对应的secret来存储token,需要使用kubectl create token来进行生成。

以下来进行演示一个role权限

  1. 创建测试的命名空间

    笔者建议使用一个新的命名空间来进行测试

    kubectl create ns authority-test
    
  2. 创建serviceaccount用户myuser

    kubectl create serviceaccount myuser
    
  3. 创建role角色myrole并设置权限

    kubectl create role myrole
    kubectl edit role myrole
    

    设置权限规则如下:

    rules:
    - apiGroups:
      - "*"
      resources:
      - '*'
      verbs:
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值