24

Permission-Manager:一款针对Kubernete的RBAC与用户管理工具

 3 years ago
source link: https://www.freebuf.com/sectool/244690.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

ZRRbQ3.jpg!mobile

Permission-Manager

Permission-Manager是一款针对Kubernete的管理工具,Permission-Manager支持帮助管理员对Kubernete RBAC(基于角色的访问控制)和用户权限进行管理,并且提供了非常友好的Web用户接口。

Permission-Manager是一款由SIGHUP开发的应用程序,可以给用户提供功能强大的Kubernete RBAC管理功能。如果你在寻求一种简单且有效的Kubernetes集群用户管理方式的话,Permission-Manager将是你绝佳的选择。

在Permission-Manager的帮助下,我们可以轻松创建用户,分配命名空间和权限,并通过友好的Web用户接口来发布Kubeconfig YAML文件。

工具运行机制

Permission-Manager允许我们定义和选择权限标准模板(即定义谁可以在命名空间内或全局范围内做什么事情),并将它们与您可能要创建的所有用户进行关联。

模板系统是针对Cluster-Roles、RoleBinding和ClusterRolesBindigs的抽象实现。

模板介绍

一个模板就是一个带有下列前缀的ClusterRole:

template-namespaced-resources___

比如说:template-namespaced-resources___developer

新增模板

用户可以通过“template-namespaced-resources___”创建并部署一个ClusterRole。

默认模板

“developer”和“operation”默认模板可以通过部署“k8s/k8s-seeds/seed.yml”中的manifest来创建:

kubectl apply -f k8s/k8s-seeds

用户定义

一个用户,即是一种permissionmanagerusers.permissionmanager.user自定义资源。

工具安装&使用

接下来,我们一起看看如何在一个正在运行的Kubernetes集群上安装和部署Permission-Manager。

工具要求

1、创建命名空间:

kubectl create namespace permission-manager

2、使用下列内容创建或更新敏感凭证:

---

apiVersion: v1

kind: Secret

metadata:

  name: permission-manager

  namespace: permission-manager

type: Opaque

stringData:

  PORT: "4000" # port where server is exposed

  CLUSTER_NAME: "my-cluster" # name of the cluster to use in the generated kubeconfig file

  CONTROL_PLANE_ADDRESS: "https://172.17.0.3:6443" # full address of the control plane to use in the generated kubeconfig file

  BASIC_AUTH_PASSWORD: "changeMe" # password used by basic auth (username is `admin`)

工具部署

接下来,运行下列命令实现工具部署:

kubectl apply -f https://github.com/sighupio/permission-manager/releases/download/v1.6.0/crd.yml

kubectl apply -f https://github.com/sighupio/permission-manager/releases/download/v1.6.0/seed.yml

kubectl apply -f https://github.com/sighupio/permission-manager/releases/download/v1.6.0/deploy.yml

基础认证

工具的登录用户名为“admin”,密码为用户加载在敏感凭证中的“BASIC_AUTH_PASSWORD”数据。

访问应用

kubectl port-forward svc/permission-manager 4000 --namespace permission-manager

运行上述命令之后,我们就可以在浏览器中访问“http://localhost:4000”来使用Permission-Manager了。

工具运行截图

工具首页: Yv6RVbf.jpg!mobile

创建用户: yayy2mz.jpg!mobile

用户概览: iaqy2u.jpg!mobile

用户Kubeconfig: nEBNfy3.jpg!mobile

工具使用演示样例

点我查看示例1

点我查看示例2

项目地址

Permission-Manager:【 GitHub传送门


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK