Démo | Centre Docker |
---|
Confiez l’administration d’une poignée de conteneurs à vos collègues.
CaaSa fournit une interface Web simple pour gérer les tâches d'administration de base des conteneurs :
Restreindre les autorisations par conteneur et par utilisateur
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
️ Pour la production, un proxy inverse avec terminaison TLS devant CaaSa est fortement recommandé
Les rôles sont définis via des variables d'environnement et peuvent contenir ces autorisations :
Il existe 3 méthodes disponibles :
Pour effectuer les connexions, CaaSa envoie des requêtes http-post à l'URL définie dans la variable d'environnement AUTH_API_URL
. Les requêtes contiennent un corps json avec un nom d'utilisateur et un mot de passe. Les noms de champs json sont définis via les variables d'environnement AUTH_API_FIELD_USERNAME
(par défaut : username ) et AUTH_API_FIELD_PASSWORD
(par défaut : password ). Un code de réponse 2XX (par exemple 200 OK ) représente une connexion réussie.
Définissez la variable d'environnement AUTH_API_URL=https://example.org
. Vous pouvez désormais vous connecter avec n’importe quelle combinaison de nom d’utilisateur et de mot de passe.
️ Utile uniquement pour les tests et les démos. Ne convient pas à un usage productif.
CaaSa peut lire le nom d'utilisateur à partir d'un en-tête de requête http. Cet en-tête doit être fourni par un reverse proxy devant CaaSa. Il peut être spécifié via la variable d'environnement WEBPROXY_AUTH_HEADER
. Un nom d'en-tête typique est Remote-User .
️ L'en-tête doit être fourni par le proxy inverse. Une valeur fournie par un client malveillant doit être écrasée.
Si un conteneur doit être visible dans CaaSa, il doit être annoté avec une étiquette définie ci-dessus comme ROLES_<labelname>
et répertorier tous les noms d'utilisateur autorisés (ou ID d'utilisateur). Les noms d'utilisateur sont traités comme étant insensibles à la casse.
docker run -it --rm --name caasa_demo --label caasa.admin.full=user1,user2 nginx:alpine
Dans cet exemple, les utilisateurs user1
et user2
se voient accorder les droits du rôle caasa.admin.full
pour le conteneur caasa_demo
via l'interface Web CaaSa.