【问题标题】:Is it safe to delete the cluster-admin ClusterRoleBinding on open-source Kubernetes v1.14?在开源 Kubernetes v1.14 上删除 cluster-admin ClusterRoleBinding 是否安全?
【发布时间】:2020-07-23 14:36:22
【问题描述】:

我有一个使用 kubeadm 部署的 Kubernetes v1.14 本地集群,但我的 kubernetes-admin 用户登录名已被盗用。

我想撤销其证书,但 Kubernetes API 服务器没有查找 CRL 文件的机制。我已经使用新的 ClusterRoleBinding 创建了另一个管理员用户。我看到的唯一解决方案是通过删除用户的关联 ClusterRoleBinding: cluster-admin 来取消对用户的授权。

但是,这个 ClusterRoleBinding 的 Subject 是“system:masters”组。 即使我找不到属于“system:masters”组的任何其他系统用户,但我担心如果我删除它会破坏一些东西。我对这种情况没有任何经验。

我在 Google 上搜索了很多,但找不到关于开源 Kubernetes 的这个主题的相关信息。

删除“cluster-admin”ClusterRoleBinding 是否安全?

% openssl x509 -noout  -subject -in  <(kubectl config view --raw  -o jsonpath='{.users[?(@.name == "kubernetes-admin")].user.client-certificate-data}'  | base64 -d)
subject= /O=system:masters/CN=kubernetes-admin
% 

% kubectl describe clusterrolebindings.rbac.authorization.k8s.io cluster-admin 
Name:         cluster-admin
Labels:       kubernetes.io/bootstrapping=rbac-defaults
Annotations:  rbac.authorization.kubernetes.io/autoupdate: true
Role:
  Kind:  ClusterRole
  Name:  cluster-admin
Subjects:
  Kind   Name            Namespace
  ----   ----            ---------
  Group  system:masters  
% 

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    删除是不安全的,因为 system:masters 在 Kubernetes API Server 用于与 ETCD 和 kubelet 交互的客户端证书中用作 Subject

    为了处理违规行为,我建议采用以下方法

    1. 备份 ETCD
    2. 重新生成所有证书
    3. 使用新生成的证书重新启动所有控制平面组件
    4. 如果有任何问题,请使用 ETCD 备份进行恢复。

    【讨论】:

      猜你喜欢
      • 2019-06-09
      • 2021-05-17
      • 1970-01-01
      • 2022-10-25
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      • 2010-10-30
      相关资源
      最近更新 更多