필수 보안 설정
서명 키·pepper·부트스트랩 비밀번호·웹훅 토큰·쿠키 설정과 시스템 진단 화면 확인
필요 권한: 전역 관리자
MLOps Central Platform 은 설정 파일이 없어도 실행. 개발 편의를 위해 서명 키와 비밀번호에 기본값이 있음. 운영 설치에서 이 기본값을 그대로 두면 누구나 세션 위조나 관리자 로그인 가능. /etc/geo-mlops/app.env 가 없거나 이름이 변경되어도 Compose 는 경고 없이 기본값으로 실행. 설치 직후와 배포 시마다 시스템 진단 화면으로 확인 필요.
반드시 바꿀 다섯 가지
설정 (GEO_MLOPS_ 뒤) | 기본값 그대로면 | 조치 |
|---|---|---|
AUTH_SECRET | CRITICAL: 세션 JWT 와 비밀번호 재설정 토큰을 누구나 위조 가능 | openssl rand -hex 32 값으로 교체 |
EDGE_TOKEN_PEPPER | CRITICAL: 엣지·MLflow·레지스트리 토큰 해시가 모두 이 값을 사용 | openssl rand -hex 32 값으로 교체 (AUTH_SECRET 과 다른 값) |
RBAC_BOOTSTRAP_ADMIN_PASSWORD | CRITICAL: 첫 관리자 비밀번호가 누구나 아는 값 | 강한 비밀번호로 바꾸거나, 첫 로그인 뒤 비밀번호를 바꾸고 이 값을 비움 |
ALERTMANAGER_WEBHOOK_TOKEN | WARNING: 경보 웹훅이 503 으로 차단되어 경보가 앱에 전달되지 않음(값을 설정해야 허용됨) | 난수로 설정하고 monitoring/alertmanager.yml 헤더에 같은 값 |
AUTH_COOKIE_SECURE | 기본 true. false 로 설정하면 WARNING. 세션 쿠키가 평문 HTTP 로도 전송. | HTTPS 로 접속한다면 true 유지 |
설정 방법은 Docker Compose 로 설치의 app.env 예시 참고. 수정 후 앱 컨테이너를 다시 생성해야 새 값을 읽음.
docker compose -f /opt/geo-mlops/docker-compose.yml up -d app
부트스트랩 관리자 비밀번호
부트스트랩 관리자는 계정이 없을 때 한 번만 RBAC_BOOTSTRAP_ADMIN_PASSWORD 로 생성. 그 뒤로는 이 값을 바꿔도 계정 비밀번호는 변경되지 않음. 다음 순서로 진행.
- 첫 기동 전에
RBAC_BOOTSTRAP_ADMIN_PASSWORD에 임시 비밀번호를 입력하고 기동. - 그 계정으로 로그인해 오른쪽 위 아바타 메뉴 → 계정 설정 → 비밀번호 변경에서 실제로 사용할 비밀번호로 변경.
app.env에서RBAC_BOOTSTRAP_ADMIN_PASSWORD=로 비우고 앱 컨테이너 재생성. 이후 이 값은 아무 계정도 만들지 않고, 진단 경고도 사라짐.
RBAC_BOOTSTRAP_ADMIN_EMAIL 의 계정은 앱 기동 시마다 전역 관리자 권한을 다시 부여받음. 이 계정의 전역 관리자 권한을 회수해도(geo-mlops-admin admin revoke) 재시작하면 다시 부여. 권한을 영구히 회수하려면 이 값도 비움.
비밀번호 분실 시 서버에서 관리 CLI 로 새 관리자 생성.
docker exec -it geo-mlops-app ./run geo-mlops-admin user create [email protected] --admin
# --password 를 지정하지 않으면 무작위 비밀번호를 생성해 출력
진단 화면의 기타 점검 항목
| 설정 | 판정 | 뜻 |
|---|---|---|
RBAC_BOOTSTRAP_ROLE_PASSWORD | WARNING | 역할별 데모 계정이 기본 비밀번호로 생성. 운영 환경에서는 비워서 비활성화. |
CORS_ALLOW_ORIGINS 가 * (기본값) | WARNING | 자격 증명(쿠키)과 와일드카드를 함께 사용하는 조합. 기본값이므로 처음 설치하면 표시. 웹 화면이 다른 도메인이면 그 주소를 입력하고, 같은 도메인이면 값을 비워 CORS 비활성화. |
MLFLOW_REQUIRE_AUTH=false | CRITICAL | /mlflow 에 로그인 없이 접근 가능. 기본값 true 유지 필요. |
MOCK_DATAOPS_ENABLED=true | WARNING | 개발용 가짜 DataOps 서버. 운영 환경에서는 비활성화(기본 비활성화). |
시스템 진단 화면으로 확인하기
전역 관리자 전역 관리자만 열람 가능. 설정값 자체는 화면에 표시되지 않고 "기본값과 같은가" 만 표시. 테넌트가 하나도 없으면 웹 화면이 열리지 않음. 먼저 첫 로그인과 초기 설정의 방법으로 첫 테넌트 생성.
-
전역 관리자로 로그인해 오른쪽 위 아바타 메뉴에서 시스템 콘솔 선택. 시스템 진단 카드에 "진단 주의 필요" 가 표시되어 있으면 조치할 항목이 있다는 뜻.
시스템 콘솔: 아바타 메뉴의 시스템 콘솔 항목으로 진입 -
시스템 진단 선택. 맨 위 "배포 정보" 에서 현재 실행 중인 백엔드·프론트엔드의 커밋을, "의존 컴포넌트" 에서 Postgres·오브젝트 저장소·Kubernetes·MLflow 등의 연결 상태 확인.
시스템 진단: 배포 정보·설정 위생·의존 컴포넌트 -
"설정 위생" 에서 CRITICAL 이 하나도 남지 않을 때까지 위 표대로 수정. 각 항목에 변경할 환경변수 이름 표시.
설정 위생: 기본값 그대로인 서명 키·pepper·비밀번호의 CRITICAL 표시
위 그림은 기본값으로 실행한 설치의 화면. 서명 키·pepper·관리자 비밀번호가 CRITICAL 로 표시되고, 이것들이 남아 있는 한 전체 판정은 연결이 모두 정상이어도 "주의 필요" 에서 변경되지 않음.
다음: 첫 로그인과 초기 설정