← 목록으로

teamai 키 노출 점검 — 실제로 하실 일은 2개

2026-08-18 점검. 저장소 전체를 훑고, 발견된 키를 실제로 호출해 살아있는지 확인했습니다.
죽은 키를 재발급하는 헛수고를 없애려고 전부 실측했습니다.


결론: 재발급이 필요한 키는 2개뿐입니다

실측 결과 조치
Supabase service_role 🔴 살아있음 (HTTP 200) 재발급 필요
Supabase 액세스 토큰 🔴 살아있음 (HTTP 200) 재발급 필요
OpenAI 키 ✅ 이미 죽음 (401) 조치 불필요
FAL 키 ✅ 이미 죽음 (401) 조치 불필요
옛 Supabase 프로젝트 키 ✅ 프로젝트 자체 삭제됨 조치 불필요
Apple 서명 개인키 ⚠️ 확인 불가 콘솔에서 상태 확인만

프로젝트가 오래돼 그 사이 OpenAI·FAL 키는 이미 교체되셨던 것으로 보입니다.
저장소에 남은 건 껍데기라 위험하지 않습니다.


1. Supabase service_role 키 — 가장 급합니다

무엇이 문제인가
지금 운영 중인 프로젝트(team-ai)의 service_role 키가 저장소 12개 파일에 그대로 박혀
GitHub에 커밋돼 있습니다. 이 키는 모든 데이터 접근 보안규칙(RLS)을 무시하고
DB 전체를 읽고 수정하고 삭제할 수 있는 최고 권한 키입니다.

어디서 바꾸나
Supabase 대시보드 → team-ai 프로젝트 → Settings → API → Project API keys →
service_roleReset / Generate new key

바꾼 뒤
새 키를 알려주시면 제가 .env에 반영하고, 저장소에 박힌 12곳을 환경변수 참조로 정리하겠습니다.

박혀 있는 파일 (전부 git 추적됨)
scripts/run_enrich.ts · scripts/enrich_visual_data.ts · scripts/fix_avatar_url.ts ·
scripts/find_diet_crew.ts · scripts/apply_visual_fields.ts · scripts/export_experts_csv.ts ·
scripts/parallel_generate_premium.sh · scripts/parallel_generate_remaining.sh ·
scripts/batch_generate_premium.sh · scripts/validate_remaining.sh ·
scripts/archive/tests-legacy/test_push.ts · scripts/archive/tests-legacy/synergy_eval_test.ts


2. Supabase 액세스 토큰

무엇이 문제인가
Supabase 계정 전체를 관리하는 토큰입니다. 프로젝트 생성·삭제까지 가능합니다.
저장소 3개 파일에 박혀 있습니다.

어디서 바꾸나
supabase.com → 우측 상단 계정 → Access Tokens → 기존 토큰 Revoke → 새로 발급


3. Apple 서명 개인키 — 확인만 해주세요

lib/AuthKey_KXD92Y2WLM.p8 파일이 저장소에 평문으로 커밋돼 있습니다.
Apple 로그인·푸시 알림 서명에 쓰이는 개인키입니다.

제가 유효한지 테스트할 방법이 없어 상태를 못 알려드립니다.

확인 방법
developer.apple.com → Certificates, Identifiers & Profiles → Keys →
Key ID KXD92Y2WLM 이 아직 살아있는지 확인

살아있으면 Revoke 후 새 키를 발급받아 주세요.
(새 키 파일은 저장소 밖에 두셔야 합니다 — 제가 위치를 잡아드리겠습니다.)


지금 밖으로 새고 있는 것은 없습니다

공개 미리보기 주소(dev-take-5.the-moment.us)가 내보내는 값은
SUPABASE_URLanon 키 둘뿐입니다. 이 둘은 원래 공개용으로 설계된 값이라
노출돼도 문제없습니다(데이터 보호는 RLS가 담당).

service_role·액세스 토큰·OpenAI 키는 공개 주소로 나간 적이 없습니다.
FAL 키가 잠시 나갔으나 제거했고, 어차피 죽은 키였습니다.


제가 이미 조치한 것

남은 근본 문제 (재발급 끝난 뒤 처리)

pubspec.yaml.env 파일을 앱 자산으로 등록해 놔서, 웹으로 빌드하면 .env
통째로 번들에 실려 나갑니다.
지금은 제가 서빙 단계에서 걸러 막아뒀지만,
이 상태로 누가 그냥 배포하면 service_role 키까지 전부 공개됩니다.

구조를 바꿔야 하는 일이라 키 재발급 이후에 손대는 게 순서입니다.


정리 — 형이 하실 일

  1. Supabase service_role 키 재발급 (대시보드 → Settings → API)
  2. Supabase 액세스 토큰 재발급 (계정 → Access Tokens)
  3. Apple 키 KXD92Y2WLM 상태 확인 (살아있으면 revoke)

새 키를 알려주시면 .env 반영과 저장소 정리는 제가 하겠습니다.