Msty Nexus · 글 19편Msty Nexus
  1. Msty Nexus 설치부터 첫 요청까지
  2. Fleet으로 여러 기기 관리하기
  3. Providers에서 제공업체와 엔드포인트 연결하기
  4. Local Runtimes로 로컬 엔진 설치하고 관리하기
  5. Models에서 모델 카탈로그 관리하기
  6. Presets와 route pack으로 모델 설정 고정하기
  7. Smart Routes로 요청 나눠 보내기
  8. Smart Balancer로 여러 기기에 요청 분산하기
  9. Cluster로 여러 Mac을 묶어 큰 모델 돌리기
  10. Chat Lab으로 앱 연결 전에 시험하기
  11. Data Protection으로 민감 정보 걸러 내기
  12. 게이트웨이 API로 앱 연결하기
  13. Client Tokens로 앱별 접근 관리하기
  14. Teams로 팀별 기기 접근 정하기
  15. Usage, Gauge, Activity로 사용 현황 보기
  16. Nexus Settings 항목별 안내
  17. Nexus 보안 모델 이해하기
  18. Nexus 문제 해결
  19. Nexus 요금제별 기능 차이

이 글에서 다루는 것요청이 모델에 닿기 전에 개인정보와 비밀 값을 로컬에서 검사해 무시, 가림, 차단하는 Nexus Data Protection의 켜는 법, 종류별 동작, 규칙, 가림 방식, 프리셋과 Smart Route 적용을 정리합니다.

무엇을 하는 기능인가

Data Protection은 밖으로 나가는 요청에 개인정보나 비밀 값이 들어 있는지를, 요청이 기기를 떠나기 전에 검사합니다. 검사는 로컬 모델이 하고, 찾은 것을 어떻게 처리할지는 사용자가 정하며, 찾아낸 내용은 저장되지 않습니다.

업무 예를 들면(설명을 위한 예입니다), 직원이 고객 문의 메일을 그대로 붙여 넣고 답장 초안을 부탁할 때, 메일 속 전화번호와 주소는 가린 채 온라인 모델로 보내고, 카드 번호가 들어 있으면 요청 자체를 막는 식입니다.

기기마다 한 번 켭니다. 그다음 검사를 어디에 적용할지 고릅니다. 보호를 건 프리셋을 지나는 모든 요청, 고른 Smart Route의 특정 경로, 또는 둘 다입니다.

요금제에 관한 주의

Data Protection 문서 페이지에는 Enterprise 표시가 붙어 있고, 본문도 “명시적으로 부여된 Enterprise 자격(entitlement)이 필요하다”고 적었습니다. 문서 사이드바에도 Enterprise로 표시됩니다.

반면 Nexus 요금 페이지의 비교표는 Data Protection 행에 Free, Pro, Enterprise 세 칸 모두 포함 표시를 해 두었습니다. Pro 요금제 카드에도 “PII detection, key blocking”이 들어 있습니다.

두 공식 자료가 서로 다릅니다. 어느 쪽이 맞는지는 공개된 자료만으로 판단할 수 없습니다. 도입을 검토한다면 실제 앱의 Data Protection 화면에서 켤 수 있는지 확인하거나 Msty에 문의하는 것이 확실합니다.

무엇이 검사되는가

검사 대상은 가장 최근 메시지만이 아닙니다. 요청에 들어 있는, 지원되는 글 전체입니다.

  • 앞선 대화 턴
  • 시스템 글
  • 도구 입력
  • 프롬프트 변수

찾아낸 값은 “세부 정보의 종류(kind of detail)” 하나로 분류됩니다. 종류는 세 묶음으로 나뉩니다. Secrets(비밀 값), Personal details(개인 정보), Context(맥락)입니다.

다음은 항상 잡힙니다. 최소 신뢰도 설정이 적용되지 않습니다.

  • 유효한 카드 번호
  • IBAN
  • 미국 사회보장번호(SSN)
  • JWT
  • 개인 키(private key)
  • 알려진 비밀 값 접두어

한국 주민등록번호처럼 다른 나라의 식별 번호를 항상 잡는지는 공식 문서에는 설명이 없습니다.

요청 하나는 많아야 한 번만 검사됩니다. 프리셋과 Smart Route 경로가 둘 다 보호를 걸어도 두 번 검사하지 않습니다.

켜기

  1. Data Protection을 엽니다.
  2. Turn it on을 고릅니다.
  3. 개인정보 검사 모델이 내려받아지기를 기다립니다. 몇 분 걸리고, 화면을 떠나도 계속됩니다.

내려받기가 끝나면 화면에 On이 표시됩니다. 이 모델은 Runtime 안에서 돕니다. 별도의 로컬 런타임이나 제공업체가 필요 없고, 설정 과정에서 요청에 관한 어떤 것도 밖으로 나가지 않습니다. 설정 과정은 Data Protection setup이라는 작업으로 표시되어 Activity에서 볼 수 있습니다.

내려받기는 취소할 수 있고, 나중에 Data Protection을 제거할 수도 있습니다. 제거해도 보호 설정은 모두 남습니다. 그 뒤의 동작은 이렇게 갈립니다.

대상 Data Protection을 제거한 뒤
보호를 건 프리셋 다시 켤 때까지 요청이 막힙니다
보호를 건 Smart Route 경로 그 경로에 정해 둔 “검사 실패 시” 설정을 따릅니다

종류별 동작 정하기

종류마다 세 동작 가운데 하나를 고릅니다.

동작 결과
Ignore 글을 그대로 둡니다
Redact 요청이 계속 가기 전에 그 값을 빼냅니다
Block 요청 전체를 멈춥니다. DATA_PROTECTION_BLOCKED 오류가 납니다

처음 들어 있는 기본값입니다.

세부 정보의 종류 기본 동작
비밀번호와 키, 결제 정보, 식별 번호 Block
건강 정보, 연락처, 주소, 생년월일, 기기와 차량 정보 Redact
날짜와 시간, 나이, 조직, 웹 주소, 장소 Ignore

마지막 줄을 무시로 둔 이유도 문서에 있습니다. 모델이 이런 값을 지나치게 많이 잡아내기 때문입니다. 예를 들어 버전 번호가 날짜처럼 보일 수 있습니다.

종류별 동작은 Policy > Kinds of detail에서 바꿉니다. 이 화면에는 저장한 정책을 따르는 실시간 예시가 있어, 바꾼 효과를 기대기 전에 볼 수 있습니다. Reset to defaults는 기본 동작과 신뢰도를 되돌리고, 직접 만든 규칙은 남깁니다.

최소 신뢰도

모델이 충분히 확신해야 잡힌 것으로 칩니다. Minimum confidence는 50퍼센트에서 시작합니다. 낮추면 더 많이 잡고, 높이면 덜 표시합니다. 규칙과 내장 검사는 항상 확실한 것으로 취급되어 이 값으로 걸러지지 않습니다.

규칙(Rules)

규칙은 사용자가 직접 쓰는 패턴입니다. 우선순위는 이렇습니다.

  • 규칙의 동작은 모델이 찾은 것보다 우선합니다.
  • 허용(allow) 규칙은 다른 모든 일치보다 우선합니다. 그래서 요청에 꼭 남겨야 하는 글에 씁니다.

규칙 하나에 들어가는 것입니다.

항목 내용
패턴 정확한 글, 와일드카드, 정규식 가운데 하나로 일치
대소문자 구분 선택
효과 allow, redact, block
종류와 이름 일치한 것을 어느 종류로 보고할지, 그리고 선택 사항인 이름

쓰임새는 둘로 나뉩니다. 허용 규칙은 안전하다고 아는 글에 어울립니다. 프로젝트 코드명이나 사내 URL이 그렇습니다. 차단·가림 규칙은 모델이 놓칠 수 있는 글에 어울립니다. 계좌 번호나 라이선스 키가 그렇습니다.

가림(Redaction) 방식 두 가지

가림은 값을 지우는 것이 아니라 다른 것으로 바꿔 넣는 것입니다.

방식 바뀐 모습 특징
Placeholder [redacted: email] 같은 표지 가려진 이메일이 모두 똑같이 읽힙니다. 기본값입니다
Pseudonym [email-4f2a] 같은 대역 값마다 자기 대역을 갖고, 턴이 바뀌고 다시 시작해도 유지됩니다

Pseudonym의 장점은 모델이 “누가 누구인지”를 계속 따라갈 수 있다는 점입니다. 어떤 사람의 이메일이 [email-4f2a]가 되면 계속 [email-4f2a]로 남습니다.

Pseudonym을 쓰면, 게이트웨이가 응답이 사용자에게 닿기 전에 실제 값을 되돌려 넣을 수도 있습니다. 이렇게 되돌린 응답에는 X-Msty-Nexus-Data-Protection-Restored 응답 헤더가 붙어, 부르는 앱이 글이 고쳐졌다는 것을 알 수 있습니다. 게이트웨이는 어느 대역이 어느 값을 대신했는지를 그 요청이 살아 있는 동안만 기억하고 잊습니다.

프리셋에 보호 걸기

프리셋은 혼자서도 요청을 정리할 수 있습니다. 프리셋 설정에서 Remove personal information을 켜면, 대상 모델이 지원하는 경우 찾아낸 값이 요청이 기기를 떠나기 전에 빠집니다.

보호를 건 프리셋은 Data Protection이 켜져 있어야 합니다. 꺼져 있으면 프리셋이 그렇다고 알려 주고, 켤 때까지 그 프리셋의 요청은 막힙니다.

Smart Route에 보호 걸기

Smart Route는 경로마다 따로 정합니다. route에서 Data Protection을 열어 네 가지를 고릅니다.

정할 것 선택지
어떤 요청을 검사할지 각 선택지(lane), 기본 fallback, 이미지 fallback마다 체크 상자가 있습니다. route는 “4개 경로 가운데 2개 보호”처럼 실제 적용 범위를 그대로 알려 줍니다
민감 데이터를 찾았을 때 정리된 요청 보내기, 요청 막기, 민감 데이터용 경로로 보내기. 마지막 경우 대상 모델이나 Smart Balancer 풀, 그리고 그 대상이 정리된 요청과 원본 가운데 무엇을 받을지를 고릅니다. 그 대상을 쓸 수 없으면 막거나 fallback으로 가게 할 수 있습니다
검사를 돌릴 수 없을 때 Block이 안전한 기본값입니다. 원본을 보내는 것도 허용되지만, 의도적인 선택이어야 하고 실시간 경로 화면에 표시됩니다
fallback이 무엇을 받을지 이미 진행 중인 요청을 정리된 것으로 받을지 원본으로 받을지. 둘 다 명시적으로 정하며, Nexus가 스스로 바꾸지 않습니다

route는 자기 요청에 한해 기기 정책을 덮어쓸 수도 있습니다. 몇몇 종류의 동작을 바꾸거나, 신뢰도를 높이거나, 그 route에만 적용되는 규칙을 더하거나, 다른 가림 방식을 쓸 수 있습니다.

검사는 lane이 정해진 뒤, 그 대상을 부르기 전에 실행됩니다. 그래서 보호를 걸지 않은 경로는 검사 비용을 치르지 않습니다.

무엇을 찾았는지 보기

Data Protection 화면은 누적 기록을 보여 줍니다. 검사한 요청 수, 빼낸 세부 정보 수, 막은 요청 수, 원본으로 보낸 수, 그리고 어떤 종류가 나왔는지입니다. 수치만 있고 글 자체는 없습니다.

Smart Route의 실시간 경로 화면에서는 검사된 요청마다 다음을 볼 수 있습니다.

  • 검사가 무엇을 찾았는가
  • 모델이 얼마나 확신했는가
  • 어떤 값이 왜 그대로 남았는가
  • 요청이 어디로 갔는가

찾아낸 항목마다 그 자리에서 조치를 할 수 있습니다. 그 route에서 해당 종류를 무시하게 하거나, 표시된 글에 대한 허용 규칙을 만드는 것입니다.

Nexus를 여러 기기에서 돌린다면 Fleet insights가 모든 기기의 같은 수치를 보여 줍니다.

알아 둘 한계

  • 검사가 지원하는 언어, 한국어 개인정보의 인식 정확도는 공식 문서에는 설명이 없습니다. 도입 전에 실제 업무 문장으로 Policy > Kinds of detail의 실시간 예시를 시험해 볼 필요가 있습니다.
  • 프리셋의 개인정보 제거는 “대상 모델이 지원하는 경우”라는 조건이 붙어 있습니다. 어떤 모델이 지원하는지의 목록은 문서에 없습니다.

조직 차원의 보안 검토는 보안과 거버넌스도 함께 보세요.

참고한 문서