真题解析

题目

由 kubeadm 创建的 cluster 的 kubernetes API 服务器,出于测试目的,临时配置为允许未经身份验证和未授权的访问,授予匿名用户 cluster-admin 的访问权限。

Task

重新配置 cluster 的 kubernetes API 服务器以确保只允许经过身份验证和授权的 REST 请求。

使用授权模式 Node,RBAC 和准入控制器 NodeRestriction 。

删除用户 system:anonymous 的 ClusteRoleBinding 来进行清理。

您可以使用位于 cluster 的 master 节点上,cluster 原本的 kubectl 配置文件 /etc/kubernetes/admin.conf ,以确保经过身份验证和授权的请求仍然被允许。

解析

编辑 /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.conf

Last updated