k8s--基础--23.7--认证-授权-准入控制--限制用户操作k8s资源的权限

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

在这里插入图片描述

你可能感兴趣的:(k8s,kubernetes,docker,容器)