보안 개요
Connect Base는 엔터프라이즈급 보안을 기본으로 제공합니다.
보안 원칙
1. 심층 방어 (Defense in Depth)
여러 계층의 보안 메커니즘을 통해 시스템을 보호합니다.
- 네트워크 레벨: WAF, DDoS 방어
- 애플리케이션 레벨: 입력 검증, 출력 인코딩
- 데이터 레벨: 암호화, 접근 제어
2. 최소 권한 원칙
필요한 최소한의 권한만 부여합니다.
- 클라이언트(브라우저)에는
cb_pk_*(Public Key)만 사용 - 서버에서만
cb_sk_*(Secret Key) 사용 - 콘솔에서 키별로 활성/비활성 토글로 접근 통제
3. 제로 트러스트
모든 요청을 검증하고, 암묵적 신뢰를 하지 않습니다.
보안 기능
| 기능 | 설명 |
|---|---|
| API 키 관리 | cb_pk_* / cb_sk_* 두 종류 키, 콘솔에서 발급/폐기 |
| CORS 설정 | 콘솔에서 허용 도메인 등록 |
| Rate Limiting | 플랜별 호출 한도 + 429 응답 |
| 데이터 암호화 | TLS 1.3 (in transit) + AES-256 (at rest) |
| 필드 레벨 암호화 | 컬럼 생성 시 encrypted: true 옵션 |
인증 방식
SDK 사용 (권장)
typescript
import ConnectBase from 'connectbase-client'
const cb = new ConnectBase({
publicKey: import.meta.env.VITE_CONNECT_BASE_PUBLIC_KEY // cb_pk_...
})
// 인증된 요청
const result = await cb.database.getData('tbl_xxx')REST API 직접 호출
Public Key는 X-Public-Key 헤더로 전달합니다.
bash
curl -X GET "https://api.connectbase.world/v1/public/tables/tbl_xxx/data" \
-H "X-Public-Key: cb_pk_your_public_key"앱 멤버 JWT 는 Authorization: Bearer 헤더로 전달합니다.
bash
curl -X GET "https://api.connectbase.world/v1/public/app-members/me" \
-H "Authorization: Bearer eyJhbGciOi..."보안 체크리스트
- 클라이언트 빌드에
cb_sk_*(Secret Key)가 포함되지 않음 - CORS 허용 도메인이 콘솔에 명시적으로 등록됨
- HTTPS만 사용 (Connect Base는 HTTPS 강제)
-
.env파일이.gitignore에 포함됨 - 정기적인 키 로테이션
- 감사 로그(콘솔의 Logs 메뉴) 모니터링