보안
이 페이지는 One Server가 지금 실제로 운영하는 보안 통제를 있는 그대로 설명합니다. 코드와 설정으로 확인할 수 있는 것만 적었고, 아직 없는 것은 없다고 적었습니다.
최종 갱신 2026-10-05
1. 인증 현황
회사는 현재 SOC 2 보고서나 ISO/IEC 27001 인증을 보유하고 있지 않습니다. 이 페이지의 어떤 내용도 외부 감사인의 검증을 받았다는 뜻이 아닙니다.
보안 질의서나 계약 검토가 필요하시면 [email protected]로 연락해 주세요.
2. 인프라와 데이터 위치
- 서비스는 Google Cloud 서울 리전(asia-northeast3)에서 운영되며, 이용자가 올린 데이터와 백업은 대한민국에 저장됩니다. 예외(결제, AI 에이전트)는 개인정보처리방침 6항에 있습니다.
- 지금은 한 대의 서버에서 운영됩니다. 서버 이중화와 자동 장애 조치는 아직 없어서, 그 서버가 멈추면 복구될 때까지 서비스도 멈춥니다.
- 현재 상태는 /status 에서 볼 수 있습니다.
3. 프로젝트 사이의 격리
- 프로젝트마다 데이터베이스 역할과 데이터베이스 로그인이 따로 있습니다. API는 프로젝트의 연결을 그 프로젝트 전용 로그인으로 열기 때문에, 한 프로젝트의 SQL이 다른 프로젝트의 역할로 바뀔 수 없습니다.
- 발급되는 토큰은 한 프로젝트에서만 유효합니다. 다른 프로젝트의 키로 올바르게 서명된 토큰도 거부됩니다.
- 고객의 역할이 닿는 플랫폼의 표에는 모두 행 단위 접근 규칙(RLS)이 걸려 있습니다.
- 이 격리는 코드가 바뀔 때마다 자동 테스트로 다시 확인됩니다.
4. 암호화
- 전송 구간 — 콘솔은 HTTPS로만 제공되며 HTTP 요청을 HTTPS로 돌려보내고 HSTS를 보냅니다. 배포된 사이트와 프로젝트 API는 HTTPS로 제공되지만 HTTP 요청을 자동으로 돌려보내지는 않습니다. 데이터베이스 직접 연결은 TLS를 요구합니다.
- 저장 구간 — 서버 디스크와 백업 버킷은 Google Cloud의 기본 저장 암호화로 암호화됩니다. 고객이 관리하는 키(CMEK)는 아직 지원하지 않습니다.
- 비밀 값 — OAuth 클라이언트 시크릿, 2단계 인증 시크릿, 업로드된 인증서의 개인 키 같은 값은 프로젝트별로 파생한 키로 AES-256-GCM 봉인한 뒤에 저장합니다. 데이터베이스 덤프만으로는 열 수 없습니다.
- 비밀번호와 토큰 — 비밀번호는 scrypt로 단방향 암호화하고, API 토큰과 초대 링크는 해시만 저장합니다.
5. 계정 보안
- 콘솔에 인증 앱(TOTP) 2단계 인증을 켤 수 있고, 조직은 모든 구성원에게 이를 요구할 수 있습니다. 복구 코드는 해시로만 저장하고, 한 번 쓴 코드는 다시 받지 않습니다.
- 가입하거나 비밀번호를 바꿀 때 유출된 비밀번호인지 확인합니다. 비밀번호 해시의 앞 다섯 글자만 보내고 나머지는 서버 안에서 비교합니다.
- 같은 계정으로 로그인이 계속 실패하면 잠시 막습니다.
- 조직 안의 권한은 owner, admin, developer, billing, viewer 다섯 역할로 나뉩니다.
6. 기록
- 조직의 중요한 변경은 감사 기록에 남습니다. 데이터베이스 트리거가 이 기록의 수정과 삭제를 거부하며, 플랫폼 자신의 서비스 권한도 예외가 아닙니다. 3년 보관한 뒤 파기합니다.
- 콘솔에서 개인정보(이용자 목록, 표, SQL, 백업 내려받기)에 접근할 때마다 접근 기록을 남깁니다. 2년 보관하며 조직이 직접 열람하고 내려받을 수 있습니다.
7. 운영자 접근과 변경 관리
- 운영자의 서버 접속은 Google Cloud IAP 터널과 Google 계정 인증(OS Login)을 거치도록 구성합니다.
- 코드는 자동 테스트를 통과한 커밋만 GitHub Actions가 배포합니다. Google Cloud에는 저장된 키 없이, 이 저장소에만 허용된 워크로드 아이덴티티 연동으로 인증합니다.
- 서버의 설정 값과 비밀은 서버 안의 접근이 제한된 파일에만 있고, 명령줄이나 저장소에는 두지 않습니다.
- 데이터베이스 이미지는 특정 버전으로 고정하고, 보안 패치를 정해진 절차로 올립니다.
8. 백업과 복구
- 매일 밤 데이터베이스와 파일을 별도의 백업 버킷(서울)에 백업합니다. 데이터베이스의 변경 기록(WAL)은 5분마다 버킷에 복사되고, 기준 백업은 매주, 서버 디스크 스냅샷은 매일 만들어 7개를 보관합니다.
- 백업 버킷은 지워지거나 덮어써진 백업도 일정 기간 보관합니다(버전 관리, 소프트 삭제).
- 매주 최신 백업을 격리된 임시 서버에 실제로 복원해 보는 리허설이 자동으로 돌고, 실패하면 운영자에게 알림이 갑니다.
- 유료 요금제 프로젝트는 최근 7일 안의 시점으로 복원할 수 있습니다.
- 서버 전체를 백업만으로 새로 만드는 복구는 아직 시간을 재 본 적이 없어서, 복구 목표 시간(RTO)을 약속하지 않습니다.
9. 모니터링과 장애 대응
- 데이터베이스, 백업, 복원 리허설, 디스크, 인증서, 오류율 같은 항목을 1분마다 검사하고, 문제가 확인되면 운영자에게 이메일과 웹훅으로 알립니다.
- 서버 밖의 서비스가 1분마다 서버의 신호를 받으며, 신호가 끊기면 그쪽에서 알립니다. 서버가 통째로 멈춰도 알 수 있게 하기 위해서입니다.
- 개인정보 유출을 알게 되면 개인정보 보호법에 따라 해당 이용자에게 알리고 신고합니다.
10. 위탁과 국외 이전
개인정보 처리를 맡긴 업체와 국외 이전은 개인정보처리방침 5항과 6항에 모두 적혀 있습니다.
11. 취약점 신고
보안 취약점을 발견하셨다면 [email protected]로 알려 주세요. 확인하는 대로 회신합니다. 기계가 읽을 수 있는 연락처는 /.well-known/security.txt 에 있습니다.