首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Kubernetes授权模式的kubectl

使用Kubernetes授权模式的kubectl
EN

Stack Overflow用户
提问于 2015-11-18 21:10:24
回答 1查看 1.8K关注 0票数 2

我在Ubuntu上发送了一个运行Kubernetes的4节点集群(1主3工作人员)。我打开了--授权模式=ABAC,并设置了一个包含如下条目的策略文件

{“用户”:“bob”,“只读”:true,“命名空间”:"projectgino"}

我希望用户bob只能查看projectgino中的资源。我在使用kubectl命令行作为用户Bob时遇到了问题。当我运行以下命令时

kubectl获取pods --token=xxx --命名空间=projectgino-server=https://xxx.xxx.xxx.xx:6443

我得到以下错误

错误:无法从服务器读取版本:服务器不允许访问请求的资源

我跟踪了kubectl命令行代码,这个问题似乎是由kubectl在pkg/client/helper.go中调用函数NegotiateVersion引起的。这将调用服务器上的/api以获得Kubernetes的版本。此调用失败,因为rest路径不包含命名空间projectgino。我向pkg/auth/authorizer/abac/abac.go添加了跟踪代码,它在名称空间检查中失败了。

我还没有升级最新的1.1.1版本的Kubernetes,但是在查看代码时,我没有看到在这方面发生了任何变化。

有人知道如何配置Kubernetes来解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-18 23:03:33

这是ABAC授权人中缺少的功能。修复工作正在进行:#16148

至于解决办法,来自授权文档

对于其他端点,如/version,资源是空字符串。

因此,您可以通过定义策略来解决问题:

{“用户”:“bob”,“只读”:true,"resource":""}

(请注意用于资源的空字符串)以授予对不版本化端点的访问权限。如果这不起作用,我不认为有一个干净的解决办法可以让您使用kubectl和-授权模式=ABAC。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33790438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档