administrador de permisos de la herramienta de gestión de permisos de usuario de kubernetes

Administrador de permisos

Permission Manager es un proyecto que proporciona interfaz de usuario web para Kubernetes RBAC y administración de usuarios, y proporciona una interfaz visual amigable para la administración de permisos de Kubernetes.

instalación

Descargue el archivo yaml de https://github.com/sighupio/permission-manager/tree/master/deployments/kubernetes , de la siguiente manera

[root@qd01-stop-k8s-master001 kubernetes]# ll
total 4
-rw-r--r-- 1 root root 2697 Jan 28 11:08 deploy.yml
drwxr-xr-x 2 root root   37 Jan 28 11:14 seeds

Crear espacio de nombres

[root@qd01-stop-k8s-master001 kubernetes]# kubectl create namespace permission-manager
namespace/permission-manager created

Crea un secreto y actualiza en consecuencia

[rancher@qd01-stop-k8snode011 permission-manager]$ cat secret.yaml
---
apiVersion: v1
kind: Secret
metadata:
  name: permission-manager
  namespace: permission-manager
type: Opaque
stringData:
  PORT: "4000" # port where server is exposed
  CLUSTER_NAME: "kubernetes-cluster" # name of the cluster to use in the generated kubeconfig file
  CONTROL_PLANE_ADDRESS: "https://10.26.29.208:6443" # full address of the control plane to use in the generated kubeconfig file
  BASIC_AUTH_PASSWORD: "k8sAdmin" # password used by basic auth (username is `admin`)
[root@qd01-stop-k8s-master001 kubernetes]# kubectl apply -f secret.yaml
secret/permission-manager created

desplegar

[root@qd01-stop-k8s-master001 seeds]# kubectl apply -f crd.yml
Warning: apiextensions.k8s.io/v1beta1 CustomResourceDefinition is deprecated in v1.16+, unavailable in v1.22+; use apiextensions.k8s.io/v1 CustomResourceDefinition
customresourcedefinition.apiextensions.k8s.io/permissionmanagerusers.permissionmanager.user created

[root@qd01-stop-k8s-master001 seeds]# kubectl apply -f seed.yml
clusterrole.rbac.authorization.k8s.io/template-namespaced-resources___operation created
clusterrole.rbac.authorization.k8s.io/template-namespaced-resources___developer created
clusterrole.rbac.authorization.k8s.io/template-cluster-resources___read-only created
clusterrole.rbac.authorization.k8s.io/template-cluster-resources___admin created

[root@qd01-stop-k8s-master001 kubernetes]# kubectl apply -f deploy.yml
service/permission-manager created
deployment.apps/permission-manager created
serviceaccount/permission-manager created
clusterrole.rbac.authorization.k8s.io/permission-manager created
Warning: rbac.authorization.k8s.io/v1beta1 ClusterRoleBinding is deprecated in v1.17+, unavailable in v1.22+; use rbac.authorization.k8s.io/v1 ClusterRoleBinding
clusterrolebinding.rbac.authorization.k8s.io/permission-manager created

El administrador de permisos se implementa arriba, la información de advertencia puede ser ignorada o modificada por usted mismo en la versión api del archivo yaml a rbac.authorization.k8s.io/v1

Utilice la entrada para exponer servicios

Crear ingress.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: permission-manager-ingress
  namespace: permission-manager
  annotations:
    kubernetes.io/ingress.class: nginx
spec:
  rules:
  - host: permission.kubeops.net
    http:
      paths:
      - pathType: Prefix
        path: /
        backend:
          service:
            name: permission-manager
            port:
              number: 4000
[root@qd01-stop-k8s-master001 kubernetes]# kubectl apply -f ingress.yaml
[root@qd01-stop-k8s-master001 kubernetes]# kubectl get ing -n permission-manager
Warning: extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
NAME                         CLASS    HOSTS                  ADDRESS                     PORTS   AGE
permission-manager-ingress   <none>   permission.kubeops.net   10.26.29.202,10.26.29.203   80      4m8s

Agregue la resolución dns usted mismo, luego visite allow.kubeops.net en el navegador e inicie sesión con el nombre de usuario y la contraseña (establecidos en secreto)

iniciar sesión

administrador de permisos de la herramienta de gestión de permisos de usuario de kubernetes
Actualmente no hay usuarios, podemos crear una prueba de usuario normal

Crear usuario

Haga clic en Crear nuevo usuario para
administrador de permisos de la herramienta de gestión de permisos de usuario de kubernetes
completar la información relevante
administrador de permisos de la herramienta de gestión de permisos de usuario de kubernetes
y luego haga clic en Guardar para
ver el archivo de configuración generado debajo de la información del usuario
administrador de permisos de la herramienta de gestión de permisos de usuario de kubernetes

prueba

Guarde el archivo de configuración y luego use este archivo de configuración para acceder al clúster.
Aquí copio el archivo de configuración al local, le cambio el nombre a scofield y uso kubectl para probar

[root@qd01-stop-k8s-master001 kubernetes]# kubectl --kubeconfig=scofield  get po
No resources found in default namespace.

[root@qd01-stop-k8s-master001 kubernetes]# kubectl --kubeconfig=scofield  get po -n argo
Error from server (Forbidden): pods is forbidden: User "system:serviceaccount:permission-manager:scofield" cannot list resource "pods" in API group "" in the namespace "argo"

Se puede ver en el resultado anterior que los dos espacios de nombres que consulté respectivamente son default y argo, pero solo el espacio de nombres predeterminado tiene permisos y el espacio de nombres argo no tiene permiso para operar. Esto es consistente con los permisos que otorgamos al crear un usuario.
Para obtener más información, consulte el sitio web oficial.

Supongo que te gusta

Origin blog.51cto.com/1648324/2609242
Recomendado
Clasificación