Nullify
안전. 투명. 무효화(Nullified).
Nullify는 오픈 소스, 모듈형 데이터 보존, 삭제 및 수명주기 거버넌스 플랫폼입니다. 분산 데이터 환경 전반에 걸쳐 데이터 발견, 보존 정책 평가, 통제된 수명주기 작업 실행, 검증 가능한 감사 기록 유지를 위한 중앙 집중식 프레임워크를 제공합니다.
Nullify는 사양 우선(specification-first) 아키텍처를 중심으로 설계되었습니다. 핵심 모듈은 데이터 수명주기 거버넌스에 필요한 기본 기능을 제공하며, 선택적 플러그인 모듈은 추가 커넥터, 규정 준수 프레임워크, 인텔리전스, 통합, 스토리지 시스템 및 배포 기능으로 Nullify를 확장합니다.
사양
Nullify는 중앙 집중식 데이터 수명주기 관리를 위한 오픈 소스 아키텍처를 정의합니다.
사양은 여러 원칙을 기반으로 구축됩니다:
- 중앙 집중식 정책 조정
- 분산 데이터 소스 지원
- 정책 기반 보존 및 삭제
- 명시적 권한 부여 및 승인
- 드라이런 및 검증 워크플로우
- 불변 및 검증 가능한 감사
- 데이터 계보 및 출처
- 모듈형 커넥터 및 통합
- 파괴적 작업에 대한 인간 감독
- 기본 보안 실행
- 벤더 중립 아키텍처
- 로컬, 클라우드, 하이브리드 및 연합 배포
- 확장 가능한 플러그인 아키텍처
- 투명한 정책 평가
- 재현 가능한 수명주기 결정
Nullify는 조직이 데이터를 독점 중앙 저장소로 마이그레이션할 것을 요구하지 않습니다. 대신 시스템은 기존 데이터 환경 전반에서 수명주기 정책과 작업을 조정합니다.
아키텍처
Nullify는 두 가지 기본 아키텍처 계층으로 구분됩니다:
- 핵심 모듈
- 선택적 플러그인 모듈
핵심 모듈은 Nullify를 운영하는 데 필요한 기본 기능을 포함합니다. 선택적 플러그인은 기본 플랫폼이 특정 데이터베이스, 클라우드 제공업체, 규정 준수 프레임워크, AI 시스템, 알림 플랫폼 또는 인프라 환경에 의존하지 않도록 하면서 특화된 기능을 제공합니다.
핵심 아키텍처
기본 수명주기 흐름은 다음과 같습니다:
발견 → 분류 → 정책 평가 → 승인 → 일정 관리 → 실행 → 검증 → 감사
각 단계는 독립적으로 유지보수 가능한 핵심 모듈로 표현됩니다.
핵심 모듈
1. 데이터 발견 모듈
데이터 발견 모듈은 Nullify가 관리하는 데이터 리소스를 식별하고 목록화합니다.
주요 기능:
- 데이터 소스 등록
- 리소스 발견
- 데이터셋 및 객체 인벤토리
- 메타데이터 수집
- 데이터 소유권 메타데이터
- 생성 및 수정 타임스탬프
- 접근 메타데이터
- 저장 위치 추적
- 리소스 상태 추적
- 데이터 소스 상태 모니터링
- 발견 일정 관리
이 모듈은 기본 데이터를 Nullify에 복사할 것을 요구하지 않으면서 후속 수명주기 정책에 필요한 인벤토리를 제공합니다.
2. 데이터 분류 모듈
데이터 분류 모듈은 발견된 리소스에 구조화된 메타데이터를 할당합니다.
주요 기능:
- 데이터 범주 할당
- 민감도 분류
- PII(개인식별정보) 분류
- 금융 데이터 분류
- 건강 데이터 분류
- 내부 및 공개 분류
- 사용자 정의 분류
- 분류 신뢰도
- 분류 이력
- 수동 분류
- 분류 오버라이드
분류 결과는 정책 평가 프로세스의 입력값이 됩니다.
3. 정책 엔진 모듈
정책 엔진은 Nullify의 중앙 의사결정 구성 요소입니다.
주요 기능:
- 보존 정책
- 삭제 정책
- 아카이브 정책
- 익명화 정책
- 법적 보존 규칙
- 예외 규칙
- 정책 우선순위
- 정책 상속
- 정책 버전 관리
- 정책 활성화 및 만료
- 정책 시뮬레이션
- 정책 충돌 감지
- 정책 검증
- 정책 롤백
정책은 선언적이고 기계가 읽을 수 있어야 합니다.
Nullify는 정규화된 내부 정책 모델을 유지하면서 여러 정책 형식을 지원해야 합니다.
4. 수명주기 결정 모듈
수명주기 결정 모듈은 정책 평가 결과를 명시적인 수명주기 결정으로 변환합니다.
지원되는 결정:
- 보존
- 검토
- 아카이브
- 익명화
- 삭제
- 법적 보존
- 예외
- 연기
모든 결정에는 다음을 설명할 수 있는 충분한 메타데이터가 포함되어야 합니다:
- 어떤 결정이 내려졌는지
- 어떤 리소스가 영향을 받았는지
- 어떤 정책이 결정을 생성했는지
- 어떤 정책 버전이 사용되었는지
- 결정이 생성된 시점
- 결정이 실행되어야 하는 시점
- 승인이 필요한지 여부
5. 승인 및 인간 감독 모듈
Nullify는 모든 파괴적 작업이 완전히 자동화될 수 있다고 가정해서는 안 됩니다.
승인 모듈은 통제된 인간 감독을 제공합니다.
주요 기능:
- 승인 대기열
- 다중 인원 승인
- 역할 기반 승인
- 승인 위임
- 승인 만료
- 거부 워크플로우
- 에스컬레이션 워크플로우
- 긴급 보류
- 수동 오버라이드
- 승인 이력
조직은 어떤 작업에 인간 승인이 필요한지, 어떤 작업이 자동으로 실행될 수 있는지 구성할 수 있습니다.
6. 일정 관리 모듈
일정 관리 모듈은 수명주기 작업이 발생하는 시점을 관리합니다.
주요 기능:
- 예약된 삭제
- 예약된 아카이브
- 예약된 익명화
- 배치 처리
- 우선순위 대기열
- 유지보수 시간대
- 리소스 인지 일정 관리
- 재시도 일정 관리
- 종속성 인지 실행
- 워크로드 균형
- 실행 스로틀링
일정 관리는 작업 수행 결정을 해당 작업의 실제 실행과 분리해야 합니다.
7. 작업 실행 모듈
작업 실행 모듈은 등록된 데이터 소스에 대해 승인된 수명주기 작업을 수행합니다.
지원되는 수명주기 작업:
- 삭제
- 아카이브
- 익명화
- 비공개 처리
- 격리
- 이동
- 만료
- 접근 권한 철회
주요 기능:
- 드라이런 실행
- 실행 전 검증
- 실행 확인
- 지원되는 경우 트랜잭션 인지 작업
- 재시도 처리
- 실패 감지
- 부분 실패 추적
- 실행 상태
- 실행 증명
- 멱등 실행
- 안전 실행 제어
파괴적 작업은 구성된 정책에 따라 명시적인 권한 부여를 요구해야 합니다.
8. 검증 모듈
검증 모듈은 수명주기 작업이 성공적으로 완료되었는지 확인합니다.
주요 기능:
- 삭제 검증
- 아카이브 검증
- 익명화 검증
- 소스 확인
- 복제본 검증
- 재시도 검증
- 실패 작업 감지
- 잔여 데이터 감지
- 검증 보고서
검증은 다음 상태를 구분해야 합니다:
- 요청됨
- 승인됨
- 예약됨
- 실행됨
- 검증됨
- 실패
- 부분 완료
9. 감사 및 증거 모듈
감사 및 증거 모듈은 모든 중요한 시스템 작업의 전체 수명주기를 기록합니다.
주요 기능:
- 불변 감사 이벤트
- 암호화 이벤트 무결성
- 정책 결정 기록
- 승인 기록
- 실행 기록
- 검증 기록
- 사용자 활동 기록
- 구성 이력
- 정책 이력
- 감사 내보내기
- 증거 패키지
- 증거물 연속성(chain-of-custody) 기록
감사 기록은 수명주기 결정이 왜 발생했는지, 그 후 어떤 일이 일어났는지 재구성할 수 있어야 합니다.
10. 데이터 계보 모듈
데이터 계보 모듈은 데이터 리소스 간의 관계를 추적합니다.
주요 기능:
- 소스 계보
- 대상 계보
- 변환 계보
- 복사 관계
- 복제 관계
- 파생 데이터 관계
- 부모-자식 관계
- 데이터 이동 이력
- 수명주기 전파
계보를 통해 Nullify는 보존, 아카이브, 익명화 또는 삭제가 필요할 수 있는 관련 리소스를 식별할 수 있습니다.
11. 접근 제어 모듈
접근 제어 모듈은 관리 및 수명주기 작업을 보호합니다.
주요 기능:
- 역할 기반 접근 제어(RBAC)
- 속성 기반 접근 제어(ABAC)
- 권한 관리
- 리소스 수준 권한
- 작업 수준 권한
- 승인 권한
- 관리 분리
- 세션 관리
- 인증 통합
- 권한 부여 감사
파괴적 작업은 최소 권한 기반 권한 부여를 사용해야 합니다.
12. 알림 모듈
알림 모듈은 시스템 및 수명주기 알림을 제공합니다.
주요 기능:
- 정책 위반 알림
- 실행 실패 알림
- 승인 알림
- 예약 작업 알림
- 검증 실패
- 데이터 소스 오류
- 규정 준수 알림
- 관리 알림
핵심 모듈은 알림 인터페이스를 노출해야 하며, 전달 메커니즘은 교체 가능해야 합니다.
13. API 모듈
API 모듈은 Nullify에 대한 프로그래밍 방식 액세스를 제공합니다.
주요 기능:
- REST API
- GraphQL API
- 인증
- 권한 부여
- 리소스 관리
- 정책 관리
- 수명주기 관리
- 감사 쿼리
- 보고
- 플러그인 관리
- 관리 작업
API는 안정적인 버전 관리 인터페이스를 노출해야 합니다.
14. 대시보드 모듈
대시보드는 기본 관리 인터페이스를 제공합니다.
주요 기능:
- 데이터 인벤토리
- 보존 상태
- 대기 중인 작업
- 정책 상태
- 승인 대기열
- 실행 상태
- 검증 상태
- 감사 이력
- 정책 충돌
- 규정 준수 지표
- 시스템 상태
- 플러그인 상태
대시보드는 사용자가 기본 데이터베이스나 실행 시스템과 직접 상호작용할 필요 없이 가시성을 제공해야 합니다.
15. 보고 모듈
보고 모듈은 수명주기 데이터를 운영 및 규정 준수 보고서로 변환합니다.
주요 기능:
- 보존 보고서
- 삭제 보고서
- 정책 보고서
- 감사 보고서
- 예외 보고서
- 법적 보존 보고서
- 실행 보고서
- 검증 보고서
- 데이터 인벤토리 보고서
- 규정 준수 증거 패키지
지원되는 내보내기 형식은 다음과 같아야 합니다:
- JSON
- CSV
- PDF
- 구조화된 기계 판독 가능 증거 형식
16. 멀티 테넌트 모듈
멀티 테넌트 모듈은 Nullify가 여러 조직 환경에서 운영될 수 있게 합니다.
주요 기능:
- 조직 격리
- 테넌트별 정책
- 테넌트별 관리자
- 테넌트별 감사 기록
- 테넌트별 커넥터
- 테넌트별 보존 규칙
- 테넌트별 보고
- 테넌트 수준 구성
테넌트 경계는 권한 부여 및 데이터 접근 계층에서 강제되어야 합니다.
17. 연합 모듈
연합 모듈은 여러 Nullify 설치 환경을 조정합니다.
주요 기능:
- 멀티 클러스터 조정
- 연합 정책
- 분산 실행
- 지역별 수명주기 적용
- 환경 간 감사 조정
- 중앙 집중식 가시성
- 로컬 실행
- 연합 검증
연합은 조직이 데이터에 대한 로컬 제어권을 유지하면서 수명주기 거버넌스를 중앙에서 조정할 수 있게 해야 합니다.
선택적 플러그인 모듈
플러그인은 핵심 플랫폼의 종속성 요구 사항을 늘리지 않으면서 Nullify를 확장합니다.
플러그인은 문서화된 인터페이스와 API를 사용해야 하며, 독립적으로 설치, 업그레이드, 활성화 및 비활성화할 수 있어야 합니다.
데이터 소스 플러그인
선택적 커넥터는 다음과 같습니다:
- PostgreSQL
- MySQL
- MariaDB
- Microsoft SQL Server
- Oracle Database
- MongoDB
- Redis
- Elasticsearch
- OpenSearch
- Snowflake
- BigQuery
- Databricks
- Apache Cassandra
- S3 호환 스토리지
- Google Cloud Storage
- Azure Blob Storage
- 네트워크 파일 시스템
- 객체 스토리지 시스템
- 사용자 정의 REST API
클라우드 제공업체 플러그인
선택적 통합은 다음과 같습니다:
- AWS
- Microsoft Azure
- Google Cloud
- Cloudflare
- DigitalOcean
- 기타 S3 호환 인프라
Nullify가 벤더 중립성을 유지할 수 있도록 클라우드 플러그인은 선택 사항으로 남아 있어야 합니다.
규정 준수 플러그인
선택적 규정 준수 정책 팩은 다음과 같습니다:
- GDPR
- CCPA
- CPRA
- HIPAA
- GLBA
- FERPA
- PCI DSS
- SOX
- 지역별 프라이버시 요구 사항
- 조직별 규정 준수 프레임워크
규정 준수 플러그인은 규제 요구 사항을 핵심 엔진에 하드코딩하기보다 정책 템플릿과 매핑을 제공해야 합니다.
AI 및 인텔리전스 플러그인
AI 기능은 선택 사항으로 유지되어야 합니다.
가능한 플러그인:
- 민감 데이터 분류
- PII(개인식별정보) 탐지
- 문서 분류
- 엔티티 인식
- 보존 권장 사항
- 정책 충돌 분석
- 정책 최적화
- 이상 탐지
- 삭제 실패 분석
- 규정 준수 지원
- 자연어 정책 생성
AI가 생성한 권장 사항은 정책 통제와 인간 감독의 적용을 받아야 합니다.
워크플로우 플러그인
선택적 워크플로우 통합은 다음과 같습니다:
- Apache Airflow
- Dagster
- Temporal
- Kubernetes Jobs
- GitLab CI/CD
- 기타 워크플로우 오케스트레이션 플랫폼
이벤트 버스 플러그인
선택적 이벤트 통합은 다음과 같습니다:
- Apache Kafka
- RabbitMQ
- NATS
- Redis Streams
- MQTT
- 클라우드 이벤트 시스템
신원(ID) 플러그인
선택적 인증 및 신원 통합은 다음과 같습니다:
- LDAP
- Active Directory
- OAuth
- OpenID Connect
- SAML
- 엔터프라이즈 ID 제공업체
알림 플러그인
선택적 알림 통합은 다음과 같습니다:
- 이메일
- Slack
- Microsoft Teams
- 웹훅
- PagerDuty
- 기타 알림 서비스
스토리지 플러그인
Nullify는 감사 기록, 증거, 메타데이터 및 시스템 상태를 위한 선택적 스토리지 백엔드를 지원할 수 있습니다.
가능한 플러그인:
- PostgreSQL
- SQLite
- MariaDB
- S3 호환 객체 스토리지
- MinIO
- 분산 데이터베이스
- 엔터프라이즈 스토리지 시스템
배포 플러그인
선택적 배포 모듈은 다음을 제공할 수 있습니다:
- Docker
- Docker Compose
- Kubernetes
- Helm
- Terraform
- Ansible
- 클라우드 배포 템플릿
보안 아키텍처
보안은 선택적 플러그인이 아닌 핵심 요구 사항입니다.
Nullify는 다음을 제공해야 합니다:
- 전송 중 암호화
- 저장 데이터 암호화
- 최소 권한 기반 권한 부여
- 안전한 자격 증명 처리
- 비밀 관리 통합
- 인증
- 권한 부여
- 감사 로깅
- 암호화 감사 무결성
- 속도 제한
- API 보안
- 관리 분리
- 안전한 플러그인 격리
- 구성 검증
- 안전한 기본값
Nullify는 애플리케이션 구성에 평문 자격 증명이 저장되도록 요구해서는 안 됩니다.
안전한 삭제 아키텍처
삭제는 잠재적으로 파괴적일 수 있으므로 Nullify는 수명주기 결정을 실행과 분리합니다.
권장 수명주기는 다음과 같습니다:
- 리소스 발견
- 리소스 분류
- 적용 가능한 정책 평가
- 수명주기 결정 생성
- 예외 및 법적 보존 확인
- 필요 시 승인 요청
- 작업 일정 예약
- 작업 실행
- 결과 검증
- 증거 기록
- 수명주기 상태 업데이트
- 결과 보고
드라이런 모드는 조직이 파괴적 작업을 실행하기 전에 예상 결과를 평가할 수 있게 해야 합니다.
법적 보존 및 예외
Nullify는 자동 삭제를 방지하는 수명주기 예외를 지원해야 합니다.
예:
- 법적 보존
- 조사
- 진행 중인 분쟁
- 규제 보존 요구 사항
- 보안 조사
- 조직 예외
- 임시 보존 연장
법적 보존 또는 승인된 예외는 구성된 정책 계층 구조에 따라 일반 삭제 정책보다 우선해야 합니다.
정책 충돌 감지
Nullify는 정책이 상충되는 수명주기 결정을 생성하는 상황을 식별해야 합니다.
예:
- 삭제 대 보존
- 삭제 대 법적 보존
- 아카이브 대 삭제
- 상충되는 보존 기간
- 상충되는 조직 정책
- 상충되는 관할권 정책
시스템은 충돌을 설명하고 충돌에 기여한 정책을 식별해야 합니다.
투명성
모든 중요한 수명주기 결정은 설명 가능해야 합니다.
Nullify는 다음을 포함하는 결정 기록을 제공해야 합니다:
- 리소스
- 데이터 분류
- 적용 가능한 정책
- 정책 버전
- 정책 평가
- 예외
- 승인 요구 사항
- 최종 결정
- 실행 상태
- 검증 상태
- 관련 감사 이벤트
이로써 정책 정의부터 수명주기 결과까지 감사 가능한 체인이 생성됩니다.
기술 아키텍처
Nullify는 사양 수준에서 기술 중립성을 유지하도록 설계되었습니다.
참조 구현은 다음을 사용할 수 있습니다:
- Python
- FastAPI
- React
- PostgreSQL
- Open Policy Agent
- Apache Airflow
- Dagster
- Docker
- Kubernetes
- MinIO
- Apache Kafka
- RabbitMQ
- NATS
이러한 기술은 Nullify 사양의 필수 요구 사항이 아닌 구현 선택 사항입니다.
모듈형 설계
Nullify는 조직이 필요한 기능만 배포할 수 있도록 모듈형 아키텍처를 따릅니다.
핵심 플랫폼은 다음을 제공해야 합니다:
- 발견
- 분류
- 정책 평가
- 수명주기 결정
- 승인
- 일정 관리
- 실행
- 검증
- 감사
- 계보
- 접근 제어
- 알림
- API
- 대시보드
- 보고
- 멀티 테넌시
- 연합
선택적 기능은 플러그인을 통해 제공되어야 합니다.
이 아키텍처는 핵심 플랫폼이 특정 벤더, 클라우드 제공업체, 데이터베이스, AI 시스템, 규정 준수 프레임워크 또는 인프라 플랫폼에 강하게 결합되지 않도록 방지합니다.
플러그인 요구 사항
플러그인은 다음을 충족해야 합니다:
- 문서화된 인터페이스 사용
- 독립적인 구성 유지
- 종속성 선언
- 상태 점검 제공
- 활성화 및 비활성화 작업 지원
- 명확한 오류 보고 제공
- Nullify 권한 부여 준수
- 적절한 감사 이벤트 발생
- 핵심 정책 평가 우회 방지
- 지원되는 API 버전과의 호환성 유지
- 문서 포함
- 테스트 포함
플러그인은 수명주기 정책이나 권한 부여 통제를 우회해서는 안 됩니다.
관찰 가능성
Nullify는 다음에 대한 운영 텔레메트리를 노출해야 합니다:
- 데이터 발견
- 정책 평가
- 대기열 깊이
- 예약된 작업
- 실행 성능
- 실행 실패
- 검증 실패
- API 성능
- 플러그인 상태
- 데이터 소스 상태
- 시스템 상태
선택적 관찰 가능성 플러그인은 외부 모니터링 및 로깅 플랫폼과 통합할 수 있습니다.
신뢰성
Nullify는 다음을 지원해야 합니다:
- 재시도
- 멱등 작업
- 장애 복구
- 대기열 지속성
- 실행 체크포인트
- 상태 점검
- 서비스 복구
- 백업 및 복원
- 재해 복구
- 부분 실패 처리
실패한 삭제가 성공으로 조용히 보고되어서는 안 됩니다.
배포 모델
Nullify는 다음을 지원해야 합니다:
- 로컬 개발
- 단일 서버 배포
- Docker 배포
- Kubernetes 배포
- 온프레미스 배포
- 클라우드 배포
- 하이브리드 배포
- 다중 리전 배포
- 연합 배포
조직은 독점 호스팅 서비스에 의존하지 않고 Nullify를 운영할 수 있어야 합니다.
기능 로드맵
핵심
보안
거버넌스
신뢰성
선택적 플러그인- [ ] SQL 커넥터
오픈 소스 개발
Nullify는 커뮤니티 주도 오픈 소스 프로젝트로 개발되도록 설계되었습니다.
기여자는 다음을 통해 참여할 수 있습니다:
- 핵심 모듈 개발
- 플러그인 제작
- 커넥터 구축
- 정책 팩 작성
- 문서 개선
- 테스트 작성
- 버그 신고
- 보안 개선
- 통합 개발
- 사양 개선 제안
모듈식 아키텍처 덕분에 기여자는 기능을 플러그인으로 구현할 수 있는 경우 기반 라이프사이클 엔진을 수정하지 않고도 Nullify를 확장할 수 있습니다.
설계 목표
Nullify는 다음을 제공하도록 설계되었습니다:
- 불투명한 라이프사이클 자동화보다 투명성
- 수동 프로세스보다 정책 기반 거버넌스
- 모놀리식 의존성보다 모듈식 아키텍처
- 플랫폼 종속보다 벤더 중립성
- 검증 불가능한 주장보다 검증 가능한 증거
- 통제되지 않은 자동화보다 인간의 감독
- 독점 통합보다 오픈 소스 확장성
- 분산 실행을 통한 중앙 집중식 거버넌스
- 통제되지 않은 파괴보다 안전한 삭제
Specification Branding License (SBL)
Standard
- 완전한 AGPL-3.0+ 준수 시스템
- 네트워크 배포에 대해 카피레프트 적용
- 필수 귀속 표시:
Optional
- Specification Branding License (SBL)
📄 라이선스 및 고지 요구사항
Nullify는 GNU Affero General Public License v3.0 이상 (AGPL-3.0+) 에 따라 배포됩니다.
이 프로젝트에 기여함으로써, 귀하의 기여도 이 라이선스에 따라 배포되는 것에 동의하게 됩니다.
다음 사항을 유의하세요:
- 모든 기여는 AGPL-3.0+ 조건을 준수해야 합니다.
- 라이선스 제7조에 따라 모든 재배포, 포크 및 파생 작업은 Roxanne Ardary 및 roxanneardary.com 에 대한 귀속 표시를 유지해야 합니다.
- Nullify 사양은 귀속 표시와 함께 무료로 사용할 수 있습니다. 요청 시 Specification Branding License를 협상할 수 있습니다.
- 프로젝트의 notice.md 파일은 귀속 요구사항과 기여자 인정을 추적합니다.
새 기여자를 추가하거나 귀속을 수정하는 업데이트는 notice.md도 갱신해야 합니다.
- 풀 리퀘스트를 제출할 때, 새 파일이 해당되는 경우 귀속 헤더를 유지하도록 하세요.
- 이 소프트웨어의 네트워크 배포 버전도 완전한 AGPL-3.0+ 준수를 유지해야 하며, 라이선스에 해당하는 경우 소스 코드 수정 사항의 공개도 포함됩니다.
전체 법적 세부 사항은 AGPL-3.0+ 라이선스와 프로젝트의 notice.md 파일을 참조하세요.
Open Arsenal Hub
https://gitlab.com/Roxanne_Ardary/open-arsenal-specs