Как назначить RBA C разрешения для системы: анонимная учетная запись службы в Kubernetes? - PullRequest
1 голос
/ 23 марта 2020

Как назначить RBA C разрешения для системы: анонимная учетная запись службы в Kubernetes?

Чтобы понять Kubernetes, я хочу назначить разрешения для проверки учетной записи службы system:anonymous разрешения с использованием kubectl auth can-i --list.

Я создал следующую роль и привязку роли:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole 
metadata:
  name: anonymous-review-access
rules:
- apiGroups:
  - authorization.k8s.io
  resources:
  - selfsubjectaccessreviews
  - selfsubjectrulesreviews
  verbs:
  - create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
   name: anonymous-review-access
roleRef:
   apiGroup: rbac.authorization.k8s.io
   kind: ClusterRole
   name: anonymous-review-access
subjects:
- kind: ServiceAccount
  name: anonymous
  namespace: default

После kubectl apply -f ... выше, мне все еще не разрешено анонимно просматривать разрешения на доступ:

$ kubectl auth can-i --list --as=system:anonymous -n default
Error from server (Forbidden): selfsubjectrulesreviews.authorization.k8s.io is forbidden: User "system:anonymous" cannot create resource "selfsubjectrulesreviews" in API group "authorization.k8s.io" at the cluster scope

Как создать правильную роль и привязку роли для просмотра разрешений как system:anonymous учетной записи службы?

1 Ответ

3 голосов
/ 23 марта 2020

system:anonymous не является учетной записью службы. Запросы, которые не отклоняются другими настроенными методами проверки подлинности, обрабатываются как анонимные запросы и получают имя пользователя system:anonymous и группу system:unauthenticated

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: anonymous-review-access
rules:
- apiGroups:
  - authorization.k8s.io
  resources:
  - selfsubjectaccessreviews
  - selfsubjectrulesreviews
  verbs:
  - create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
   name: anonymous-review-access
roleRef:
   apiGroup: rbac.authorization.k8s.io
   kind: ClusterRole
   name: anonymous-review-access
subjects:
- kind: User
  name: system:anonymous
  namespace: default

    kubectl auth can-i --list --as=system:anonymous -n default
Resources                                       Non-Resource URLs   Resource Names   Verbs
selfsubjectaccessreviews.authorization.k8s.io   []                  []               [create]
selfsubjectrulesreviews.authorization.k8s.io    []                  []               [create]
...