You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EKS中编辑默认view ClusterRole的修改未持久化如何解决?

EKS默认view ClusterRole修改后自动消失的解决方案

问题原因

默认view ClusterRole有两个特性导致手动修改被自动覆盖:

  1. 元数据携带rbac.authorization.kubernetes.io/autoupdate: "true"注解和kubernetes.io/bootstrapping: rbac-defaults标签,EKS的控制面组件会定期重置这些内置默认RBAC角色的配置,手动修改的规则会被清空。
  2. 该角色使用了Kubernetes RBAC的聚合规则(aggregationRule字段),本身的权限规则是自动聚合所有带rbac.authorization.k8s.io/aggregate-to-view: "true"标签的ClusterRole的规则,不需要直接修改它本身的rules字段。

正确添加自定义权限的步骤

1. 创建独立的聚合用ClusterRole

新建YAML文件(比如argocd-view-aggregate.yaml),内容如下:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: argocd-view-aggregate
  labels:
    # 该标签会让当前ClusterRole的规则自动聚合到默认view角色中
    rbac.authorization.k8s.io/aggregate-to-view: "true"
    # 如需同时让edit、admin角色也继承该权限,可添加对应标签,不需要则删除
    # rbac.authorization.k8s.io/aggregate-to-edit: "true"
    # rbac.authorization.k8s.io/aggregate-to-admin: "true"
rules:
- apiGroups:
  - argoproj.io
  resources:
  - applications # 注意:Argo CD的Application资源是复数形式,单数配置不会生效
  verbs:
  - get
  - list
  - watch

2. 应用配置

执行命令创建资源:
kubectl apply -f argocd-view-aggregate.yaml

3. 验证配置生效

执行命令查看view角色的权限,确认argoproj.io相关规则已经被自动聚合进去:
kubectl describe clusterrole view

注意事项

  • 不要直接修改EKS内置的默认RBAC角色,即使临时修改了autoupdate注解,在EKS版本升级时仍可能被覆盖,聚合规则是Kubernetes官方推荐的扩展默认角色的标准方案。
  • 资源名称要核对正确,避免拼写错误导致权限不生效。

内容的提问来源于stack exchange,提问作者DmitrySemenov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 17:24:04