在google云平台上限制对kubernetes群集的访问

在google云平台上限制对kubernetes群集的访问,kubernetes,google-cloud-platform,rbac,google-kubernetes-engine,kubernetes-security,Kubernetes,Google Cloud Platform,Rbac,Google Kubernetes Engine,Kubernetes Security,我们在谷歌云平台上创建了两个不同的Kubernetes集群,一个用于开发,另一个用于生产。 我们的团队成员具有“编辑”角色(因此他们可以创建、更新、删除和列出POD) 我们希望通过使用Kubernetes提供的RBAC授权来限制对生产集群的访问。我创建了一个ClusterRole和一个ClusterBindingRole,如下所示: kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name:

我们在谷歌云平台上创建了两个不同的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扩展它


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

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

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

因为您可能成功地使用IAM和RBAC阻止了群集访问,但是接下来您需要处理对网络组件、负载平衡器、防火墙和计算引擎ecc的访问安全问题

也许一开始这是一个很大的工作,但从长远来看,这将为你节省很多问题

这是关于如何设置两个集群(其中一个正在生产中)的官方谷歌云文档的第一部分