我正在使用Google Cloud的GKE进行kubernetes操作。
我试图将访问权限限制为使用命令行访问群集的用户。我已经在Google云中应用了IAM角色,并将视图角色赋予了服务帐户和用户。如果我们在kubectl命令中通过api或“ --as”使用它,则一切正常,但是当有人尝试做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
我希望通过CLI访问群集的用户即使没有权限也不能创建对象,即使他们不使用“ --as”标志也应加以限制。
答案 0 :(得分:0)
请注意,首先您需要查看使用RBAC in GKE
的先决条件此外,请注意,IAM角色适用于整个Google Cloud项目以及该项目中的所有集群,并且RBAC可以在名称空间级别启用精细的授权。因此,使用GKE,这些授权方法可以并行工作。
有关更多参考,请查看此文档RBAC in GKE
答案 1 :(得分:0)
对于所有讨厌这个问题的人,我希望您可以尝试指出这一点:
在以下位置有一个文件
〜/ .config / gcloud / configurations / config_default
在此[容器]部分下有一个选项: use_application_default_credentials
设置为真
在这里,您学到了一些新东西。希望您可以尝试提供帮助,而不是拒绝投票。