폐쇄망 AI 제품에서 보안 배포는 부가 기능이 아니다. 고객 환경에서는 외부 API를 호출할 수 없고, 모델과 실행 파일이 현장 장비 안에서 동작해야 한다. 이때 제품 신뢰는 모델 성능만으로 만들어지지 않는다. 어떤 파일이 포함됐고, 어떤 이름으로 노출되며, 런타임에서 어떤 역할로 매핑되는지까지 모두 제품 경험이 된다.
모델 파일을 암호화했더라도 manifest에 사람이 읽을 수 있는 모델명이 그대로 남아 있다면 제품의 의도와 구현은 어긋난다. 반대로 파일 이름, manifest, runtime role mapping이 서로 다른 계약을 바라보면 보안은 올라가도 실행 안정성은 떨어진다.
보안과 사용성은 같은 배포 경로에서 증명된다
보안 배포를 설계할 때는 개발용 빌드가 아니라 실제 고객 패키지 경로에서 검증해야 한다. 제품 포장 스크립트, shared build workflow, runtime loader가 같은 계약을 공유하는지 봐야 한다. 고객이 실행할 경로와 다른 곳에서만 테스트하면 가장 중요한 실패를 놓친다.
로컬 실행 환경의 체크리스트
- 모델 파일명과 manifest가 모델 정체를 불필요하게 드러내지 않는가.
- 런타임 role mapping이 build manifest의 키와 정확히 맞는가.
- 암호화된 artifact를 복호화하지 못할 때 오류 메시지가 운영자가 이해할 만큼 명확한가.
- 외부 API 없이도 라이선스, 모델, 설정, 로그 경로가 모두 닫힌 환경에서 확인되는가.
좋은 보안 배포는 숨기는 데서 끝나지 않는다. 운영자가 실패를 확인하고, 고객이 신뢰할 수 있으며, 엔지니어가 다음 버전을 안전하게 낼 수 있는 반복 가능한 경로를 만든다.