【发布时间】:2019-07-25 03:52:13
【问题描述】:
我正在使用 G 我想创建一个只能访问特定命名空间的自定义用户,我使用了这个 yaml:
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: develop-user
namespace: develop
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: develop-user-full-access
namespace: develop
rules:
- apiGroups: rbac.authorization.k8s.io
resources:
- services
verbs: ["get"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: develop-user-view
namespace: develop
subjects:
- kind: ServiceAccount
name: develop-user
namespace: develop
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: develop-user-full-access
所以在我将上下文切换到这个新服务帐户并发现我仍然可以访问所有内容之后,我获得了一个证书并添加到我的 kube 配置中:(
为什么会发生这种情况以及如何解决?
我的 kubeconfig(pastebin 副本:https://pastebin.com/s5Nd6Dnn):
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: %certificate-data%
server: https://animeheaven.nyah
name: anime-cluster-develop
contexts:
- context:
cluster: anime-cluster-develop
namespace: develop
user: develop-user
name: anime-develop
current-context: anime-develop
kind: Config
preferences: {}
users:
- name: develop-user
user:
client-key-data: %certdata%
token: %tokenkey%
【问题讨论】:
-
你想给这个
develop-user一个命名空间的所有权限吗?或者,一些特定的权限? -
@MarufTuhin 嘿,好问题,基于我提供的配置,我想让开发人员访问仅访问
develop命名空间并只能在其中运行get命令
标签: kubernetes google-kubernetes-engine rbac