首页 > 解决方案 > 访问特定命名空间中特定 pod 的 exec

问题描述

我想授予用户对一个 pod 的 exec 访问权限,而不是所有项目 pod/组件。

即 1 个 pod <-> 1 个命名空间 <-> 仅 1 个用户

我们有这样的选择吗?

标签: kubernetes

解决方案


是的,您可以通过名称为特定资源创建 RBAC 角色和角色绑定。

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: demo
  name: pod-exec-role
rules:
- apiGroups: [""]
  resources: ["pods/exec"]
  resourceNames: ["POD_NAME"]
  verbs: ["get", "create"]

并使用角色绑定将该角色绑定到特定用户:

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: pod-exec
  namespace: demo
subjects:
- kind: User
  name: jane 
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role 
  name: pod-exec-role
  apiGroup: rbac.authorization.k8s.io

注意:这不适用于名称可以随时间更改的 pod。就像从Deployment对象创建的 pod。


推荐阅读