【问题标题】:Limit access to a a kubernetes cluster on google cloud platform限制对谷歌云平台上的 Kubernetes 集群的访问
【发布时间】:2018-06-22 23:22:06
【问题描述】:

我们在 Google Cloud Platform 上创建了 2 个不同的 Kubernetes 集群,一个用于开发,另一个用于生产。 我们的团队成员拥有“编辑”角色(因此他们可以创建、更新删除和列出 pod)

我们希望使用 Kubernetes 提供的 RBAC 授权来限制对生产集群的访问。我创建了一个ClusterRole 和一个ClusterBindingRole,如下:

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: prod-all
rules:
- apiGroups: ["*"]
  resources: ["*"]
  verbs: ["*"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: access-prod-all
subjects:
- kind: User
  name: xxx@xxx.com
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: prod-all
  apiGroup: rbac.authorization.k8s.io

但用户已经拥有“编辑”角色(对所有集群的完全访问权限)。所以我不知道我们是否应该分配一个简单的“查看者”角色而不是使用 kubernetes RBAC 扩展它。

我还想知道是否有办法对某些用户完全隐藏生产集群。 (我们的集群在同一个项目中)

【问题讨论】:

    标签: kubernetes google-cloud-platform rbac google-kubernetes-engine kubernetes-security


    【解决方案1】:

    如果您处于初始阶段,或者您可以设法移动测试集群,我建议您在两个不同的项目中设置集群。

    这将创建两个完全不同的环境,您将来不会有任何问题,并且您会自动禁止访问一半资源,您不必担心配置错误并且您的生产仍在可达。当您需要授予某些东西时,您只需将该人添加到具有相应角色的项目中

    因为也许您使用 IAM 和 RBAC 成功阻止了集群访问,但随后您需要处理对网络组件、LoadBalacers、防火墙和 Compute Engine ecc 的访问的安全性

    也许一开始会做很多工作,但从长远来看,它会为您节省很多问题。

    这是 Google Cloud 官方文档的link,其中介绍了如何设置两个集群,其中一个已投入生产。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-18
      • 2018-05-01
      • 2016-08-23
      • 1970-01-01
      • 2018-01-04
      • 1970-01-01
      相关资源
      最近更新 更多