Demo | Docker-Hub |
---|
Lagern Sie die Verwaltung einer Handvoll Container an Ihre Kollegen aus.
CaaSa bietet eine einfache Weboberfläche zur Abwicklung grundlegender Container-Administrationsaufgaben:
Beschränken Sie die Berechtigungen pro Container und Benutzer
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
️ Für die Produktion ist ein Reverse-Proxy mit TLS-Terminierung vor CaaSa sehr zu empfehlen
Rollen werden über Umgebungsvariablen definiert und können die folgenden Berechtigungen enthalten:
Es stehen 3 Methoden zur Verfügung:
Um Anmeldungen durchzuführen, sendet CaaSa http-Post-Anfragen an die URL, die in der Umgebungsvariablen AUTH_API_URL
definiert ist. Die Anfragen enthalten einen JSON-Body mit Benutzername und Passwort. Die JSON-Feldnamen werden über die Umgebungsvariablen AUTH_API_FIELD_USERNAME
(Standard: Benutzername ) und AUTH_API_FIELD_PASSWORD
(Standard: Passwort ) definiert. Ein 2XX-Antwortcode (z. B. 200 OK ) steht für eine erfolgreiche Anmeldung.
Legen Sie die Umgebungsvariable AUTH_API_URL=https://example.org
fest. Jetzt können Sie sich mit einer beliebigen Kombination aus Benutzername und Passwort anmelden.
️ Nur für Tests und Demos nützlich. Nicht für den produktiven Einsatz geeignet.
CaaSa kann den Benutzernamen aus einem HTTP-Anfrageheader lesen. Dieser Header muss von einem Reverse-Proxy vor CaaSa bereitgestellt werden. Es kann über die Umgebungsvariable WEBPROXY_AUTH_HEADER
angegeben werden. Ein typischer Header-Name ist Remote-User .
️ Der Header muss vom Reverse-Proxy bereitgestellt werden. Ein von einem böswilligen Client bereitgestellter Wert muss überschrieben werden.
Soll ein Container in CaaSa sichtbar sein, muss er mit einem oben definierten Label als ROLES_<labelname>
annotiert werden und alle erlaubten Benutzernamen (oder Benutzer-IDs) auflisten. Bei Benutzernamen wird die Groß-/Kleinschreibung nicht beachtet.
docker run -it --rm --name caasa_demo --label caasa.admin.full=user1,user2 nginx:alpine
In diesem Beispiel werden den Benutzern user1
und user2
über die CaaSa-Weboberfläche die Rechte der Rolle caasa.admin.full
für den Container caasa_demo
gewährt.