k8s–基础–23.7–认证-授权-准入控制–限制用户操作k8s资源的权限
1、生成一个证书
1.1、生成一个私钥
cd /etc/kubernetes/pki/
(umask 077; openssl genrsa -out lucky.key 2048)
1.2、生成一个证书请求
openssl req -new -key lucky.key -out lucky.csr -subj "/CN=lucky"
1.3、生成一个证书
openssl x509 -req -in lucky.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out lucky.crt -days 3650
2、在kubeconfig下新增加一个lucky这个用户
2.1、把lucky这个用户添加到kubernetes集群中,可以用来认证apiserver的连接
kubectl config set-credentials lucky --client-certificate=./lucky.crt --client-key=./lucky.key --embed-certs=true
2.2、在kubeconfig下新增加一个lucky这个账号
kubectl config set-context lucky@kubernetes --cluster=kubernetes --user=lucky
2.3、切换账号到lucky,默认没有任何权限
# 切换账号到lucky,默认没有任何权限
kubectl config use-context lucky@kubernetes
# 切换账号到 集群用户,有任何权限(因为后面操作需要这个用户权限)
kubectl config use-context kubernetes-admin@kubernetes
3、把 lucky用户 通过rolebinding绑定到clusterrole上,授予权限,权限只是在lucky这个名称空间有效
3.1、把lucky这个用户通过rolebinding绑定到clusterrole上
kubectl create rolebinding lucky -n lucky --clusterrole=cluster-admin --user=lucky
3.2、切换到lucky这个用户
kubectl config use-context lucky@kubernetes
3.3、测试是否有权限
# 有权限操作这个名称空间
kubectl get pods -n lucky
# 没有权限操作其他名称空间
kubectl get pods
4、添加一个lucky的普通用户
# 添加用户
useradd lucky
# 拷贝kube的权限
cp -ar /root/.kube/ /home/lucky/
# 修改用户和用户组
chown -R lucky.lucky /home/lucky/
# 切换用户
su - lucky
# 查看pods资源
kubectl get pods -n lucky