首页 > 解决方案 > 服务帐号 - 通过 API 访问

问题描述

我创建了一个命名空间xxx;此命名空间的角色是获取 pod、服务等。我创建了一个服务帐户yyy和一个角色绑定yyy到命名空间中的角色xxx

例如,当我尝试使用秘密令牌通过 API 检查某些内容时

curl -kD - -H "Authorization: Bearer $TOKEN https://localhost:6443/api/v1/namespaces/xxx/pods

我收到“403 禁止”错误。

因此,我将我的服务帐户的集群角色绑定yyy到集群角色view,之后用户当然可以看到我的命名空间的 pod,但也可以看到来自其他命名空间的其他 pod。

如何限制服务帐户yyy只能从特定命名空间查看 pod、服务等?

标签: apikubernetestokenrole

解决方案


要仅允许在特定命名空间中访问,请创建角色绑定,而不是集群角色绑定:

kubectl create rolebinding my-viewer --clusterrole=view --serviceaccount=xxx:yyy -n xxx


推荐阅读