真题解析
题目

由 kubeadm 创建的 cluster 的 kubernetes API 服务器,出于测试目的,临时配置为允许未经身份验证和未授权的访问,授予匿名用户 cluster-admin 的访问权限。
Task
重新配置 cluster 的 kubernetes API 服务器以确保只允许经过身份验证和授权的 REST 请求。
使用授权模式 Node,RBAC 和准入控制器 NodeRestriction 。
删除用户 system:anonymous 的 ClusteRoleBinding 来进行清理。
所有 kubectl 配置环境/文件也被配置为使用未经身份验证和未经授权的访问。您不必更改它,但请注意,一旦完成 cluster 的安全加固,kubectl 的配置将无法工作。
解析
编辑 /etc/kubernetes/manifests/kube-apiserver.yaml
- --authorization-mode=Node,RBAC
- --enable-admission-plugins=NodeRestriction删除 ClusterRoleBinding
kubectl get clusterrolebinding -o yaml | grep system:anonymous
# 根据过滤结果进行删除
kubectl delete clusterrolebinding xxx验证
kubectl get node --kubeconfig=/etc/kubernetes/admin.confLast updated