피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Docker 기반 Supabase 자가 호스팅을 통한 데이터 주권 확보 및 보안 강화 설계
Self-Hosting Supabase on a Linux Server
AI 요약
Context
Firebase의 오픈소스 대안인 Supabase를 Cloud 서비스 대신 Linux 서버에 직접 구축하여 데이터 주권 확보와 비용 최적화를 추구함. Docker Compose를 통한 빠른 배포가 가능하지만, 기본 설정 시 Kong API Gateway가 공인 인터넷에 직접 노출되어 심각한 보안 취약점이 발생하는 한계가 있음.
Technical Solution
- Docker Compose 기반의 Postgres, GoTrue, PostgREST, Kong 등 마이크로서비스 스택 통합 배포
- JWT_SECRET 기반의 ANON_KEY 및 SERVICE_ROLE_KEY 생성을 통한 API 접근 제어 및 인증 체계 구축
- 공인 인터넷 노출을 차단하기 위해 TLS terminated reverse proxy를 최상단에 배치하고 내부 포트 접근을 제한하는 망 분리 구조 설계
- Postgres의 Row Level Security(RLS) 강제 활성화를 통한 데이터베이스 계층의 세밀한 접근 권한 제어
- Supabase Studio의 외부 접근을 차단하기 위해 VPN, IP Allowlist 또는 SSH Tunneling을 적용한 관리 도구 격리
실천 포인트
- [ ] .env.example의 기본값 제거 및 generate-keys.sh를 통한 고유 Secret Key 생성 확인 - [ ] 모든 Postgres 테이블에 대해 'ALTER TABLE ... ENABLE ROW LEVEL SECURITY' 명령 수행 여부 점검 - [ ] 외부 노출 포트를 80/443으로 제한하고 Kong 및 Studio 포트의 외부 접근 차단 설정 - [ ] 주기적인 'docker compose pull'을 통한 보안 패치 및 이미지 업데이트 프로세스 수립