【发布时间】:2019-10-22 19:47:29
【问题描述】:
我正在尝试使用相同的令牌在 Kubernetes 中创建一个服务帐户,并且只允许他们访问三个命名空间。这在 Kubernetes 中可行吗?
我做了什么:
我创建了我的服务帐户:
kubectl create serviceaccount myuser
我创建一个角色:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
kubernetes.io/bootstrapping: rbac-defaults
name: myrole
rules:
- apiGroups:
- ""
resources:
- pods/attach
- pods/exec
- pods/portforward
- pods/proxy
- secrets
- services/proxy
verbs:
- get
- list
- watch
我创建了一个 ClusterRoleBinding
kind: ClusterRoleBinding
metadata:
labels:
name: myRoleBinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: myrole
subjects:
- kind: ServiceAccount
name: myuser
namespace: wordpress
- kind: ServiceAccount
name: myuser
namespace: mysql
- kind: ServiceAccount
name: myuser
namespace: redis
我试图在命名空间 wordpress 中获取 secrets,但得到了这个:
Error from server (Forbidden): pods is forbidden: User
"system:serviceaccount:default:myuser" cannot list resource "secrets" in API group
"" in the namespace "wordpress"
希望有人可以在这里提供帮助。
【问题讨论】:
-
您正在使用
default命名空间中的服务帐户,这不是您分配角色的帐户之一。
标签: kubernetes