caasa
v1.1.6
示範 | 碼頭工人中心 |
---|
將一些容器的管理外包給您的同事。
CaaSa 提供了一個簡單的 Web 介面來處理基本的容器管理任務:
限制每個容器和使用者的權限
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
️ 對於生產環境,強烈建議在 CaaSa 之前使用帶有 TLS 終止的反向代理
角色是透過環境變數定義的,並且可能包含以下權限:
有3種方法可用:
為了執行登錄,CaaSa 會向環境變數AUTH_API_URL
中定義的 URL 發送 http-post 請求。請求包含帶有使用者名稱和密碼的 json 正文。 json 欄位名稱是透過環境變數AUTH_API_FIELD_USERNAME
(預設值: username )和AUTH_API_FIELD_PASSWORD
(預設值: password )定義的。 2XX 回應代碼(例如200 OK )表示登入成功。
設定環境變數AUTH_API_URL=https://example.org
。現在您可以使用任何使用者名稱和密碼組合登入。
️ 僅對測試和演示有用。不適合生產用途。
CaaSa 可以從 http 請求標頭中讀取使用者名稱。此標頭必須由 CaaSa 前面的反向代理提供。它可以透過環境變數WEBPROXY_AUTH_HEADER
指定。典型的標頭名稱是Remote-User 。
️ 標頭必須由反向代理提供。惡意客戶端提供的值必須被覆寫。
如果容器在 CaaSa 中可見,則必須使用上面定義為ROLES_<labelname>
的標籤進行註釋,並列出所有允許的使用者名稱(或使用者 ID)。使用者名稱被視為不區分大小寫。
docker run -it --rm --name caasa_demo --label caasa.admin.full=user1,user2 nginx:alpine
在此範例中,使用者user1
和user2
透過 CaaSa Web 介面被授予容器caasa_demo
的caasa.admin.full
角色的權限。