kubectl, чтобы пользователь мог только копировать файлы в модули и из них - PullRequest
0 голосов
/ 27 мая 2020

У меня есть кластер Kubernetes, в котором развернуто мое приложение. есть другие пользователи, которым они должны иметь возможность копировать файлы только в модуль и из модуля. Используя команду kubectl cp. Этот пользовательский контекст не должен позволять пользователю выполнять какие-либо другие операции в кластере, кроме kubectl cp.

Ответы [ 3 ]

1 голос
/ 27 мая 2020

Вместо того, чтобы использовать kubectl cp, вместо этого запустите контейнер sidecar с sftp или rsyn c сервером. Это даст вам лучший контроль на всех уровнях.

1 голос
/ 27 мая 2020

kubectl cp внутренне использует exec. Невозможно предоставить разрешение только на копирование, но вы можете предоставить только разрешение exec.

Создайте роль с разрешением на pods/exec

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: default
  name: pod-exec
rules:
- apiGroups: [""]
  resources: ["pods/exec"]
  verbs: ["create"]

Создайте Rolebinding для назначения над ролью user.

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: pod-exec-binding
  namespace: default
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: pod-exec
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: user
0 голосов
/ 27 мая 2020

Вы можете использовать opa и контроллер допуска, который разрешает запуск только api-манифеста, имеющего особую c метку, такую ​​как "cp" или "username" et c. а также преимущества привратника

https://www.youtube.com/watch?v=ZJgaGJm9NJE&t=3040s

...