我想将多个帐户设置为只能访问所拥有的命名空间,我们尝试使用授权模式ABAC,但是当使用kubectl时我们得到“错误:无法从服务器读取版本:服务器不允许访问所请求的ressource“,这似乎是一个错误。这是另一种方式吗?
答案 0 :(得分:3)
在尝试访问您的资源之前,kubectl首先向服务器的/version
和/api
端点发出请求以确认兼容性并协商API版本。在ABAC中,/version
和/api
端点被视为“nonResourcePaths”,但这些端点也需要授权。您可以向ABAC文件添加规则,允许所有用户只读访问nonResourcePaths,如下所示:
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user":"*", "nonResourcePath": "*", "readonly": true}}
从那里,如果需要,你可以限制它。