我想将多个帐户设置为只能访问拥有的命名空间,我们尝试使用授权模式 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/