셀프 호스팅 보안 & 컴플라이언스(Security & Compliance for Self-Hosted Deployments)

셀프 호스팅 보안 & 컴플라이언스(Security & Compliance for Self-Hosted Deployments)

셀프 호스팅은 한 가지 이유로 존재해요: 여러분의 데이터와 그것을 보호하는 키가 결코 통제 밖으로 나가지 않게 하기 위해서예요. 모든 것이 여러분의 클라우드 계정 안, 선택한 리전, 여러분의 팀이 이미 관리하는 인프라에서 실행돼요. Confident AI는 그 중 아무것도 운영하지 않고 접근 경로도 없어요.

출처: 문서

본문

이 페이지는 보안 검토를 위해 작성됐어요. 어떤 데이터가 존재하고 어디에 있는지, 어떻게 암호화되는지, 앱이 클라우드에 어떻게 인증하는지, 네트워크가 어떻게 격리되는지, 네트워크 밖으로 무엇이 나가고 나가지 않는지, 배포가 컴플라이언스 프로그램에 어떻게 맞는지 다룹니다.

요약

여러분의 계정, 여러분의 데이터

모든 애플리케이션 데이터는 여러분의 프로젝트 안에서 프로비저닝된 클라우드 서비스에 있어요. Confident AI는 접근할 수 없고 아무것도 받지 않아요.

정적 자격 증명 없음

앱은 플랫폼 자체의 워크로드 아이덴티티로 클라우드에 접근해요. 저장하거나 유출할 액세스 키·서비스 계정 파일이 없어요.

기본적으로 비공개

데이터베이스와 캐시가 비공개 IP에 있어요. 인터넷에서 도달 가능한 것은 여러분이 결정해요.

업그레이드는 여러분이 통제

이미지는 버전 고정되고 업그레이드 시점을 여러분이 선택해요. 여러분 아래에서 아무것도 바뀌지 않아요.

소유권과 데이터 리전(리지던시)

Terraform 모듈이 데이터베이스, 객체 스토리지, 클러스터를 여러분의 계정과 선택한 리전에 프로비저닝해요. 데이터 플레인이 여러분 것이므로:

  • 데이터는 배포한 지리적 경계 안에 머물러요. 대부분의 데이터 주권(data-sovereignty)과 GDPR 요구사항이 요구하는 바죠.
  • Confident AI는 데이터를 읽거나, 복사하거나, 내보낼 수 없어요. 공유 컨트롤 플레인도, 애플리케이션 데이터의 phone-home도 없어요.
  • 배포를 삭제하면 데이터도 함께 삭제돼요. 수명주기를 처음부터 끝까지 여러분이 소유해요.

어떤 데이터가 존재하고 어디에 사는지

모든 저장소는 Terraform이 여러분의 계정에 만든 서비스예요. 그 밖에는 아무것도 저장되지 않아요.

데이터 저장소 참고
프로젝트, 사용자, 설정, 평가 결과 PostgreSQL (RDS / Cloud SQL / Flexible Server) 비공개 IP, 관리형 백업
트레이스와 스팬 ClickHouse, 클러스터 내부 암호화된 볼륨이 뒷받침; 선택적 백업 버킷
데이터셋과 업로드 파일 객체 스토리지 (S3 / GCS / Blob) 비공개, 저장 중 암호화
캐시, 큐, 세션 Redis, 클러스터 내부 또는 관리형 일시적 작업 데이터. 기록 시스템이 아님
시크릿 클라우드 시크릿 스토어 또는 Kubernetes Secret 시크릿 관리 참고

암호화

데이터는 클라우드 제공자의 네이티브 서비스를 사용해 전송 중·저장 중 모두 암호화돼요. 암호화 키는 여러분의 계정에 있고, Confident AI는 결코 보관하지 않아요.

계층 메커니즘
전송 중 (외부) 여러분이 통제하는 인증서로, 여러분의 인그레스에서 종료되는 TLS 1.2+
전송 중 (내부) 트래픽은 클러스터 네트워크와 여러분의 VPC·VNet 안에 머물러요
저장 중 (데이터베이스) 클라우드 관리 암호화: AWS KMS, GCP Cloud KMS, 또는 Azure 플랫폼 키
저장 중 (객체 스토리지) 모든 버킷·컨테이너에 제공자 기본 암호화
저장 중 (볼륨) ClickHouse·Redis용 암호화 영구 디스크 (AWS에서 예: encrypted: true인 gp3)
시크릿 클라우드 시크릿 스토어에 암호화, 또는 클러스터의 암호화가 뒷받침하는 Kubernetes Secret

키 관리

옵션 의미 좋은 경우
클라우드 관리 키 제공자가 키를 만들고 회전함 대부분의 배포
고객 관리 키 서비스가 쓰는 KMS 키를 여러분이 만들고 통제함 키 보관(custody) 요구가 있는 규제 워크로드

클라우드 관리 키가 대부분의 요구를 기본으로 충족해요. 고객 관리 키는 운영 오버헤드를 추가하지만 완전한 보관과 폐기(revocation) 통제를 줘요.

아이덴티티와 접근

앱은 플랫폼 자체 아이덴티티 시스템으로 클라우드에 인증하므로, 회전하거나 잃을 정적 값이 없어요:

클라우드 메커니즘 결과
AWS EKS Pod Identity IAM 역할이 앱의 Kubernetes ServiceAccount에 바인딩됨. 액세스 키, IRSA·OIDC 연결 없음.
GCP GKE Workload Identity Google 서비스 계정이 ServiceAccount에 바인딩됨. JSON 키 파일 없음.
Azure Blob용 연결 문자열, 애드온용 Workload Identity Blob 접근은 시크릿으로 보관된 연결 문자열을 사용. AKS는 External Secrets Operator와 Key Vault를 위해 Workload Identity를 유지.

각 역할이 보유한 권한은 앱이 필요로 하는 정확한 것(자체 데이터베이스, 자체 버킷, 선택적 코드 실행기)으로만 스코프가 제한돼요. Terraform 모듈에 정의되어 있어, 적용 전에 읽고 정책이 더 엄격하다면 조정할 수 있어요.

이미지 풀 자격 증명

관여하는 유일한 자격 증명은 Confident AI 레지스트리에서 퍼스트파티 컨테이너 이미지를 가져오는 것이에요. 차트는 이미지 풀에만 사용하고, 스테일해지지 않도록 일정에 따라 갱신하며, 데이터나 클라우드 API에 대한 접근을 부여하지 않아요. 완전 오프라인 환경에서는 이미지를 여러분의 레지스트리로 미러링해 외부 풀이 필요 없게 할 수 있어요.

인증과 권한 부여

사용자는 이메일·비밀번호, Google OAuth, 또는 SAML·OIDC를 통한 SSO 제공자로 로그인할 수 있어요. 접근 통제:

  • SSO 요구: config.disableNonSsoLogin: true로 비밀번호 로그인을 끄고 모든 인간 사용자를 여러분의 아이덴티티 제공자로 라우팅해요. 중앙 집중식 접근 통제, MFA 적용, 그리고 누군가 떠날 때의 프로비저닝 해제를 얻죠.
  • API 키: 프로그래매틱 접근은 프로젝트 스코프 키를 사용해요. 각 키는 단일 프로젝트에 묶이고, 언제든 폐기 가능하며, 설정을 바꾸거나 사용자로 동작할 수 없어요.
  • 역할: 접근은 프로젝트별로 조직돼서 팀이 멤버인 프로젝트만 볼 수 있어요.
  • 감사 로그: 사용자·관리 작업이 기록되어 클라우드 제공자의 자체 감사 추적과 함께 앱에서 조회할 수 있어요.

시크릿 관리

애플리케이션 시크릿(데이터베이스 URL, 인증 서명 시크릿, LLM 키, 라이선스 키)을 보관하는 지원 방법은 두 가지예요:

  1. External Secrets Operator와 클라우드 시크릿 스토어 (프로덕션 권장): 시크릿이 AWS Secrets Manager, GCP Secret Manager, 또는 Azure Key Vault에 있고, ESO가 앞서 설명한 같은 키리스 워크로드 아이덴티티로 클러스터에 동기화해요. 값 회전은 시크릿 스토어에 한 번 쓰는 것뿐이고, ESO가 스스로 재동기화해요.
  2. Kubernetes Secret: 차트가 제공한 값에서 Secret을 렌더링해요. 클라우드 시크릿 스토어를 쓰지 않는 소규모·에어갭 설정에 적합해요.

ClickHouse 비밀번호는 두 경우 모두 별도의 클러스터 내부 시크릿이에요. 시크릿은 로그에 절대 기록되지 않아요.

네트워크 아키텍처

모듈은 여러분이 이미 소유한 VPC·VNet 안에 배포되고, 민감 컴포넌트는 그 안의 비공개 IP에 있어요:

컴포넌트 배치 도달 가능 대상
애플리케이션 파드 비공개 서브넷 여러분의 인그레스만
PostgreSQL 네트워크 안의 비공개 IP 클러스터만
관리형 Redis (선택) 비공개 IP 또는 비공개 엔드포인트 클러스터만
객체 스토리지 기본 암호화가 있는 제공자 비공개 앱의 워크로드 아이덴티티
클러스터 API 엔드포인트 공개 또는 비공개, 선택 여러분(공개) 또는 배스천·VPN(비공개)
인그레스 내부 또는 인터넷 연결, 선택 여러분의 사용자
  • 노드는 비공개 서브넷에서 실행되고 NAT 게이트웨이를 통해서만 인터넷에 도달해요.
  • 공개 클러스터 API 엔드포인트(노트북에서 kubectl, helm 실행하기 편함) 또는 배스천·VPN으로 도달하는 비공개 전용 엔드포인트 중 선택해요.
  • 완전 비공개 배포용 내부 인그레스 로드 밸런서, 또는 정상 웹 연결 설정용 TLS가 있는 인터넷 연결 중 선택해요. 어느 것도 강요되지 않아요.

네트워크 밖으로 나가는 것

아웃바운드 트래픽은 제한적이고 예측 가능해요:

대상 목적 필요한 경우
여러분의 LLM 제공자 호스팅 모델로 평가 실행 호스팅 모델을 쓰는 경우에만
Confident AI 레지스트리 컨테이너 이미지 가져오기 설치·업그레이드 시에만; 미러링 가능
Slack 또는 이메일 알림과 리포트 선택

이그레스가 잠겨 있다면, 사용하는 LLM 엔드포인트(예: api.openai.com, *.openai.azure.com, api.anthropic.com)만 허용 목록에 넣거나, 평가를 셀프 호스팅 모델로 지정해 외부 호출을 아예 없애요. Confident AI로 보내는 텔레메트리나 사용 데이터는 없어요.

완전 에어갭 배포

아웃바운드 인터넷 접근이 없는 환경을 위해, Confident AI는 오프라인 이미지 전달과 평가용 셀프 호스팅 LLM 옵션을 제공하고, 라이선스 키는 라이선스 서버 호출 없이 클러스터 안에서 검증돼요. 에어갭 롤아웃은 플랫폼 팀과 상담하세요.

소프트웨어 공급망

  • 퍼스트파티 이미지: 모든 워크로드는 Confident AI가 만들고 게시한 이미지를 실행하며, 단일 알려진 레지스트리에서 가져와요.
  • 버전 고정: 차트 버전(--version)을 고정해요. 특정 앱 릴리스를 번들해요. 아무것도 자체 업데이트하지 않고, 새 차트 버전으로 helm upgrade를 실행할 때만 업그레이드가 일어나요.
  • 라이선스 키: 기능은 클러스터 안에서 검증되는 서명된 라이선스 키로 게이트돼요. 라이선스 서버로 호출하지 않고, 데이터에 도달하는 데 쓸 수 없어요.

백업과 내구성

  • 데이터베이스: 관리형 PostgreSQL 서비스가 자동 백업을 수행하고 고가용성을 지원해요 (RDS Multi-AZ, Cloud SQL 리전 HA, Flexible Server zone-redundant HA). 삭제 보호가 제공되며 프로덕션에서 권장돼요.
  • 객체 스토리지: S3, GCS, Blob이 제공자 수준 내구성과 버전 관리 옵션을 제공해요.
  • ClickHouse: 영구 볼륨에서 실행되며, 선택적으로 내보내기용 백업 버킷이 있어요.
  • Redis: 캐시·큐 상태를 담고, 기록 시스템이 아니므로 잃어도 안전해요.

감사와 로깅

  • 클라우드 네이티브 감사: Terraform과 앱이 클라우드에 취하는 모든 행동이 제공자의 감사 서비스(AWS CloudTrail, GCP Cloud Audit Logs, Azure Monitor)에, 여러분의 계정 안에서 기록돼요.
  • 애플리케이션 감사 로그: 사용자·관리 행동이 앱에서 캡처돼요.
  • 워크로드 로그: 파드 로그가 클러스터 로깅으로 흐르고 기존 로그 플랫폼으로 보낼 수 있어요.

트레이싱 구성 방식에 따라 애플리케이션 로그가 사용자 제공 콘텐츠(프롬프트와 응답)를 담을 수 있어요. 로그를 클러스터 밖으로 보내기 전에 로깅·마스킹 규칙을 검토하세요.

컴플라이언스

배포가 여러분의 계정과 리전 안에 살기 때문에, 평가할 새 처리자(processor)를 도입하기보다는 기존 컴플라이언스 프로그램에 맞아요.

프레임워크 셀프 호스팅이 어떻게 도움
SOC 2 기존 SOC 2 경계 안에서 실행되고 여러분의 통제를 상속함
HIPAA PHI가 클라우드 제공자의 BAA 아래 준수 환경에 머물러요
GDPR 데이터가 선택한 리전에 있고, 보존·삭제를 여러분이 통제해요
FedRAMP ATO 아래 승인된 리전에 배포
데이터 주권 데이터가 배포한 지리적 경계를 절대 넘지 않아요

보존과 삭제는 여러분의 통제 아래 있어요: 트레이스·데이터셋·로그를 얼마나 오래 보관할지 결정하고, 데이터 제거는 여러분이 소유한 서비스에 대한 직접 작업이에요.

보안 검토 체크리스트

배포를 승인하기 전에 보안 팀이 Infrastructure·Deploy 가이드에 대비해 각 항목을 확인할 수 있어요:

  • 클러스터 API 엔드포인트가 정책에 따라 공개·비공개로 설정됨
  • 인그레스가 정책에 따라 내부·인터넷 연결로, 여러분이 통제하는 인증서로 TLS
  • 데이터베이스, 캐시, 객체 스토리지가 비공개 확인
  • 암호화 키 검토 (클라우드 관리 또는 고객 관리)
  • 워크로드 아이덴티티 권한이 Terraform 모듈에서 검토됨
  • 시크릿 스토어 선택 (ESO와 클라우드 시크릿 스토어, 또는 Kubernetes Secret) 및 회전 이해
  • 인증 방법 선택 (SSO 요구, 또는 이메일·OAuth 허용)
  • LLM 제공자용 아웃바운드 허용 목록 승인, 또는 셀프 호스팅 모델 선택
  • 백업·보존 설정이 요구사항과 일치
  • 감사 로그 전송이 기존 플랫폼에 연결됨

다음 단계

AWS에 배포

GCP에 배포

Azure에 배포

더 알아보기