2

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

我们希望使用 Kubernetes 提供的 RBAC 授权来限制对生产集群的访问。我创建了 aClusterRole和 a 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 扩展它。

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

4

1 回答 1

3

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

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

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

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

这是有关如何设置两个集群的官方 Google Cloud 文档的链接,其中一个集群正在生产中。

于 2018-01-17T11:20:20.573 回答