デモ | ドッカーハブ |
---|
少数のコンテナの管理を同僚に委託します。
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
ロールの権限が付与されます。