OpenShit RBAC

OpenShift utilizando permisos RBAC y soluciones de verificación de identidad. En primer lugar:
el administrador del clúster puede utilizar las funciones de racimo y se unen para controlar quién tiene acceso a los distintos niveles de la plataforma OpenShift Plataforma propio contenedor y todos los proyectos.
Los desarrolladores pueden utilizar el papel de local y vinculante para controlar quién tiene acceso a sus proyectos. Tenga en cuenta que la autorización es un paso separado con la autenticación, verificación de identidad para realizar operaciones más es determinar la identidad de la persona.
Varios conceptos importantes:
la regla: los derechos de explotación de los recursos, tales como la posibilidad de crear, obtener, lista de vaina y otros recursos de
papel: una colección de reglas, las reglas pueden ser entendidas como una entidad.
Encuadernación: asociación entre el usuario y / o funciones de grupo.
rol RBAC y la autoridad de control que se unen dos niveles:
rolebinding:
llama atascamientos de espacios de nombres locales básicos
clusterrolebindings:
clúster completo global vinculante

La siguiente es la función de clúster de clúster predeterminado
OpenShit RBAC

Por ejemplo, se utiliza el usuario usuario1 obligado por roelbinding privilegios de administrador que esta función sólo puede ser utilizada por los derechos de administrador de usuarios al proyecto actual, si tenemos que usar clusterrolebinding unen todo el grupo de administrador

Las siguientes figuras explican una buena relación entre ellos
OpenShit RBAC

Experimento:
Queremos crear un rolebinding, por lo que hay llegar, lista y otros privilegios, y con destino a la dev usuario por encima de
1, crear un proyecto llamado dev
OC los ns Crea dev
2, crear una rolebinding

 [core@w1 ~]$ oc create role dev-rolebinding --verb=get,list,create,update,delete,watch --resource=pod,deployment -n dev --dry-run=true -oyaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  creationTimestamp: null
  name: dev-rolebinding
rules:
- apiGroups:
  - ""
  resources:
  - pods
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - watch
- apiGroups:
  - extensions
  resources:
  - deployments
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - watch
[core@w1 ~]$ 

Por encima realidad no realizar, vamos a crear en realidad próxima.

[core@w1 ~]$ oc create role dev-rolebinding --verb=get,list,create,update,delete,watch --resource=pod,deployment -n dev 
role.rbac.authorization.k8s.io/dev-rolebinding created

Nos rolebinding y el usuario dev1 para enlazar este espacio de nombres en dev

[core@w1 ~]$ oc adm policy add-role-to-user dev-rolebinding dev1 --role-namespace=dev  -n dev
Warning: User 'dev1' not found
role.rbac.authorization.k8s.io/dev-rolebinding added: "dev1"
[core@w1 ~]$ 

Se puede ver el indicador, el usuario no está dentro de los grupos de usuarios Dev1, vamos a crear una.
1, el primer uso en máquinas equipadas con herramientas httpd-htpasswd para crear un usuario y especificar una contraseña, y copiar el archivo al usuario puede ser autenticado OpenShift máquina

[root@pub ~]# htpasswd -c -B -b /tmp/htpasswd-dev1 dev1 dev1
Adding password for user dev1
[root@pub ~]# scp /tmp/htpasswd-dev1  [email protected]:/tmp
htpasswd-dev1                                                                       100%   66    76.9KB/s   00:00    
[root@pub ~]# 

En la siguiente la OpenShift operaciones de la máquina:

[root @ m1 ~] # OC crear secreta genérica htpass-secreto-dev1 --de-file = htpasswd = / tmp / htpasswd-dev1 -n OpenShift-config
secreto / htpass-secreto-dev1 creado
[root @ m1 ~] # vi httpd-passwd.yaml
[root @ m1 ~] # cat httpd-passwd.yaml
apiVersion: config.openshift.io/v1
tipo: OAuth
metadatos:
nombre: grupo
de especificaciones:
identityProviders:

  • Nombre: my_htpasswd_provider-demo
    mappingMethod: reclamo
    Tipo: htpasswd
    htpasswd:
    fileData:
    Nombre: htpass-secreto-dev1
    aplicar [root @ m1 ~] # OC-f-httpd passwd.yaml
    oauth.config.openshift.io/cluster configurado
    [root @ m1 ~] #

En este caso el usuario intenta iniciar sesión en el uso de dev1

[w1 núcleo @ ~] $ OC entrada -u dev1
autenticación requerido para https://192.168.1.131:6443 (OpenShift)
Nombre de usuario: dev1
Contraseña:
Inicio de sesión exitoso.

Usted no tiene ningún proyecto. Usted puede tratar de crear un nuevo proyecto, mediante la ejecución

oc nuevo proyecto <proyecto>

[Core @ W1 ~] $
usuario dev1 se ha creado con éxito, la potenciación de nuevo
[W1 Core @ ~] $ Política OC adm el Add-a-usuario Rol-dev-rolebinding dev1 --role-namespace = -n dev dev
role.rbac .authorization.k8s.io / dev-rolebinding añadido: "DEV1"
[W1 Core @ ~] $

En este punto el usuario para ver Dev1 utilizar este proyecto dev de POD
[Core @ M1 ~] $ OC LLEGAR POD, despliegue -n dev
No recursos encontrados en el espacio de nombres prog.
[Core @ M1 ~] $
intenta ver la vaina del defecto de este, debe ser rechazada
[Core @ M1 ~] $ OC GET POD, despliegue -n predeterminado
de error del servidor (Prohibido): Vainas de usuario están prohibidas: la "dev1" usuario no puede Lista de recursos "pods" en la API de grupo "" in en el espacio de nombres "default"
Error servidor desde (Prohibido): deployments.extensions usuario están prohibidas: la "dev1" el usuario no lista puede recursos "las implantaciones" en el API Grupo "Extensiones" en el espacio de nombres en el "default"
[Core @ M1 ~] $
roebinding hasta ahora se ha completado

Clusterrolebinding bajo la siguiente prueba
clusterrolebinding creación, y el usuario se unen y dev1

[w1 núcleo @ ~] $ OC crear una lista de enema-rolebinding --verb = get, clusterrole, crear, actualizar, eliminar, ver --resource = vaina, despliegue, ns -n dev
clusterrole.rbac.authorization.k8s.io/ lavativa-rolebinding creado
[w1 núcleo @ ~] $ política adm oc-add-cluster-función a usuario dev1-dev rolebinding
clusterrole.rbac.authorization.k8s.io/dev-rolebinding añadió: "dev1"
[core @ W1 ~ PS

下面再次利用dev1用户查看用户
[w1 núcleo @ ~] $ OC whoami
dev1
[w1 núcleo @ ~] $ OC get vaina -n predeterminado
NOMBRE LISTO REINICIO DE ESTADO DE EDAD
appv1-5d8bc7bc75-bh4nd 1/1 Ejecución de 0 15h
appv1-5d8bc7bc75- gbqcb 1/1 Ejecución de 0 7d1h
appv1-5d8bc7bc75-lslxz 1/1 Ejecución de 0 15h
hello-OpenShift-1-585zl 1/1 Ejecución de 0 15h
miaplicacion--1-74f5dcc 5t4lv 1/1 Ejecución de 0 15h
miaplicacion-1-74f5dcc- 79slr 1/1 Ejecución de 0 15h
miaplicacion--1-74f5dcc bztkc 1/1 Ejecución de 0 7d21h
miaplicacion-6d9dcf58d6-6r7sz 1/1 Ejecución de 0 15h
miaplicacion-6d9dcf58d6-hl6n2 1/1 Ejecución de 0 7d21h
miaplicacion-6d9dcf58d6-m5f7x 1/1 correr 0 15h
miaplicacion de implementar-6965d5bd75-5s6kj 1/1 0 corriendo 15h
miaplicacion de implementar-6965d5bd75-qgqhn 1/1 corriendo 0 6d16h
miaplicacion de implementar-6965d5bd75-vt7x4 1/1 Ejecución de 0 15h
prueba de nginx-58bfbcc86d-nffgg 1/1 Ejecución de 0 15h
-test test-6f7947d649-jp2zj 1/1 Ejecución de 0 15h
[w1 núcleo @ ~] $

Dev1 al usuario un administrador de clústeres
[root @ M1 ~] Política # adm la actuación de la dev1 usuario ADMIN-OC-Add-Cluster Cluster
clusterrole.rbac.authorization.k8s.io/cluster-admin añadió: "dev1"

Supongo que te gusta

Origin blog.51cto.com/shyln/2483917
Recomendado
Clasificación