Skip to content

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 포함
FirebaseFirebase(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단계 병행):
    1. Bitwarden 공유 볼트.env.keys 평문 키를 인수자(알렉스앤앨리스 담당자)를 공유 볼트 멤버로 추가하여 전달
    2. GCP Secret Manager 권한 위임 — 인수자 계정에 roles/secretmanager.secretAccessor를 부여. prod 런타임은 Secret Manager(DOTENV_PRIVATE_KEY_SECRETS_PRODUCTION)에서 키를 읽으므로, 로컬 평문 키 없이도 prod 배포·운영 가능
    • ⚠️ 평문 키를 이메일/메신저로 보내지 말 것 (전송 중 탈취 위험). 위 2가지 경로만 사용.
  • 시크릿 회전 정책: 없음.
  • 출처: ARCHITECTURE.md §환경 변수, README.md Secret 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는 이미 알렉스앤앨리스 소유.