← 출시 가이드
SECRET-001 · EXPOSED-001 · 시크릿 보관

키 노출 고치는 법 — Vercel 환경변수 vs Infisical

AI 앱 출시 전 인증·데이터·키 보안을 점검하는 장면
작성·검토: LaunchGuard 편집팀 · 최초 발행 2026-08-22 · 최종 수정 2026-08-22 · 9분 읽기
결론 먼저 — 유출된 키는 먼저 rotate(폐기·재발급)합니다. 그다음 보관 위치를 고릅니다. 1인·단일 환경이면 Vercel(또는 호스트) 서버 전용 env만으로 충분한 경우가 많습니다. 팀 공유·dev/staging/prod 분리·자동 회전·접근 감사가 필요하면 Infisical 같은 시크릿 매니저를 옵션으로 둡니다. LaunchGuard는 Infisical을 호스팅하거나 SSO 연동하지 않으며, 검사·가이드만 제공합니다.

왜 클라이언트·공개 .env가 치명적인가

브라우저 번들이나 공개 URL의 /.env에 서버 전용 키가 있으면, 로그인 없이도 결제 시크릿·DB 관리자 키·AI API 키를 가져갈 수 있습니다. LaunchGuard는 이를 SECRET-001(클라이언트 노출)과 EXPOSED-001(민감 파일 공개)로 표시합니다. Supabase anon 키나 Stripe publishable(pk_)처럼 공개가 정상인 키는 잡지 않습니다.

파일을 지우고 도구를 바꿔도, 이미 복사된 키는 살아 있습니다. 그래서 보관 도구 이전보다 발급처에서 즉시 회전이 먼저입니다.

수정 순서 체크리스트

  1. Rotate — 발급처 대시보드에서 유출 키를 폐기하고 새 키를 발급합니다.
  2. Remove — 프론트 번들, HTML, NEXT_PUBLIC_/VITE_, 공개 .env·배포 산출물에서 서버 키 참조를 제거합니다.
  3. Server-only storage — 새 키를 서버 라우트·서버리스만 읽는 저장소에 둡니다 (아래 경로 A 또는 B).
  4. Verify — 빌드 산출물 grep, /.env·네트워크 탭 재확인, 공개 경로 404/403.
  5. Re-scanLaunchGuard 무료 요약 또는 유료 재검사로 SECRET/EXPOSED가 사라졌는지 확인합니다.

경로 A — Vercel·호스트 환경변수만

언제: 1인 개발, 키 개수가 적음, 프로젝트가 하나, 팀 공유·감사 로그가 급하지 않을 때.

주의: 공개 접두사 실수, 로그에 키 인쇄, Preview와 Production 키 혼용. 세부 점검은 Vercel 환경변수 보안 체크리스트를 따릅니다. /.env 파일 자체 노출은 .env 노출 가이드를 참고하세요.

경로 B — Infisical (옵션)

언제: 여러 사람이 같은 시크릿을 다루거나, dev/staging/prod를 엄격히 나누거나, 회전·접근 감사·CI/에이전트에 키를 직접 심고 싶지 않을 때.

하지 말 것: 클라이언트 SDK에 서버 시크릿을 주입하거나, Infisical을 썼다는 이유만으로 공개 경로의 .env를 방치하는 것. Infisical 서비스 토큰(st_)·클라이언트 시크릿도 서버 전용 비밀입니다 — 프론트엔드 번들에 있으면 프로젝트의 모든 시크릿이 탈취될 수 있고, LaunchGuard는 이를 SECRET-001로 탐지합니다. 도구 선택·계정·장애 책임은 고객 팀과 해당 서비스에 있습니다. 도구 선택·계정·장애 책임은 고객 팀과 해당 서비스에 있습니다. 제품 소개는 Infisical 홈페이지와 Secrets Management / Vercel 연동 문서를 확인하세요. LaunchGuard와 Infisical의 파트너십을 주장하지 않습니다.

비교 표

기준Vercel·호스트 envInfisical 등 시크릿 매니저
설정 난이도낮음중간
팀 공유·감사·회전기본 기능은 단순한 편운영 기능이 강한 편
비용·운영호스트에 포함되는 경우가 많음추가 도구·권한 설계
LaunchGuard 관점대부분 MVP·1인에 충분재발 방지·운영 성숙 단계 옵션
노출 방지의 본질도구 이름과 무관 — 클라이언트·공개 URL에 서버 시크릿이 없어야 함

LaunchGuard에서 이 finding이 뜨면

무료 요약은 “문제가 있다” 수준까지, 유료 상세 진단은 재현·수정 우선순위·AI 수정 프롬프트까지 제공합니다. 고친 뒤에는 같은 URL로 다시 스캔하세요.

FAQ

anon / publishable 키는?

공개가 정상인 키는 클라이언트에 둘 수 있습니다. 서버 전용 키만 서버 env 또는 시크릿 매니저로 옮기면 됩니다.

Infisical을 쓰면 검사 통과?

아니요. 노출이 없어야 통과에 가깝습니다. 도구는 보관 방식일 뿐입니다.

1인인데 Infisical 필수?

아닙니다. Vercel 서버 env로 시작하는 편이 단순합니다.

면책 — 이 글은 보안 인증·침투 테스트를 대체하지 않습니다. 키 원문을 채팅·이슈·스크린샷에 붙이지 마세요. 외부 도구 계정·설정·장애 책임은 해당 서비스와 고객 팀에 있으며, LaunchGuard는 출시 전 검사와 가이드만 제공합니다.

같이 보면 좋은 글

키·.env 노출이 있는지 먼저 확인하세요

URL만 넣으면 무료 예비 판정을 받을 수 있습니다. 가입 불필요.

무료 요약 받기

WHY TRUST THIS

섹션별로 비교할 때 확인하는 기준

“무료 요약은 URL만 — 비밀 값 저장 안 함”
“확인 못한 영역을 안전하다고 단정하지 않음”
검사 범위 · 재현 방법 공개
“유료 진단은 테스트 접근으로 인증·결제 재현”