我有一个带有多个名称空间的google kubernetes引擎集群。这些名称空间中的每一个上都部署了不同的应用程序。是否可以只授予用户对单个名称空间的完全访问权限?
答案 0 :(得分:1)
是的,Kubernetes具有与Cloud IAM集成的内置RBAC系统,因此您可以控制GCP用户对单个群集和名称空间的访问。
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"]
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
参考
答案 1 :(得分:0)
您可以在所选名称空间中使用Rolebinding将用户绑定到cluster-admin角色。如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