7. 보안 & 접근 권한 이전
핸드오프의 가장 중요한 장. 계정·권한·시크릿 인벤토리와 실제 이전 항목.
7.1 계정 / 소유권 인벤토리
⚠️ 법인 2곳이 인프라를 분리 소유합니다 (인계 시 핵심):
- 열정팩토리: dev 환경(GCP spective-dev), CI 인프라(AWS)
- 알렉스앤앨리스 주식회사: prod 환경(GCP spective-prod), Cloudflare, 도메인/DNS, 토스PG, Resend(이메일)
prod·외부서비스 계정은 이미 알렉스앤앨리스(인수 주체)가 소유합니다. 따라서 이 항목들은 별도 이전이 불필요하며, 알렉스앤앨리스가 자체 처리합니다. 열정팩토리가 인계하는 것은 소스코드 + 운영 지식뿐입니다.
| 자산 | 제공자 | 소유 법인 | 인계 처리 | 비고 |
|---|---|---|---|---|
| 소스 저장소 | GitHub (chatbot-pf/spective) | — | 소스코드 형태로 전달 (권한 이전 없음) | |
| 클라우드(dev) | GCP spective-dev | 열정팩토리 | 이전 없음 (일정 기간 후 폐기) | |
| 클라우드(prod) | GCP spective-prod | 알렉스앤앨리스 | 알렉스앤앨리스 자체 보유 | Billing 포함 |
| Firebase | Firebase | (GCP에 통합) | prod GCP에 종속 — 알렉스앤앨리스 | |
| CDN/렌더링 | Cloudflare | 알렉스앤앨리스 | 알렉스앤앨리스 자체 보유 | 현재 Browser Rendering(PDF)만 사용 |
| CI 인프라 | AWS (RunsOn/S3) | 열정팩토리 | 이전 없음 | self-hosted 러너·빌드 캐시 |
| 도메인/DNS | (알렉스앤앨리스 관리) | 알렉스앤앨리스 | 알렉스앤앨리스 자체 보유 | |
| 결제 PG | 토스PG | 알렉스앤앨리스 | 알렉스앤앨리스 자체 보유 | 가맹점/정산 알렉스앤앨리스 |
| 이메일 발송 | Resend | 알렉스앤앨리스 | 알렉스앤앨리스 자체 보유 | lib/resend.ts (§4.4) |
| 데이터베이스 | Supabase (Postgres, Seoul) | 알렉스앤앨리스 | 알렉스앤앨리스 자체 보유 | 서비스 데이터. 백업 정책 §6.4 |
| 협업(Notion/Asana) | — | — | 해당 없음 |
정리: 인계 시 열정팩토리 → 알렉스앤앨리스로 새로 넘길 계정은 없음. prod·외부서비스는 알렉스앤앨리스가 이미 보유·운영. 인계자가 단독 보유했던 prod 접근 권한(이민수)과 dotenvx 키만 알렉스앤앨리스 담당자에게 넘기면 됨 (§7.2~7.3).
⚠️ GitHub 권한 이전 없음: 인수자는 저장소 접근 권한이 아니라 소스코드 사본을 받습니다. 인계 체크리스트(0장)도 이 정책에 맞춰 "소스코드 전달(GitHub 권한 이전 아님)"으로 기재되어 있습니다.
7.2 시크릿 관리
- dotenvx:
.env(공통) +.env.secrets.{environment}(암호화),.env.keys는 미커밋 - Secret Manager:
DOTENV_PRIVATE_KEY_SECRETS_DEVELOPMENT/..._PRODUCTION - 복호화 키 보관처: Bitwarden 공유 볼트. (과거 이민수 개인 PC 단독 보관 → 볼트 이관)
- 인계 방법 (결정됨, 2단계 병행):
- Bitwarden 공유 볼트 —
.env.keys평문 키를 인수자(알렉스앤앨리스 담당자)를 공유 볼트 멤버로 추가하여 전달 - GCP Secret Manager 권한 위임 — 인수자 계정에
roles/secretmanager.secretAccessor를 부여. prod 런타임은 Secret Manager(DOTENV_PRIVATE_KEY_SECRETS_PRODUCTION)에서 키를 읽으므로, 로컬 평문 키 없이도 prod 배포·운영 가능
- ⚠️ 평문 키를 이메일/메신저로 보내지 말 것 (전송 중 탈취 위험). 위 2가지 경로만 사용.
- Bitwarden 공유 볼트 —
- 시크릿 회전 정책: 없음.
- 출처:
ARCHITECTURE.md§환경 변수,README.mdSecret Manager
7.3 권한 · 역할(IAM)
- 서비스 계정:
firebase-adminsdk-fbsvc@spective-{dev,prod}.iam(AR writer, run.admin, serviceAccountUser) - Compute 서비스 계정: Secret Accessor
- 초기 IAM 바인딩 명령 →
README.md에서 이관 - prod 접근 권한 보유자: 현재 이민수 단독. 인계 시 알렉스앤앨리스 측 담당자로 권한 이양 필요.
- GitHub Secrets(5.5 표): 이전하지 않음 — 인수 측이 자체 환경에서 신규 발급. (소스코드만 전달하므로 기존 Secrets·러너·캐시는 열정팩토리 잔류)
인계 구조 요약: 열정팩토리(개발사)가 알렉스앤앨리스(서비스 소유사)에게 소스코드 + prod 운영 지식을 전달하는 형태. dev 환경과 CI 인프라(GitHub/AWS)는 열정팩토리 자산으로 인계 대상이 아니며, dev는 일정 기간 후 폐기. prod는 이미 알렉스앤앨리스 소유.