Manifestación | Centro acoplable |
---|
Subcontrate la administración de un puñado de contenedores a tus compañeros de trabajo.
CaaSa proporciona una interfaz web sencilla para manejar tareas básicas de administración de contenedores:
Restringir permisos por contenedor y usuario
version : ' 2.4 '
services :
caasa :
image : knrdl/caasa
restart : always
environment :
ROLES_caasa_admin_basic : info, state, logs, procs, files, files-read
ROLES_caasa_admin_full : info, info-annotations, state, logs, term, procs, files, files-read, files-write
AUTH_API_URL : https://identity.mycompany.com/login
AUTH_API_FIELD_USERNAME : username
AUTH_API_FIELD_PASSWORD : password
ports :
- " 8080:8080 "
volumes :
- /var/run/docker.sock:/var/run/docker.sock
mem_limit : 150m
cpu_count : 1
️ Para producción es muy recomendable un proxy inverso con terminación TLS delante de CaaSa.
Los roles se definen mediante variables de entorno y pueden contener estos permisos:
Hay 3 métodos disponibles:
Para realizar inicios de sesión, CaaSa envía solicitudes http-post a la URL definida en la variable de entorno AUTH_API_URL
. Las solicitudes contienen un cuerpo json con nombre de usuario y contraseña. Los nombres de los campos json se definen mediante las variables de entorno AUTH_API_FIELD_USERNAME
(predeterminado: nombre de usuario ) y AUTH_API_FIELD_PASSWORD
(predeterminado: contraseña ). Un código de respuesta 2XX (por ejemplo, 200 OK ) representa un inicio de sesión exitoso.
Establezca la variable de entorno AUTH_API_URL=https://example.org
. Ahora puedes iniciar sesión con cualquier combinación de nombre de usuario y contraseña.
️ Sólo útil para pruebas y demostraciones. No apto para uso productivo.
CaaSa puede leer el nombre de usuario de un encabezado de solicitud http. Este encabezado debe ser proporcionado por un proxy inverso delante de CaaSa. Se puede especificar mediante la variable de entorno WEBPROXY_AUTH_HEADER
. Un nombre de encabezado típico es Usuario-Remoto .
️ El encabezado debe ser proporcionado por el proxy inverso. Se debe sobrescribir un valor proporcionado por un cliente malicioso.
Si un contenedor debe ser visible en CaaSa, debe anotarse con una etiqueta definida anteriormente como ROLES_<labelname>
y enumerar todos los nombres de usuario permitidos (o ID de usuario). Los nombres de usuario se tratan sin distinguir entre mayúsculas y minúsculas.
docker run -it --rm --name caasa_demo --label caasa.admin.full=user1,user2 nginx:alpine
En este ejemplo, a los usuarios user1
y user2
se les otorgan los derechos del rol caasa.admin.full
para el contenedor caasa_demo
a través de la interfaz web CaaSa.