Система Kubernetes: serviceaccount: доступ запрещен по умолчанию

Так что кто-нибудь точно знает, что мне нужно поместить в мой ServiceAccount yaml, чтобы мне не было отказано в доступе к моему ServiceAccount, когда я пытаюсь перечислить вещи через REST API: curl https: // $ KUBERNETES_SERVICE_HOST: $ KUBERNETES_PORT_443_TCP_PORT / api / v1 / пространства имен / default / persistentvolumeclaims -X GET -k -H "Авторизация: Bearer $ (cat /var/run/secrets/kubernetes.io/serviceaccount/token)" Пользовательская "система: serviceaccount: default: my-service-service-account "не может перечислить постоянные требования к объему в пространстве имен" default ".

My RBAC serviceAccount настроен в YAML следующим образом:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: {{ .Values.service.name }}-service-account
  labels:
    app: {{ .Values.service.name }}
automountServiceAccountToken: true
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  namespace: default
  name: {{ .Values.service.name }}-role
  labels:
    app: {{ .Values.service.name }}
rules:
- apiGroups: [""] # "" indicates the core API group
  resources: ["pods"]
  verbs: ["get", "watch", "list","delete"]
- apiGroups: [""] # "" indicates the core API group
  resources: ["persistentvolumeclaims"]
  verbs: ["get", "watch", "list","delete"]
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
  name: {{ .Values.service.name }}-role-binding
  labels:
    app: {{ .Values.service.name }}
subjects:
  - kind: ServiceAccount
    # Reference to upper's `metadata.name`
    name: {{ .Values.service.name }}-service-account
    # Reference to upper's `metadata.namespace`
    namespace: default
roleRef:
  kind: Role
  name: {{ .Values.service.name }}-role
  apiGroup: rbac.authorization.k8s.io

person zach    schedule 19.08.2017    source источник
comment
Просмотрите тур о том, как задать хороший вопрос. Затем вернитесь и отредактируйте свой вопрос.   -  person UmarZaii    schedule 19.08.2017


Ответы (1)


Показанная вами роль позволяет получать / перечислять / смотреть / удалять разрешения только для модулей в пространстве имен по умолчанию.

Если вам нужен список разрешений для утверждений о постоянных томах, вам также необходимо включить этот глагол и ресурс в свою роль.

person Jordan Liggitt    schedule 19.08.2017
comment
Поэтому я добавил следующее: - apiGroups: [] # указывает ресурсы основной группы API: [persistentvolumeclaims] глаголы: [get, watch, list, delete] - person zach; 21.08.2017