보안
VEXPLOR의 보안은 네 가지로 나뉩니다. 누구인가 확인(인증), 무엇을 할 수 있나 확인(권한), 데이터를 나누고 남기기(데이터 보호와 감사), **AI가 할 수 있는 일 제한(AI 안전장치)**입니다. 사용자는 보안 설정 화면에서 2단계 인증과 로그인 기기를 관리하고, 관리자는 역할과 권한 범위를 정하고 감사 기록을 검색합니다.
무엇인가
VEXPLOR에는 생산·품질·인사처럼 회사의 핵심 데이터가 쌓입니다. 그래서 보안은 별도 기능이 아니라 모든 요청이 거치는 기본 동작으로 설계되어 있습니다. 화면에서 보낸 요청은 API 게이트웨이에서 보안 헤더 적용, 요청량 제한, 로그인 토큰 서명 확인을 거친 뒤에야 업무 서비스에 도착합니다.
이 문서는 보안 원칙과 사용자가 직접 할 수 있는 설정까지만 다룹니다. 내부 구현 세부는 공개하지 않습니다.
1. 인증 -- 누구인가 확인
| 항목 | 동작 |
|---|---|
| 비밀번호 규칙 | 8자 이상이며 영문 대문자·소문자·숫자·특수문자를 모두 포함해야 합니다. 비밀번호는 원문이 아닌 복원할 수 없는 해시 값으로만 저장됩니다. |
| 로그인 실패 잠금 | 비밀번호를 여러 번 틀리면 계정이 일시적으로 잠기고, 계정 사용자에게 보안 알림 메일이 발송됩니다. |
| 2단계 인증 (MFA) | 비밀번호에 더해 인증 앱의 6자리 일회용 코드(TOTP, 30초마다 바뀜)를 입력하게 합니다. |
| 의심 로그인 감지 | 처음 보는 IP, 처음 보는 기기, 평소와 다른 시간대의 로그인은 로그인 이력에 「의심」으로 표시되고 보안 알림 메일이 발송됩니다. |
| 세션과 토큰 | 로그인하면 접근 토큰과 갱신 토큰이 발급됩니다. 접근 토큰은 정해진 시간이 지나면 만료되고 갱신 토큰으로 다시 발급받습니다. |
| 비밀번호 재설정 | 이메일로 받은 일회용 링크로만 재설정할 수 있습니다. |
사용자가 직접 할 수 있는 것 -- 보안 설정 화면
설정 → 보안 설정 화면에서 아래를 관리합니다.
- 비밀번호 변경: 정기적으로 바꾸는 것을 권장합니다.
- 2단계 인증 설정: 인증 앱(Google Authenticator, Microsoft Authenticator, Authy 등)으로 화면의 QR 코드를 스캔하고, 앱에 표시된 6자리 코드를 입력하면 활성화됩니다. QR 코드를 스캔할 수 없으면 시크릿 키를 직접 입력합니다.
- 활성 세션 확인: 지금 로그인된 기기의 IP 주소, 로그인 시간, 마지막 활동 시간을 봅니다.
- 모든 세션 종료: 다른 기기의 로그인을 한 번에 끊습니다. 현재 세션도 함께 종료되므로 다시 로그인해야 합니다.
- 로그인 이력 확인: 시간·IP·운영체제와 브라우저·성공 여부·2단계 인증 사용 여부와 함께 「정상/의심」 분석 결과를 봅니다.
로그인 이력에 기억나지 않는 기록이 있으면 곧바로 비밀번호를 변경하고 모든 세션 종료를 누르세요. 2단계 인증이 꺼져 있다면 함께 켜 두는 것이 좋습니다.
2. 권한 -- 무엇을 할 수 있나 확인
VEXPLOR는 **역할 기반 권한(RBAC)**을 사용합니다. 사용자에게 역할을 주고, 역할에 권한을 붙입니다.
| 구성 | 설명 |
|---|---|
| 역할 | 「영업팀장」처럼 업무 직책 단위로 만듭니다. 시스템 기본 역할은 수정·삭제할 수 없고, 복제해서 새 역할을 만들 수 있습니다. |
| 리소스별 권한 | 리소스(배포된 테이블·기능)마다 생성(C)·읽기(R)·수정(U)·삭제(D)·관리 권한을 따로 줍니다. |
| 권한 범위 | 같은 읽기 권한이라도 범위를 개인(내가 만든 데이터)·부서·전체 중에서 고릅니다. |
| 메뉴 권한 | 역할별로 사이드바에 보일 메뉴를 정합니다. |
| 워크플로우 역할 | 결재·승인 단계에서 누가 처리할지를 역할로 지정합니 다. |
권한은 화면에서 버튼을 숨기는 데서 끝나지 않고, 서버가 요청마다 다시 확인합니다. 화면을 우회해 API를 직접 호출해도 권한이 없으면 거부됩니다.
관리자가 직접 할 수 있는 것
- 역할 만들기: 새 역할을 만들거나 기존 역할을 복제합니다.
- 권한 매트릭스 설정: 리소스별로 C·R·U·D·관리와 권한 범위를 체크합니다. 필요하면 「전체 읽기 권한 부여」로 한 번에 읽기 권한을 줄 수 있습니다.
- 구성원에게 역할 지정: 구성원 관리 화면에서 사용자마다 역할을 지정합니다.
- 권한 회수: 선택한 역할의 권한을 한 번에 회수합니다.
- 비밀번호 초기화: 관리자는 구성원의 비밀번호 재설정을 대신 요청할 수 있습니다.
3. 데이터 보호와 감사
테넌트 분리
고객사(테넌트)마다 데이터가 분리됩니다. 테넌트 정보는 서명이 확인된 로그인 토큰에서만 나오며, 배포된 업무 테이블은 테넌트마다 별도의 데이터베이스 영역에 만들어집니다. 자세한 원리는 멀티테넌시를 참고하세요.
감사 기록
배포된 업무 테이블에 데이터가 생성·수정·삭제되면 누가, 언제, 어디서(IP), 무엇을 어떻게 바꿨는지가 자동으로 기록됩니다. 기록은 데이터베이스 단계에서 남기 때문에 어느 화면이나 API로 바꿨든 빠지지 않습니다. 개인정보에 해당하는 값은 감사 기록에 저장될 때 가려진 형태로 남습니다.
관리자는 감사 로그 검색 화면에서 다음을 할 수 있습니다.
- 테이블명·변경자·내용으로 검색하고, 액션(생성·수정·삭제)과 테이블로 좁힙니다.
- 최근순 또는 관련순으로 정렬합니다.
- 기록 하나를 열어 변경 전 값과 변경 후 값을 나란히 비교하고, 바뀐 필드만 확인합니다.
개인정보 관련 동의와 탈퇴
이용약관·개인정보 처리 문서는 버전별로 보관되며, 사용자는 마케팅 수신 동의를 직접 바꿀 수 있습니다. 계정 삭제도 사용자가 직접 요청할 수 있습니다.
4. AI 안전장치
AI는 데이터를 조회하고 일부 작업을 실행할 수 있기 때문에 별도의 안전장치를 거칩니다.
| 안전장치 | 하는 일 |
|---|---|
| 입력 검사 | AI의 원래 지시를 무력화하려는 입력(프롬프트 주입)을 먼저 걸러 냅니다. |
| 위험한 데이터 조작 차단 | 데이터를 지우거나 테이블을 없애는 명령은 실행 전에 차단합니다. AI가 데이터베이스를 다루는 권한 자체에도 삭제 권한이 없습니다. |
| 개인정보 필터 | AI의 답변과 도구 실행 결과에 개인정보가 섞여 있으면 가립니다. |
| 승인 요청 | 작업의 위험도와 요청한 사용자의 권한 수준을 비교해, 바로 실행할지 담당자 승인을 받을지 차단할지 정합니다. |
| 활동 기록 | AI가 실행한 도구와 결과를 기록해 나중에 확인할 수 있습니다. |
실무 팁
권한이 넓은 관리자 계정이 가장 먼저 보호되어야 합니다. 테넌트를 만든 뒤 관리자 계정의 2단계 인증부터 켜 두세요.
새 역할을 만들 때는 권한 범위를 좁게(개인 또는 부서) 시작하고 필요한 리소스만 넓히는 편이 안전합니다. 넓은 권한은 나중에 회수하기 어렵습니다.
퇴사자는 구성원 관리에서 계정을 정리하고, 기기를 잃어버렸다면 본인이 보안 설정 화면에서 모든 세션 종료를 누르거나 관리자가 비밀번호 초기화를 요청합니다.