Schema Collector¶
Schema Collector는 데이터베이스 스키마를 사전에 수집해 Hub에 등록하는 운영 도구다. 주 목적은 Wrapper를 실제 배포하기 전에 스키마와 컬럼 구조를 미리 수집해, Hub에서 정책 매핑을 준비할 수 있게 하는 것이다.
Schema Collector는 자동 동기화를 보완하는 안전한 운영 도구다
Wrapper는 기본적으로 Hub에서 필요한 정책과 endpoint 정보를 동기화한다. 재기동 직후 첫 요청 타이밍을 더 안전하게 관리하려면 Schema Collector로 스키마를 미리 등록하고, Hub에서 정책을 준비한 뒤, refresh 결과를 선반영하는 방법을 사용할 수 있다.
사용하는 이유¶
Schema Collector를 사용하면 운영자는 Wrapper 기동 전에도 다음 작업을 준비할 수 있다.
- 데이터베이스 스키마 구조 파악
- 암복호화 대상 컬럼 후보 식별
- Hub에서 정책 매핑 사전 준비
- 동일
alias를 사용하는 Wrapper runtime과의 매핑 공유 - 사용자 트래픽 유입 전에 Wrapper storage를 채우는 보조 절차 마련
동작 모델¶
- 도구가 대상 데이터베이스에 접속한다.
- 스키마와 컬럼 메타데이터를 수집한다.
- 암복호화 대상이 아닌 컬럼은 제외 규칙으로 걸러낸다.
- Hub 등록 모드라면 수집 결과를 alias와 함께 Hub에 전송한다.
- Hub가 schema/register 결과로 Wrapper
tenantId와 runtime snapshot version을 반환한다. - 실제 Wrapper는 같은 alias-scoped storage와
tenantId로 refresh를 수행한다.
핵심 식별자¶
alias¶
alias는 같은 DB/schema와 정책 매핑을 공유하는 논리 그룹이다. Schema Collector와 실제 Wrapper가 같은 alias를 사용하면 같은 schema/mapping 그룹을 참조한다.
tenantId¶
tenantId는 Hub가 발급한 개별 Wrapper runtime credential이다. refresh와 runtime schema sync는 X-DADP-Tenant-Id header의 tenant credential을 기준으로 인증된다.
policyCode¶
policyCode는 runtime 암복호화 요청에서 정책을 식별하는 기준값이다. schema/mapping 단계에서는 테이블/컬럼이 어떤 policyCode를 사용할지 결정한다.
적합한 사용 상황¶
- Wrapper를 곧 도입할 예정인데 사전 정책 매핑을 미리 준비하고 싶을 때
- 애플리케이션 기동 이전에 스키마 구조를 먼저 등록해야 할 때
- 직접 동기화보다 수집과 등록을 분리해서 운영하고 싶을 때
- 재기동 직후 첫 요청이 정책 동기화보다 먼저 들어오면 안 되는 환경
운영 원칙¶
- Schema Collector는 Wrapper를 대체하지 않는다.
- 수집 성공이 곧 런타임 실행 성공을 의미하지는 않는다.
- 등록에 사용한
alias와 실제 Wrapper의alias가 다르면 매핑을 공유할 수 없다. tenantId는 runtime credential이므로 body가 아니라 runtime header와 localproxy-config.json기준으로 다룬다.- 데이터베이스 접속 권한, 벤더별 메타데이터 조회 방식, 제외 규칙 해석을 함께 검토해야 한다.
권장 운영 순서¶
첫 요청 타이밍까지 제어해야 하는 환경에서는 다음 순서를 사용할 수 있다.
- Schema Collector로 대상 스키마를 수집한다.
- Hub에 alias/schema를 등록하고 Wrapper
tenantId를 발급받는다. - Hub에서 정책 매핑을 완료한다.
dadp wrapper refresh또는 동등한 runtime refresh로 로컬 storage를 갱신한다.- Wrapper 또는 애플리케이션을 기동한다.
- 보호 동작이 확인된 뒤 사용자 트래픽을 연다.