데모 | 도커 허브 |
---|
소수의 컨테이너 관리를 동료에게 아웃소싱합니다.
CaaSa는 기본 컨테이너 관리 작업을 처리하기 위한 간단한 웹 인터페이스를 제공합니다.
컨테이너 및 사용자별로 권한을 제한합니다.
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
(기본값: 사용자 이름 ) 및 AUTH_API_FIELD_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 웹 인터페이스를 통해 caasa_demo
컨테이너에 대한 caasa.admin.full
역할의 권한이 부여됩니다.