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

阿里云集群获取namespace等资源数据报403权限错误求助

问题解决步骤

你遇到的403报错是Kubernetes RBAC(基于角色的访问控制)权限限制导致的,当前使用的操作账号(API调用对应的281247226166595041、kubectl对应的225396037912844073)没有集群级别的namespace资源列表访问权限。阿里云ACK集群默认仅给集群创建者分配cluster-admin超级权限,其他RAM用户/子账号默认无任何集群操作权限。

  • 步骤1:确认需要授权的账号标识,即报错信息里的用户ID,也可以提前在阿里云RAM控制台确认要授权的账号对应的UID
  • 步骤2:使用集群创建者账号(或拥有cluster-admin权限的账号)执行授权操作,两种操作方式二选一:
    • 方式一:控制台操作
      登录阿里云容器服务ACK控制台,进入目标集群的「权限管理」-「授权」页面,添加需要授权的RAM账号,按需分配集群级别的只读权限(包含namespace列表查询权限)即可。
    • 方式二:kubectl命令行操作
      编写RBAC授权YAML文件auth.yaml,内容如下:
      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRoleBinding
      metadata:
        name: custom-namespace-view-binding
      subjects:
      # 可同时添加多个需要授权的用户
      - kind: User
        name: "281247226166595041" # 替换为调用API的用户ID
        apiGroup: rbac.authorization.k8s.io
      - kind: User
        name: "225396037912844073" # 替换为kubectl使用的用户ID
        apiGroup: rbac.authorization.k8s.io
      roleRef:
        kind: ClusterRole
        name: view # 系统内置只读ClusterRole,默认包含namespaces list权限
        apiGroup: rbac.authorization.k8s.io
      
      执行命令应用配置:
      kubectl apply -f auth.yaml
      
  • 步骤3:验证权限
    先执行kubectl get namespace确认无报错,再运行Golang项目调用API验证数据是否可以正常获取。

注意:如果不需要访问全集群所有命名空间,可将ClusterRoleBinding改为对应命名空间下的RoleBinding,仅授权该命名空间的访问权限,权限粒度更安全。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:54:07