给你的Kubernetes集群建一个只读账户(防止高管。。。后)
2021-04-13 07:28
标签:ret 需要 clu 接下来 pre subject replicat context src 需求:我们知道搭完k8s集群会创建一个默认的管理员kubernetes-admin用户该用户拥有所以权限,有一天开发或测试的同学需要登录到k8s集群了解业务pod的状态等,我们不可能提供管理员的账户给他不安全如果他因为某个高管。。。删库跑路啥办??,所以建一个只读账户迫在眉睫。 kubectl conifg命令常见操作: 一、我是用kubeadm部署的集群,给只读账户jackhe创建私钥及证书文件,并保存在/etc/kubernetes/pki目录下。 1)生成私钥文件。 2)创建证书部署请求,关键点其中-subj选项中的CN的值将被kubeconfig最为用户名使用。 3)用kubernetes集群生成的CA签署证书,设置有限时间3650天。 4)验证证书信息。 二、创建一个新的集群信息,因为最终我们是提供config给使用者,默认的config文件有管理员信息当我们执行:kubectl config use-context kubernetes-admin@kubernetes就拥有了管理权限,这是不被允许的。 选项: 三、配置客户端证书及密钥,?户名信息会通过命令从证书Subject的CN值中?动提取,例如前?创建csr时使?的“CN=jackhe”. 选项: 四、配置context,?来组合cluster和credentials,即访问的集群的上下?。 注意: jackhe@mycluster要对应上你新建的集群名字!!! 六、接下来我们基于RBAC建立只读ClusterRole文件(权限可配置)。 kubectl apply -f readonly.yaml 七、创建基于用户jackhe的ClusterRoleBinding文件。 kubectl apply -f readonly.yaml 八、我们这时再测试已经有了只读权限。 九、大功告成,接下来我们只要把/tmp/config文件放到用户的家目录.kube下就可以使用了。 OS切换到jackhe用户,我们能看到只有只读权限,也无法 上下文切换到kubernetes-admin@kubernetes ,因为配置文件里并没有相关信息。哈哈,还想删库跑路!!! 给你的Kubernetes集群建一个只读账户(防止高管。。。后) 标签:ret 需要 clu 接下来 pre subject replicat context src 原文地址:https://www.cnblogs.com/Dev0ps/p/12388718.html给你的Kubernetes集群建一个只读账户
# kubectl config view
cd /etc/kubernetes/pki/
umask 077;openssl genrsa -out jackhe.key 2048
openssl req -new -key jackhe.key -out jackhe.csr -subj "/CN=jackhe"
openssl x509 -req -in jackhe.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out jackhe.crt -days 3650
openssl x509 -in jackhe.crt -text -noout
kubectl config set-cluster mycluster --kubeconfig=/tmp/config --certificate-authority=/etc/kubernetes/pki/ca.crt --embed-certs=true --server="https://192.168.10.129:6443"
--kubeconfig="":配置文件存放路径
--certificate-authority="": 设置kuebconfig配置文件中集群选项中的certificate-authority路径。
--embed-certs=false: 设置kuebconfig配置文件中集群选项中的embed-certs开关。
--server="": 设置kuebconfig配置文件中集群选项中的server。
kubectl config set-credentials jackhe --embed-certs=true --client-certificate=/etc/kubernetes/pki/jackhe.crt --client-key=/etc/kubernetes/pki/jackhe.key --kubeconfig=/tmp/config
--client-certificate="": 设置kuebconfig配置文件中用户选项中的证书文件路径。
--client-key="": 设置kuebconfig配置文件中用户选项中的证书密钥路径。
--embed-certs=false: 设置kuebconfig配置文件中用户选项中的embed-certs开关。
kubectl config set-context jackhe@mycluster --cluster=mycluster --user=jackhe --kubeconfig=/tmp/config
五、指定上下文切换到jackhe访问集群,我们能看到现在是没有任何权限的。kubectl config use-context jackhe@mycluster --kubeconfig=/tmp/config
kubectl config view --kubeconfig=/tmp/config
kubectl get pod --kubeconfig=/tmp/config
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: cluster-readonly
rules:
- apiGroups:
- ""
resources:
- pods
- pods/attach
- pods/exec
- pods/portforward
- pods/proxy
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- configmaps
- endpoints
- persistentvolumeclaims
- replicationcontrollers
- replicationcontrollers/scale
- secrets
- serviceaccounts
- services
- services/proxy
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- bindings
- events
- limitranges
- namespaces/status
- pods/log
- pods/status
- replicationcontrollers/status
- resourcequotas
- resourcequotas/status
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- namespaces
verbs:
- get
- list
- watch
- apiGroups:
- apps
resources:
- deployments
- deployments/rollback
- deployments/scale
- statefulsets
verbs:
- get
- list
- watch
- apiGroups:
- autoscaling
resources:
- horizontalpodautoscalers
verbs:
- get
- list
- watch
- apiGroups:
- batch
resources:
- cronjobs
- jobs
- scheduledjobs
verbs:
- get
- list
- watch
- apiGroups:
- extensions
resources:
- daemonsets
- deployments
- ingresses
- replicasets
verbs:
- get
- list
- watch
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: cluster-readonly
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-readonly
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: User
name: jackhe
kubectl get pod --kubeconfig=/tmp/config
mkdir -p /home/jackhe/.kube
cp /tmp/config /home/jackhe/.kube/
chown -R jackhe.jackhe /home/jackhe/.kube/
文章标题:给你的Kubernetes集群建一个只读账户(防止高管。。。后)
文章链接:http://soscw.com/index.php/essay/75094.html