【问题标题】:How to restrict default Service account from creating/deleting kubernetes resources如何限制默认服务帐户创建/删除 kubernetes 资源
【发布时间】: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


    【解决方案1】:

    请注意,您首先需要查看使用RBAC in GKE的先决条件

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

    如需更多参考,请查看此文档RBAC in GKE

    【讨论】:

    • 嗯,不管你说什么都是非常基本的,我想这里的每个人都知道。无论如何,感谢您的尝试。
    【解决方案2】:

    对于所有讨厌这个问题的人,我希望你能尝试指出这一点:

    有一个文件在:

    ~/.config/gcloud/configurations/config_default

    在 [container] 部分下有一个选项: 使用_application_default_credentials

    设置为真

    给你,你学到了一些新的东西......享受。希望您可以尝试提供帮助而不是投反对票。

    【讨论】:

      猜你喜欢
      • 2020-11-03
      • 2019-02-18
      • 2019-03-30
      • 2021-10-25
      • 2015-11-14
      • 1970-01-01
      • 2020-11-05
      • 1970-01-01
      • 2021-12-17
      相关资源
      最近更新 更多