如何提供对服务帐户的访问权限以读取多个名称空间中的Pod?

时间:2019-03-19 01:42:44

标签: kubernetes kubectl rbac

我正在Kubernetes中浏览RBAC。在我看来

  • 可以将ServiceAccount绑定到名称空间中的角色 (或)
  • ServiceAccount可以绑定到ClusterRole并具有群集范围的访问权限(所有名称空间?)

单个服务帐户(或用户)是否可能没有群集范围的访问权限,而仅在一部分名称空间中具有只读访问权限?如果是这样,有人可以详细说明如何实现这一目标。谢谢!

1 个答案:

答案 0 :(得分:1)

您需要为ServiceAccount应该有权访问的每个命名空间中的每个命名空间创建一个RoleBinding。

有一个示例,赋予默认的ServiceAccount权限以读取development名称空间中的pod。

kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: read-secrets
  namespace: development # This only grants permissions within the "development" namespace.
subjects:
- kind: ServiceAccount
  name: default
  namespace: kube-system
roleRef:
  kind: Role
  name: pod-reader 
  apiGroup: rbac.authorization.k8s.io