首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kubernetes限制对仪表板的访问

kubernetes限制对仪表板的访问
EN

Stack Overflow用户
提问于 2020-08-10 19:29:52
回答 1查看 100关注 0票数 0

我想要创建一个只具有受限访问权限的服务帐户。

比方说,我叫namespace devops

我希望创建一个只访问devops并执行我在下面角色中设置的操作的service account

代码语言:javascript
复制
 kubectl create clusterrole devops-dash-role --verb=get,list --resource=pods --namespace=devops

在那里,我只希望服务帐户只能访问该资源上的名称空间。

这是我的service account

代码语言:javascript
复制
kubectl create serviceaccount devops-dash-sa -namespace devops

在这里,我如何捆绑他们

代码语言:javascript
复制
kubectl create clusterrolebinding devops-dash-rb --clusterrole=devops-dash-role --serviceaccount=devops:devops-dash-sa

下面是我如何得到记号的方法。

代码语言:javascript
复制
kubectl describe secret devops-dash-sa-token-spnpm -n devops

然后在那里提取标记。

但是一旦登录到仪表板,它就什么都没有了。此外,它默认为default命名空间。

而且,我能够用自己的kubeconfig文件创建自己的用户(因为它有限制),但是根据我的研究,用户也需要一个令牌,所以我最终创建了服务帐户。

更新:尝试以下命令

代码语言:javascript
复制
kubectl create role devops-admin-role --verb="*" --resource="*" --namespace=devops
kubectl create serviceaccount devops-admin-sa --namespace devops
kubectl create rolebinding devops-admin-role-sa-rb --clusterrole=devops-admin-role --serviceaccount=devops:devops-admin-sa

但是当尝试执行这个kubectl --as system:serviceaccount:devops:devops-admin-sa get po -n devops

这给了我一个错误:Error from server (Forbidden): pods is forbidden: User "system:serviceaccount:devops:devops-admin-sa" cannot list resource "pods" in API group "" in the namespace "devops"

EN

回答 1

Stack Overflow用户

发布于 2020-08-11 12:39:20

角色:

代码语言:javascript
复制
kubectl create role devops-dash-role --verb=get,list --resource=pods --namespace=devops

服务帐户

代码语言:javascript
复制
kubectl create serviceaccount devops-dash-sa --namespace devops

角色约束:

代码语言:javascript
复制
kubectl create rolebinding devops-dash-rb --clusterrole=devops-dash-role --serviceaccount=devops:devops-dash-sa --namespace devops

这就是你所需要的。

您还可以使用:

代码语言:javascript
复制
--verb="*" --resource="*"

为了提供对所有资源的访问,并且由于角色和角色绑定是命名空间的,这些权限将只在它们存在的名称空间中被授予。

现在让我们尝试一下:

代码语言:javascript
复制
# default namespace
$ kubectl --as system:serviceaccount:devops:devops-dash-sa  get po
Error from server (Forbidden): pods is forbidden: User "system:serviceaccount:devops:devops-dash-sa" cannot list resource "pods" in API group "" in the namespace "default"

# devops namespace
$ k --as system:serviceaccount:devops:devops-dash-sa  get po -n devops
No resources found in devops namespace

当您在仪表板中使用它时,它的工作原理应该是一样的。

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

https://stackoverflow.com/questions/63346799

复制
相关文章

相似问题

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