Kubernetes админ сегрегации - PullRequest
0 голосов
/ 26 июня 2019

Большинству операторов kubernetes требуется возможность создавать роли кластера, привязки роли кластера и crds.

Мне нужна правильная сегрегация rbac, и я хочу, чтобы учетная запись службы развертывания не помещалась непосредственно в качестве администратора.

Но если я только дам ему разрешения на выпуск для роли кластера, то, похоже, что он в конце концов поставит себя администратором.

Как правильно с этим справляться? (если есть).

Ответы [ 2 ]

0 голосов
/ 01 июля 2019

Вы видели, как это делается в случае prometheus-operator ?
Он не позволяет предоставить учетной записи службы развертывания полные права администратора, особенно чтобы она позволяла контролировать разрешение на выполнение действий 'create / bind'для ролей или ресурсов clusterroles в группе API «rbac.authorization.k8s.io».
Я думаю, что вы можете использовать его в качестве хорошей справочной схемы для настройки отдельных правил RBAC для управляемого приложения и приложения-оператора.

0 голосов
/ 26 июня 2019

Вы можете иметь пространства имен и учетные записи служб, имеющие доступ только к тем конкретным ресурсам и apiGroups, которые вы хотите.

apiVersion: v1
kind: ServiceAccount
metadata:
  name: gitlab-tez-dev # account name
  namespace: tez-dev #namespace

---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: tez-dev-full-access #role
  namespace: tez-dev
rules:
  - apiGroups: ["", "extensions", "apps"]
    resources: ["deployments", "replicasets", "pods", "services"] #resources to which permissions are granted
    verbs: ["*"] # what actions are allowed
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: tez-dev-view
  namespace: tez-dev
subjects:
  - kind: ServiceAccount
    name: gitlab-tez-dev
    namespace: tez-dev
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: tez-dev-full-access

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

Затем вы можете использовать его для развертывания в определенном пространстве имен.

...