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

AWS EKS中ServiceAccount调用API访问Namespaces报403 Forbidden如何解决

问题根因

你遇到的403报错是Kubernetes RBAC权限控制的标准拦截结果:默认创建的ServiceAccount没有任何额外权限,自然无法访问集群级别的namespaces资源,该问题和AWS EKS环境本身无关,EKS的RBAC逻辑完全兼容标准Kubernetes规则。
你不需要将ServiceAccount加入用户组,直接为其绑定对应权限的角色即可解决问题。


方案说明

你后续补充的配置逻辑完全正确,可以解决访问权限问题,这里补充几点注意事项:

  1. 权限风险提示
    你当前绑定的cluster-admin是集群最高权限角色,拥有所有资源的读写权限。如果你的使用场景仅为ServiceNow集群资源发现,建议自定义仅包含必要读权限的ClusterRole进行绑定,遵循最小权限原则降低安全风险。
  2. 配置内容说明
    你提交的YAML配置完成了两项操作:
apiVersion: v1
kind: ServiceAccount
metadata:
  name: svcacc
  namespace: default
---
# Create ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: svcacc
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: svcacc
  namespace: default
  • 第一部分:在default命名空间下创建了名为svcacc的ServiceAccount
  • 第二部分:通过ClusterRoleBinding将cluster-admin集群角色和该ServiceAccount绑定,完成权限授予
  1. Token获取命令适配
    你使用的token提取命令:
$(kubectl describe secrets "$(kubectl describe serviceaccount svcacc -n default| grep -i Tokens | awk '{print $2}')" -n default | grep token: | awk '{print $2}')

仅适用于Kubernetes 1.23及更早版本(1.24版本之后默认关闭了ServiceAccount自动创建Secret类型token的特性)。如果你使用的是更高版本集群,可以直接用以下命令生成有效token:

kubectl create token svcacc -n default

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 09:24:03