如何在gke中为用户授予名称空间访问权限?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在gke中为用户授予名称空间访问权限?相关的知识,希望对你有一定的参考价值。

我有一个带有多个名称空间的google kubernetes引擎集群。这些名称空间中的每一个上都部署了不同的应用程序。是否可以仅授予用户对单个名称空间的完全访问权限?

答案

是的,Kubernetes具有与Cloud IAM集成的内置RBAC系统,因此您可以控制GCP用户对单个群集和名称空间的访问。

  1. 创建Role
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: YOUR_NAMESPACE
  name: ROLE_NAME
rules:
- apiGroups: [""] # "" indicates the core API group
  resources: ["pods"]
  verbs: ["get", "watch", "list"]
  1. 创建RoleBinding
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: ROLE_NAME-binding
  namespace: YOUR_NAMESPACE
subjects:
# GCP user account
- kind: User
  name: janedoe@example.com

参考

另一答案

您可以在所选名称空间中使用Rolebinding将用户绑定到集群管理员角色。如documentation中所指定,cluster-admin:

允许超级用户访问权对任何资源执行任何操作。什么时候用于ClusterRoleBinding中,它可以完全控制每个群集和所有命名空间中的资源。当用于RoleBinding,它可以完全控制角色绑定的名称空间,包括名称空间本身。

例如:

kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: example
  namespace: yournamespace
subjects:
- kind: User
  name: example-user
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io

以上是关于如何在gke中为用户授予名称空间访问权限?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中为 IIS 用户授予文件夹权限?

在Amazon Redshift中为所有模式授予用户或组的权限

如何在oracle中为特定用户查询没有所有者名称的表名

如何使用 Appsync 在 cognito 中授予对某些用户组的访问权限

如何测试是不是从包含应用程序授予“允许完全访问”权限?

如何授予用户级别访问私有 GitLab 存储库的权限?