首页 > 其他分享 >创建用户认证授权的 kubeconfig 文件

创建用户认证授权的 kubeconfig 文件

时间:2022-10-11 12:34:14浏览次数:74  
标签:pki kubernetes -- namespace 认证 etc 授权 cby kubeconfig

创建用户认证授权的 kubeconfig 文件

当我们安装好集群后,如果想要把 kubectl 命令交给用户使用,就不得不对用户的身份进行认证和对其权限做出限制。

下面以创建一个 cby 用户并将其绑定到 cby 和 chenby 的 namespace 为例说明。

创建生成证书配置文件

详细见:https://github.com/cby-chen/Kubernetes#23%E5%88%9B%E5%BB%BA%E8%AF%81%E4%B9%A6%E7%9B%B8%E5%85%B3%E6%96%87%E4%BB%B6

cat > ca-config.json << EOF
{
"signing": {
"default": {
"expiry": "876000h"
},
"profiles": {
"kubernetes": {
"usages": [
"signing",
"key encipherment",
"server auth",
"client auth"
],
"expiry": "876000h"
}
}
}
}
EOF


cat > cby-csr.json << EOF
{
"CN": "cby",
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "Beijing",
"L": "Beijing",
"O": "system:masters",
"OU": "Kubernetes-manual"
}
]
}
EOF

生成 CA 证书和私钥

cfssl gencert \
-ca=/etc/kubernetes/pki/ca.pem \
-ca-key=/etc/kubernetes/pki/ca-key.pem \
-config=ca-config.json \
-profile=kubernetes \
cby-csr.json | cfssljson -bare /etc/kubernetes/pki/cby




ll /etc/kubernetes/pki/cby*
-rw-r--r-- 1 root root 1021 May 25 17:36 /etc/kubernetes/pki/cby.csr
-rw------- 1 root root 1679 May 25 17:36 /etc/kubernetes/pki/cby-key.pem
-rw-r--r-- 1 root root 1440 May 25 17:36 /etc/kubernetes/pki/cby.pem

创建 kubeconfig 文件

kubectl config set-cluster kubernetes     \
--certificate-authority=/etc/kubernetes/pki/ca.pem \
--embed-certs=true \
--server=https://10.0.0.89:8443 \
--kubeconfig=/etc/kubernetes/cby.kubeconfig

kubectl config set-credentials cby \
--client-certificate=/etc/kubernetes/pki/cby.pem \
--client-key=/etc/kubernetes/pki/cby-key.pem \
--embed-certs=true \
--kubeconfig=/etc/kubernetes/cby.kubeconfig

kubectl config set-context cby@kubernetes \
--cluster=kubernetes \
--user=cby \
--kubeconfig=/etc/kubernetes/cby.kubeconfig

kubectl config use-context cby@kubernetes --kubeconfig=/etc/kubernetes/cby.kubeconfig

添加用户并将配置其用户

useradd cby
su - cby
mkdir .kube/
exit
cp /etc/kubernetes/cby.kubeconfig /home/cby/.kube/config
chown cby.cby /home/cby/.kube/config

RoleBinding

需要使用 RBAC创建角色绑定以将该用户的行为限制在某个或某几个 namespace 空间范围内

kubectl create namespace cby
kubectl create namespace chenby
kubectl create rolebinding cby --clusterrole=cluster-admin --user=cby --namespace=cby
kubectl create rolebinding cby --clusterrole=cluster-admin --user=cby --namespace=chenby

kubectl describe -n chenby rolebindings.rbac.authorization.k8s.io cby
Name: cby
Labels: <none>
Annotations: <none>
Role:
Kind: ClusterRole
Name: cluster-admin
Subjects:
Kind Name Namespace
---- ---- ---------
User cby

kubectl describe -n cby rolebindings.rbac.authorization.k8s.io cby
Name: cby
Labels: <none>
Annotations: <none>
Role:
Kind: ClusterRole
Name: cluster-admin
Subjects:
Kind Name Namespace
---- ---- ---------
User cby

su - cby

获取当前的 context

kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE

* kubernetes-cby@kubernetes kubernetes kubernetes-cby cby

无法访问 default namespace

[cby@k8s-master01 ~]$ kubectl get pods --namespace default
Error from server (Forbidden): pods is forbidden: User "cby" cannot list resource "pods" in API group "" in the namespace "default"
[cby@k8s-master01 ~]$

可以访问 cby namespace

这样 cby 用户对 cby 和 chenby 两个 namespace 具有完全访问权限。

[cby@k8s-master01 ~]$ kubectl get pods --namespace cby
No resources found in cby namespace.
[cby@k8s-master01 ~]$ kubectl get pods --namespace chenby
No resources found in chenby namespace.

​https://www.oiox.cn/​​​https://www.chenby.cn/
https://cby-chen.github.io/
https://www.zhihu.com/people/chen-bu-yun-2
https://cloud.tencent.com/developer/column/93230https://www.jianshu.com/u/0f894314ae2chttps://www.toutiao.com/c/user/token/MS4wLjABAAAAeqOrhjsoRZSj7iBJbjLJyMwYT5D0mLOgCoo4pEmpr4A/GitHub、知乎、思否、简书、腾讯云、今日头条、个人博客、全网可搜《小陈运维》
文章主要发布于微信公众号:《Linux运维交流社区》


标签:pki,kubernetes,--,namespace,认证,etc,授权,cby,kubeconfig
From: https://blog.51cto.com/u_12212643/5746116

相关文章

  • CCF PTA编程培训师资认证
    考试费用:双会员500元,任意一方单会员750元,报名考试同时成为CCF专业会员850元,非会员1000元。P/T2补考费用:双会员200元,任意一方单会员300元,非会员400元。T1补考费用......
  • CCF CSP认证注册、报名、查询成绩、做模拟题等答疑
    CCFCSP认证注册、报名、查询成绩、做模拟题等答疑CCFCSP认证中心将考生在注册,或报名,或查询成绩,或历次真题练习时遇到的问题进行汇总,并给出解决方法,具体如下:1、注册......
  • nacos未授权访问漏洞复现
    nacos未授权访问漏洞复现一、漏洞介绍Nacos是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。致力于帮助发现......
  • 插头亚马逊CE认证流程
    ​​接插件​​一般分为插头和插座两半。插头一般指不固定的那一半。插头是指一个可活动的接头,与使用电力的装置之间透过电线连接;而插座则是固定在设备或建筑结构上。CE认证......
  • mysql8.0 用户授权
    createuser'user-xxx'@'%'identifiedby'passworddddd';grantallprivilegeson*.*to'user-xxx'@'%'withgrantoption;ALTERUSER'user-xxx'@'localhost'ID......
  • zookeeper的几种授权方式
    zookeeper授权方式设置一、设置授权1.1、IP白名单方式备注:对需要进行白名单设置的路径进行设置,此处设置的路径没有继承关系,即设置了/test的白名单,但是/test/test2依然......
  • ETCD 未授权访问漏洞-添加iptables规则修复方法
    ⻛险提⽰1.在iptables规则配置正确的情况下,可以规避未认证的漏洞;2.如变更过程中误操作限制了其他端⼝的情况下可能会造成存储异常;影响版本所有版本问题描述:客⼾采......
  • 权限类使用,频率类使用,认证源码分析, 权限源码分析,频率源码分析,鸭子类型
    1.权限类的使用-第一步:写一个类,继承BasePermission-第二步:重写has_permission方法-第三步:在方法中校验用户是否有权限(request.user就是当前登录用户)-第四......
  • CSP第27次认证 T3:防疫大数据
    题目直接暴力模拟。首先对于每一个地区,选择用map进行离散化,并直接存储其对应区间信息,使用pair即可。在新输入一个疫情地区时,检查是否与原天数相连即可(同时注意判断b......
  • 权限类、频率类、鸭子类型、源码分析(认证类源码、权限类源码)
    目录权限类一、认证二、需求三、使用步骤频率类一、应用二、使用步骤源码分析一、认证源码分析二、权限源码分析三、频率类源码鸭子类型一、通俗化的解释二、详细说明注意......