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