如何在Azure Kubernetes集群中启用服务帐户权限(已启用RBAC)?

时间:2019-02-10 14:57:24

标签: azure kubernetes rbac service-accounts

我创建了一个启用了RBAC的Azure Kubernetes群集。

因此,我的想法是,如果任何Pod想要访问群集中的任何资源,则应将其与服务帐户关联,并且服务帐户应分配有特定的角色来访问资源。

但是在我的情况下,我能够访问与未分配任何角色的服务帐户相关联的pod中的列表pod,list名称空间之类的资源。

请帮助我了解我对RBAC的理解是否错误,或者我在这里做错了!!

1 个答案:

答案 0 :(得分:1)

您的理解是正确的,我不确定授予默认服务帐户的权限,但是如果您创建自己的角色并将其分配给服务帐户,则可以控制权限。样本:

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
  name: myserviceaccount
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: orleans-cluster
  namespace: mynamespace
subjects:
- kind: ServiceAccount
  name: myserviceaccount
  namespace: mynamespace

---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: orleans-cluster
rules:
- apiGroups:
  - orleans.dot.net
  resources:
  - clusterversions
  - silos
  verbs:
  - '*'

---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: myserviceccount
  namespace: mynamespace

如果将myserviceaccount分配给Pod,它将仅允许Pod执行角色中定义的任何操作。因此,您需要创建一个角色和一个服务帐户,并对服务帐户使用角色绑定(或为群集范围的权限使用clusterrolebinding)。