kubernetes RBAC授权配置

一、RBAC授权流程图:

角色分类有两种:
Role:普通角色,可以应用于某一个命名空间,使用的是RoleBinding与User、Group、serviceaccount进行角色绑定
ClusterRole:集群角色,应用于整个集群,所有命名空间,使用的是ClusterRoleBinding与User、Group、serviceaccount进行集群角色绑定

主体:
User:根据ssl证书CN字段上配置的
Group:根据ssl证书O字段上配置的
serviceaccount:应用于服务配置的,根据serviceAccountName进行应用到yaml文件中

操作(verbs)
get、list、watch、create、delete、deletecollection、patch、update
查询权限:get、list、watch
修改权限:create、delete、deletecollection、patch、update

二、用户与角色绑定实例

2.1、创建证书文件
k8s的User是从CN上配置的。 组是从O上配置的。这个用户或者组用于后面的角色绑定使用,下图创建了User为ahi,Group为system:k8s-user

cat  > ahi-csr.json  << EOF
{
  "CN": "ahi",   ##k8s user
  "hosts": [],
  "key": {
    "algo": "rsa",
    "size": 2048
  },
  "names": [
    {
      "C": "CN",
      "L": "BeiJing",
      "ST": "BeiJing",
      "O": "system:k8s-user",  ##k8s group
      "OU": "System"
    }
  ]
}

EOF

2.2、生成证书文件
cfssl gencert -ca=/opt/kubernetes/ssl/ca.pem -ca-key=/opt/kubernetes/ssl/ca-key.pem -config=/root/k8s/install/ssl/ca/ca-config.json -profile=kubernetes ahi-csr.json | cfssljson -bare ahi

2.3、配置ahi用户的kubectl
配置apiserver地址:
kubectl config set-cluster kubernetes --certificate-authority=/home/ahi/.kube/keys/ca.pem --server=https://172.21.0.7:6443
设置客户端认证参数:
kubectl config set-credentials ahi --client-certificate=/home/ahi/.kube/keys/ahi.pem --client-key=/home/ahi/.kube/keys/ahi-key.pem
设置上下文参数:
kubectl config set-context kubernetes --cluster=kubernetes --user=ahi
设置莫认上下文:
kubectl config use-context kubernetes

2.4、授权ahi用户只能访问default命名空间的pod、services

---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: default           ## 授权于default命名空间
  name: user-ahi-auth
rules:
- apiGroups: [""]

  resources: ["pods","services"]        ##  授权pods、services可访问

  verbs: ["get","list","watch"]      ## 只有查询的操作

---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: user-ahi-auth-bind
  namespace: default               ## 授权于default命名空间
subjects:
- kind: User
  name: ahi               ## ahi用户
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: user-ahi-auth        ## Role角色
  apiGroup: rbac.authorization.k8s.io

2.5、经过授权后的用户访问其它资源的报错信息

相关地址链接:
https://www.kubernetes.org.cn/4062.html
https://studygolang.com/articles/11730?fr=sidebar

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值