如何限制默认服务帐户创建/删除kubernetes资源

如何限制默认服务帐户创建/删除kubernetes资源,kubernetes,rbac,google-kubernetes-engine,Kubernetes,Rbac,Google Kubernetes Engine,我正在使用谷歌云的GKE进行kubernetes操作 我试图限制使用命令行访问集群的用户的访问权限。我已经在Google cloud中应用了IAM角色,并为服务帐户和用户提供了查看角色。如果我们通过api或--as“在kubectl命令中使用它,那么一切都可以正常工作,但是当有人试图执行kubectl创建对象而没有指定--as“时,仍然使用该特定名称空间的“默认”服务帐户创建对象 为了克服这个问题,我们限制了对“默认”服务帐户的访问,但我们仍然能够创建对象 $ kubectl auth can-

我正在使用谷歌云的GKE进行kubernetes操作

我试图限制使用命令行访问集群的用户的访问权限。我已经在Google cloud中应用了IAM角色,并为服务帐户和用户提供了查看角色。如果我们通过api或--as“在kubectl命令中使用它,那么一切都可以正常工作,但是当有人试图执行kubectl创建对象而没有指定--as“时,仍然使用该特定名称空间的“默认”服务帐户创建对象

为了克服这个问题,我们限制了对“默认”服务帐户的访问,但我们仍然能够创建对象

$ kubectl auth can-i create deploy --as default -n test-rbac
no

$ kubectl run nginx-test-24 -n test-rbac --image=nginx
deployment.apps "nginx-test-24" created

$ kubectl describe  rolebinding default-view -n test-rbac
Name:         default-view
Labels:       <none>
 Annotations:  <none>
Role:
  Kind:  ClusterRole
  Name:  view
Subjects:
  Kind            Name     Namespace
  ----            ----     ---------
  ServiceAccount  default  test-rbac
$kubectl auth can-i创建部署--默认为-n测试rbac
不
$kubectl运行nginx-test-24-n测试rbac--image=nginx
已创建deployment.apps“nginx-test-24”
$kubectl描述角色绑定默认视图-n测试rbac
名称:默认视图
标签:
注释:
角色:
种类:ClusterRole
名称:视图
学科:
类名称命名空间
----            ----     ---------
ServiceAccount默认测试rbac

我希望通过CLI访问群集的用户如果没有权限,也不能创建对象,即使他们不使用“--as”标志,他们也应该受到限制。

请考虑,首先您需要查看要使用的先决条件

另外,请注意,角色适用于整个Google Cloud项目以及该项目中的所有集群,RBAC在名称空间级别支持细粒度授权。因此,使用GKE,这些授权方法可以并行工作


如需更多参考资料,请查看此文档

对于所有反对此问题的人,我希望您能尝试指出以下内容:

有一个文件位于:

~/.config/gcloud/configurations/config\u默认值

在[container]部分下有一个选项: 使用\u应用程序\u默认\u凭据

设置为真


给你,你学到了一些新东西。。享受。但愿你能试着帮忙,而不是投反对票。

好吧,你说的都很基本,我想这里的每个人都知道。无论如何,谢谢你的努力。