我正在运行一个gke 1.8.4群集,并且看到允许访问资源的请求存在问题,即使RBAC拒绝这些请求
来自logs / kube-apiserver.log的(我已经用< italics >替换了我的用户名和我冒充的用户名):
I1218 13:30:38.644205 5 httplog.go:64]& {< my_user > [system:authenticated] map []}充当& {< other_user > [system:authenticated] map []}
I1218 13:30:38.644297 5 rbac.go:116] RBAC DENY:用户“< other_user >” groups [“system:authenticated”]不能在命名空间“prod”中列出资源“秘密”
I1218 13:30:38.676079 5 wrap.go:42] GET / api / v1 / namespaces / prod / secrets:(32.043196ms)200 [[kubectl / v1.8.4(linux / amd64)kubernetes / 9befc2b]
为什么api在RBAC DENY之后进入GET(并最终返回秘密以回应我的kubectl cmd)?
fwiw我的kubectl cmd是:kubectl get secrets --namespace prod --as <other_user>
我怀疑有另一个授权者允许它,虽然我已经做了我知道的所有事情以确保没有(ABAC应该被禁用,因为我在1.8,谷歌云控制台显示它被禁用,而且我在 gcloud beta容器集群的响应中看到“legacyAbac:{}”描述)
答案 0 :(得分:2)
GKE启用RBAC授权程序和咨询GKE IAM的webhook授权程序。指定的用户名是否具有通过GKE的权限?