在google云平台上限制对kubernetes群集的访问
我们在谷歌云平台上创建了两个不同的Kubernetes集群,一个用于开发,另一个用于生产。 我们的团队成员具有“编辑”角色(因此他们可以创建、更新、删除和列出POD) 我们希望通过使用Kubernetes提供的RBAC授权来限制对生产集群的访问。我创建了一个在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:
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的访问安全问题 也许一开始这是一个很大的工作,但从长远来看,这将为你节省很多问题 这是关于如何设置两个集群(其中一个正在生产中)的官方谷歌云文档的第一部分