0

我有一个部署了我的应用程序的 Kubernetes 集群。还有一些其他用户,他们应该只能将文件复制到 pod 中和从 pod 中复制。使用 kubectl cp 命令。此用户上下文不应允许用户在集群上执行除 kubectl cp 之外的任何其他操作。

4

3 回答 3

1

与其使用 kubectl cp,不如使用 sftp 或 rsync 服务器运行 sidecar 容器。这将使您在各个级别都能更好地控制。

于 2020-05-27T08:53:38.013 回答
1

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
于 2020-05-27T08:18:40.860 回答
0

您可以使用仅允许运行 api 清单的 opa 和准入控制器具有特定标签,例如“cp”或“用户名”等,并且还受益于网守

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

于 2020-05-27T09:27:47.993 回答