我有一个部署了我的应用程序的 Kubernetes 集群。还有一些其他用户,他们应该只能将文件复制到 pod 中和从 pod 中复制。使用 kubectl cp 命令。此用户上下文不应允许用户在集群上执行除 kubectl cp 之外的任何其他操作。
问问题
688 次
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”或“用户名”等,并且还受益于网守
于 2020-05-27T09:27:47.993 回答