필수 보안 설정
서명 키·pepper·부트스트랩 비밀번호·웹훅 토큰·쿠키 설정, 그리고 시스템 진단 화면으로 확인하기
필요 권한: 전역 관리자
Geo-MLOps 는 설정 파일이 없어도 뜹니다. 개발하기 편하도록 서명 키와 비밀번호에 기본값이 들어 있기 때문입니다. 운영 설치에서 이 기본값을 그대로 두면 누구나 세션을 위조하거나 관리자로 로그인할 수 있습니다. /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=로 비우고 앱을 다시 만듭니다. 이제 이 값은 아무 계정도 만들지 않고, 진단 경고도 사라집니다.
비밀번호를 잊었다면 서버에서 관리 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 | 자격 증명(쿠키)과 와일드카드를 함께 쓰는 조합입니다. 웹 화면 주소를 명시하세요 |
MLFLOW_REQUIRE_AUTH=false | CRITICAL | /mlflow 가 로그인 없이 열립니다. 기본값 true 를 유지하세요 |
MOCK_DATAOPS_ENABLED=true | WARNING | 개발용 가짜 DataOps 서버입니다. 운영에서는 끕니다(기본 꺼짐) |
시스템 진단 화면으로 확인하기
전역 관리자 전역 관리자만 볼 수 있습니다. 설정값 자체는 화면에 나오지 않고 "기본값과 같은가" 만 나옵니다.
-
전역 관리자로 로그인해 오른쪽 위 시스템을 누르면 시스템 콘솔이 열립니다. 시스템 진단 카드에 "진단 주의 필요" 가 붙어 있으면 조치할 것이 있다는 뜻입니다.
시스템 콘솔: 전역 관리자가 처음 보는 곳 -
시스템 진단을 엽니다. 맨 위 "배포 정보" 에서 지금 도는 백엔드·프론트엔드의 커밋을, "의존 컴포넌트" 에서 Postgres·오브젝트 저장소·Kubernetes·MLflow 등의 연결 상태를 봅니다.
시스템 진단: 배포 정보·설정 위생·의존 컴포넌트 -
"설정 위생" 에서 CRITICAL 이 하나도 남지 않을 때까지 위 표대로 고칩니다. 각 항목에 바꿀 환경변수 이름이 적혀 있습니다.
설정 위생: 기본값 그대로인 서명 키·pepper·비밀번호가 CRITICAL 로 뜬다
위 그림은 기본값으로 띄운 설치의 모습입니다. 서명 키·pepper·관리자 비밀번호가 CRITICAL 로 뜨고, 이것들이 남아 있는 한 전체 판정은 "주의 필요" 에서 내려오지 않습니다. 연결이 모두 정상이어도 마찬가지입니다. 연결되는 것과 안전한 것은 다른 문제입니다.
다음: 첫 로그인과 초기 설정