kubernetes - 使用 kubectl 的用户访问

标签 kubernetes

我想将多个帐户设置为只能访问拥有的命名空间,我们尝试使用授权模式 ABAC 但在使用 kubectl 时出现“错误:无法从服务器读取版本:服务器不允许访问所请求的资源”,这似乎是一个错误。他们还有其他方法吗?

最佳答案

在尝试访问您的资源之前,kubectl 首先向服务器的 /version/api 端点发出请求,以确认兼容性并协商 API 版本。在 ABAC 中,/version/api 端点被视为“nonResourcePaths”,但它们也需要授权。您可以向 ABAC 文件添加一条规则,允许所有用户以只读方式访问非资源路径,如下所示:

{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user":"*", "nonResourcePath": "*", "readonly": true}}

从那里,如果需要,您可以对其进行更严格的限制。

关于kubernetes - 使用 kubectl 的用户访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35072014/

相关文章:

apache-spark - 根据数据作业的大小启动 kubernetes pod 内存

docker - 访问 Kubernetes 中 pod 的其他容器

java - k8s集群中的通信

php - Laravel Horizo​​n 不执行挂起的作业 - Kubernetes 和 Docker 环境

openshift - 删除部署/复制 Controller openshift cli

Docker 构建失败 - 使用 GKE 的 Gitlab CI。无法通过 tcp ://localhost:2375. 连接到 Docker 守护程序 docker 守护程序是否正在运行?

Kubernetes Helm 卡在更新中

ssl - Kubernetes CSR 处于待处理状态

kubernetes - 这是在维护期间从集群中获取小兵的正确方法吗?

nginx - minikube + nginx + volumeMount不起作用