【发布时间】:2019-06-09 03:27:40
【问题描述】:
我正在使用 Google Cloud 的 GKE 进行我的 kubernetes 操作。
我正在尝试限制对使用命令行访问集群的用户的访问。我已经在 Google 云中应用了 IAM 角色,并为服务帐户和用户提供了查看角色。如果我们通过 api 或 kubectl 命令中的“--as”使用它,一切正常,但是当有人尝试创建一个对象而不指定“--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”标志,他们也应该受到限制。
【问题讨论】:
标签: kubernetes rbac google-kubernetes-engine