kubernetes RBAC DENY 不阻止访问

标签 kubernetes

我正在运行 gke 1.8.4 集群,并且发现访问资源的请求被允许的问题,即使 RBAC 拒绝它们

来自logs/kube-apiserver.log(我已经替换了我的用户名和我模拟的用户名,以<斜体>表示):

I1218 13:30:38.644205 5 httplog.go:64] &{<my_user> [system:authenticated] map[]} is acting as &{<other_user> [system:authenticated] map[]}

I1218 13:30:38.644297 5 rbac.go:116] RBAC DENY: user "<other_user>" groups ["system:authenticated"] cannot "list" resource "secrets" in namespace "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(并最终返回 secret 以响应我的 kubectl cmd)?

fwiw 我的 kubectl cmd 是:kubectl get secrets --namespace prod --as <other_user>

我怀疑有另一个授权者允许它,尽管我已尽我所知确保没有(ABAC 应该被禁用,因为我在 1.8 上,谷歌云控制台显示它已被禁用,我在 gcloud beta 容器集群描述的响应中看到“legacyAbac: {}”)

最佳答案

GKE 同时启用 RBAC 授权方和咨询 GKE IAM 的 Webhook 授权方。指定的用户名是否具有 GKE 的权限?

关于kubernetes RBAC DENY 不阻止访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47870211/

相关文章:

docker - 运行 kubernetes autoscaler

kubernetes - 使用 Ansible 创建 kubeadm token

Kubernetes 端口转发 - 连接被拒绝

kubernetes - Kubernetes Pod内部通信

kubernetes - 如何在主容器中加载环境变量

docker - 如何在GKE Pod中设置时区

kubernetes - kustomize 编辑集图像不适用于 kustomize multibases 和 common base

kubernetes - GKE 与 gcloud sql postgres : the sidecar proxy setup does not work

运行 "az aks get-credentials"命令时 Azure Kubernetes 错误

kubernetes - 如何仅将特定服务映射到ALB中的特定监听器端口(k8s入口)