首页 文章

限制访问Google Cloud 平台上的kubernetes群集

提问于
浏览
2

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

我们希望使用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扩展它 .

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

1 回答

  • 2

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

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

    因为您可能成功使用IAM和RBAC阻止群集访问,但是您需要处理保护对计算引擎ecc的网络组件,LoadBalacers,防火墙的访问权限的问题 .

    也许在一开始它是很多工作,但从长远来看它会为你节省很多问题 .

    这是关于如何设置两个正在 生产环境 的群集的官方Google Cloud 端文档的link .

相关问题