감사 회의를 여러 번 거쳐본 경험으로 SOC 2가 무엇인지 알게 되었습니다. 감사인은 AICPA 프레임워크를 사용하여 당신의 통제가 실제로 작동하는지 확인하며, 단순히 작동한다고 주장하는지만 확인하는 것이 아닙니다. 다섯 가지 신뢰 서비스 기준이 있습니다: 보안, 가용성, 처리 무결성, 기밀성, 개인정보 보호.
참고: AICPA SOC 2
신뢰 서비스 기준 매핑
| 신뢰 원칙 | 기준 | Rediacc 기능 |
|---|---|---|
| 보안 (CC6) | 논리적 접근 제어, 암호화 | 저장 데이터에 LUKS2 AES-256 암호화 적용. 자격증명은 운영자의 로컬 구성(~/.config/rediacc/)에만 저장되며 서버에는 저장되지 않습니다. SSH 키 기반 접근. 저장소별 격리된 Docker 데몬. |
| 가용성 (A1) | 시스템 복구 및 복원력 | SSH, S3, B2, Azure 또는 GDrive로 암호화된 오프사이트 복사본을 제공하는 rdc repo push/pull. 즉각적인 롤백을 위한 CoW 스냅샷. 무중단 변경을 위한 포크 기반 업그레이드. |
| 처리 무결성 (PI1) | 정확하고 완전한 처리 | 결정론적 Rediaccfile 라이프사이클 훅(up/down)이 일관된 배포를 보장합니다. rdc repo admin validate는 예기치 않은 종료나 백업 작업 후 저장소 무결성과 백업 상태를 검증합니다. |
| 기밀성 (C1) | 무단 접근으로부터 데이터 보호 | 고유 LUKS 자격증명을 사용한 저장소별 암호화. iptables, 별도의 Docker 데몬 및 루프백 IP 서브넷을 통한 네트워크 격리. 서로 다른 저장소의 컨테이너는 서로를 볼 수 없습니다. 제로 지식 구성 저장소는 업로드 전에 클라이언트 측에서 구성을 암호화합니다. 서버는 해독할 수 없는 불투명한 블롭만 저장합니다. |
| 개인정보 보호 (P1-P8) | 개인 데이터 처리 | 자체 호스팅: 작업 중 데이터 유출 없음. 모든 데이터 접근에 대한 감사 추적. 고객 제어 하의 암호화 키 관리. 구성 저장소는 분할 키 파생(패스키 PRF + 서버 시크릿)을 사용하므로 어느 한쪽만으로는 데이터에 접근할 수 없습니다. |
감사 추적
Rediacc는 사용자 작업, 시스템 변경, 구성 업데이트, 접근 제어 수정, 보안 이벤트, 포크 작업, 감사 추적 등 70개 이상의 다양한 이벤트 유형을 기록합니다. 많아 보일 수 있지만, 감사인은 실제로 이러한 정보를 확인하려고 합니다.
- 인증: 로그인, 로그아웃, 비밀번호 변경, 2FA 활성화/비활성화, 세션 취소
- 권한 부여: API 토큰 생성/취소, 역할 변경, 팀 멤버십
- 구성: 구성 저장소 push/pull, 멤버 관리, 접근 실패(IP 불일치, SDK 거부)
- 라이선스: 저장소 라이선스 발급, 머신 슬롯 추적, 구독 변경
- 머신 작업: 저장소 생성/시작/중지/삭제, 포크, 백업 push/pull, 파일 동기화, 터미널 세션
로그에 접근하는 방법은 두 가지입니다. 사용자, 팀, 날짜별 필터링이 가능한 관리자 대시보드. 조직 관리자를 위한 유형 및 날짜 필터링 포털 활동 페이지, 자신의 도구로 파이프할 수 있는 JSON 내보내기 포함. 머신 작업은 또한 시스템 로그에 기록되므로 다층 방어를 갖추게 됩니다.
변경 관리
포크는 변경 관리를 감사 가능하게 만듭니다. 프로덕션을 포크하면 라이브 상태의 복사본을 얻습니다. 테스트하고, 검토하고, 승격하거나 폐기할 수 있습니다. 각 단계는 타임스탐프되고 특정 인물과 연결됩니다. 이것이 감사인이 원하는 것입니다: 익명의 변경이 없어야 합니다.
- 프로덕션 저장소 포크(
rdc repo fork) - 포크에 변경사항 적용 및 테스트
- 포크 독립적 검증
- 포크를 프로덕션으로 승격(
rdc repo promote)
모든 단계가 기록되고, 타임스탐프되며, 특정 인물과 연결됩니다. ‘누가 이것을 변경했는지 모르겠다’는 말은 없습니다.
접근 제어
- 머신 접근: SSH 키 인증만 허용. 비밀번호 기반 SSH 없음.
- API 토큰: 범위 지정 권한, 선택적 IP 바인딩, 팀 제거 시 자동 취소.
- 저장소 격리: 각 저장소는 자체 Docker 데몬 소켓을 갖습니다. 한 저장소에 대한 접근이 같은 머신의 다른 저장소에 대한 접근을 부여하지 않습니다.
- 구성 저장소 토큰: 최초 사용 시 IP 바인딩이 있는 1회용 순환 토큰, 24시간 자동 만료, 동시성을 위한 3회 요청 유예 기간. X25519 키 교환을 통한 멤버 접근 관리와 즉각적인 취소 지원.