После попытки потерянных вещей и поиска в Google по всей вселенной, я наконец нашел этот блог о защите вашего кластера с помощью RBAC и PSP , где приведен пример проверки доступа к служебным учетным записям.
Правильная команда:
kubectl auth can-i <verb> <resource> --as=system:serviceaccount:<namespace>:<serviceaccountname> [-n <namespace>]
Чтобы проверить, имеет ли учетная запись tiller
право на создание объекта ServiceMonitor
:
kubectl auth can-i create servicemonitor --as=system:serviceaccount:staging:tiller -n staging
Примечание: чтобы решить мою проблему с учетной записью tiller
, мне пришлось добавить права на ресурс servicemonitors
в monitoring.coreos.com
apiGroup.После этого изменения вышеприведенная команда вернула yes
(наконец-то), и установка нашей таблицы рулевого управления прошла успешно.
Обновлено tiller-manager
роль:
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: tiller-manager
labels:
org: ipos
app: tiller
annotations:
description: "Role to give Tiller appropriate access in namespace"
ref: "https://docs.helm.sh/using_helm/#example-deploy-tiller-in-a-namespace-restricted-to-deploying-resources-only-in-that-namespace"
rules:
- apiGroups: ["", "batch", "extensions", "apps"]
resources: ["*"]
verbs: ["*"]
- apiGroups:
- monitoring.coreos.com
resources:
- servicemonitors
verbs:
- '*'