26Y02c


1. 요구사항 정의서 시트

ID대분류중분류요구사항명상세 요구사항지원 가능 범위

(API Server 신규 개발)
참고 내용우선순위
REQ-01-01Prefix 동적 라이프사이클 관리Prefix 생성Prefix 동적 생성요청한 이름으로 동적으로 prefix를 생성하고, 내부적으로 name validation이 있는 API 구현prefix 관리 모듈AIStor 기능 없음 - place holder 객체 생성 필요1
REQ-01-02Prefix 동적 라이프사이클 관리Prefix 생성플레이스홀더 파일 자동 생성UI 상에서 '빈 폴더'로 노출하기 위하여 Prefix 생성 시 가상의 디렉토리 구조 시작 및 유지를 위해 내부 빈 플레이스홀더 파일(예: .keep) 자동 생성 기능prefix 관리 모듈place holder 객체 생성1
REQ-01-03Prefix 동적 라이프사이클 관리Prefix 조회Prefix 목록 및 상태 조회특정 이름의 Prefix 검색 후 생성일, 현재 상태, 소유자 등을 조회하는 API 구현prefix 관리 모듈AIStor 기능 없음 - prefix 자체에는 timestamp 외 메타 정보 없음1
REQ-01-04Prefix 동적 라이프사이클 관리Prefix 조회Prefix 목록 및 상태 조회전체 Prefix의 생성일, 현재 상태, 소유자 등을 조회하는 API 구현prefix 관리 모듈AIStor 기능 없음 - prefix 자체에는 timestamp 외 메타 정보 없음1
REQ-01-05Prefix 동적 라이프사이클 관리Prefix 조회Prefix 하위 객체 리스트 조회인증된 사용자가 본인 Prefix 내의 하위 객체(파일) 리스트 및 크기, 수정일 등의 메타데이터 만큼 조회할 수 있는 API (Paging/검색/필터 기능 필수)prefix 관리 모듈heavy한 ListObjectsV2 API 대신 메타 관리 DB 생성(Bucket Notification 시 내용 update) 후 이를 조회1
REQ-01-06Prefix 동적 라이프사이클 관리Prefix 수정Prefix 메타데이터(별칭) 수정S3 아키텍처상 Prefix명 자체를 변경하는 것은 대규모 Copy&Delete를 유발하므로 금지하며, DB 상의 별칭(Alias)이나 디스플레이 네이밍 수정 가능하도록 제한prefix 관리 모듈AIStor 기능 제약 - 메타 관리 DB에 구현, 이용1
REQ-01-07Prefix 동적 라이프사이클 관리Prefix 수정Prefix 메타데이터(별칭) 수정매칭 된 별칭과 실제 s3 object storage를 조회할 수 있는 APIprefix 관리 모듈AIStor 기능 제약 - 메타 관리 DB에 구현, 이용1
REQ-01-08Prefix 동적 라이프사이클 관리Prefix 삭제하위 객체 일괄 삭제Prefix 삭제 요청 시 하위의 모든 객체들을 안전하고 신속하게 삭제 처리하는 API 구현현 제품 지원AIStor 기본 기능 이용 - DeleteObjects API 또는 Batch Jobs 호출1
REQ-01-09Prefix 동적 라이프사이클 관리Prefix 삭제소프트 삭제 및 보존 정책 연계오작동 및 실수 방지를 위해 즉시 완전 삭제 대신 소프트 삭제(Soft Delete) 상태로 전환 후, 일정 기간 보관 후 S3 Lifecycle 규칙과 연계하여 완전 삭제현 제품 지원AIStor 기능 이용 (Versioning + ILM) - Versioning 사용 -> 삭제 시 DeleteMarker 생성 + ILM expire 기간 지정 -> noncurrent-expire-days 지정(prefix별 가능) 기간 이후 실제 삭제 됨2
REQ-02-01테넌트별 인증 및 인가인증/인가인증/인가API 접근 사용자를 인증/인가하는 체계 (사용자가 소속되어 있는 Prefix에만 접근 가능)

-> (인증/인가의 경우 사번으로 제어하면 내부적으로 token 설정을 어떻게 할지도 종합에 필요할 것 같습니다;)
현 제품 지원Identity & Access Management (IAM) 시스템을 기본 내장하고 있으며, AWS IAM 정책과 100% 호환, Active Directory와 원활하므로 사용자의 사번이나 혹은 사내 계정 체계를 그대로 매핑할 수 있음

OR 대규모 환경에서는 인가용 외부 시스템(e.g. OPA) 연동 권장

STS AssumeRole API를 통한 임시 자격 증명 발급 방식 또한 적용 - AIStor에 정책 변수(${aws:username})가 포함된 글로벌 정책 1개만 등록하고 AD 그룹(또는 사용자)에 바인딩해 사용
1
REQ-02-02테넌트별 인증 및 인가인증/인가인증/인가사용자가 접근 불가한 Prefix인 경우에는 에러 return현 제품 지원권한이 없는 Prefix 경로로 접근 시 S3 API 표준에 따라 즉시 에러(Access Denied)를 반환1
REQ-02-03테넌트별 인증 및 인가인증/인가인증/인가특정 prefix에 신규 사용자에게도 권한을 줄 수 있는 API현재 지원 - workbench 에서 신규 사용자에 대해 기존 권한 바인딩

AND

추가적인 권한은 별도 요청을 통해 부여
동적 바인딩(mc idp ldap policy attach) 진행 -> 다음번 S3 세션 갱신(STS AssumeRole) 시, 새로 바인딩된 정책이 결합되어 해당 프리픽스에 즉시 접근(RO 또는 RW) 가능1
REQ-02-04테넌트별 인증 및 인가권한 그룹 관리세부 권한(Read/Write/Admin) 분리읽기 전용(Read-Only), 읽기/쓰기(Read-Write)의 권한 분리 필요현 제품 지원Identity & Access Management (IAM) 기능 이용2
REQ-03-01Prefix 단위 용량 쿼터 및 관리쿼터 설정Prefix별 쿼터 설정/수정/삭제 API각 Prefix별로 최대로 사용할 수 있는 용량 제한(Hard Limit) 및 임계치 경고 용량(Soft Limit)을 설정, 수정, 삭제하는 API (단위: GB/TB)prefix 관리 모듈Bucket Notification 기반 prefix 용량 사용량 프로그램 개발 필요2
REQ-03-02Prefix 단위 용량 쿼터 및 관리용량 트래킹실시간/주기적 용량 집계 및 동기화Webhook 또는 Prometheus 메트릭 수집을 통해, 파일 변동 이벤트를 기반으로 Prefix별 현재 용량을 상시 집계하여 API 제공 및 모니터링 화면 출력prefix 관리 모듈Bucket Notification 기반 prefix 용량 사용량 프로그램 개발 필요3
REQ-03-03Prefix 단위 용량 쿼터 및 관리쿼터 제어용량 초과 시 쓰기 제한 차단 (Enforcement)사용자가 파일을 prefix에 추가시, API 서버단에서 해당 Prefix의 현재 용량과 Hard Limit를 비교하여 용량 초과 시 발급 거부(Deny)prefix 관리 모듈 (구체적API Server 별도 구현 및 사용자의 AIStor 접근 시 API Server 거치도록 강제화 필요 (content-length-range로 용량 범위 지정된 post policy를 가진 URL 발급) + 사용자의 직접 접근으로 prefix quota 초과 시 사후 차단(정책 변경) 필요3
REQ-04-01모니터링 및 대시보드데이터 집계전체 Bucket 메트릭 수집전체 큰 하나의 Bucket 관점에서의 총 사용 용량, 총 객체 수, 인프라 레벨의 데이터 수집 및 데이터 제공 API 개발현 제품 지원bucket metric(/cluster/usage/buckets) 사용 - minio_cluster_usage_buckets_total_bytes, minio_cluster_usage_buckets_objects_count 등3
REQ-04-02모니터링 및 대시보드데이터 집계Prefix별 세부 메트릭 가공 및 집계각 Prefix 테넌트 단위의 개별 사용 용량, 전일 대비 증가율, 일일 업로드/다운로드 횟수, 최근 파일 접근 시간 통계 수집 및 시계열화prefix 관리 모듈Bucket Notification 기반 prefix 용량 및 요청 수 계산 프로그램 개발 필요3
REQ-04-03모니터링 및 대시보드시각화멀티테넌시 통합/개별 대시보드 UI 연동Grafana Dashboard 임베딩 또는 권한별 화면 구성 제공 (admin은 전체 조회 가능)현재 지원 + 추가적인 요3
RFQ-05-01특이 이벤트 및 알람알람 엔진Webhook 수신 및 라우팅 엔진MinIO 버킷 이벤트 알림 시스템 또는 내부 쿼터 통제 엔진에서 발생하는 이상 징후/이벤트를 실시간으로 수신 및 정규화하여 전달하는 Webhook 개발prefix 관리 모듈Audit Log(webhook or kafka): 사용자의 데이터 접근 행위, 관리자가 쿼터를 변경하거나 권한을 수정하는 행위 등

Server Log(webhook): 현재 Observability에서 pod log로 수집 중 - 엔진 에러 및 이상 징후

Event Log(Bucket Notification - webhook, kafka 등 다수): 객체 상태 변경 및 내부 발생 이벤트(스케줄, 복제 등)

Metric: minio_cluster_usage_buckets_total_bytes, minio_cluster_usage_buckets_quota_bytes 수치 비교로 판단(쿼터 초과 여부)

> 요건에 따라 위 소스들 선택, 수신
3
REQ-05-02특이 이벤트 및 알람알람 규칙쿼터 임계치 도달 알람 (Soft/Hard Limit)특정 Prefix의 사용 용량이 임계치(Soft Limit: 예 80%, Hard Limit: 100%)에 도달한 즉시 지정된 담당자에게 실시간 알람 발송 규칙 정의 및 연동 (알람은 큐브 알람prefix 관리 모듈Observability Alertmanager 이용3
REQ-05-03특이 이벤트 및 알람알람 규칙이상 행위 및 보안 위협 탐지 알람단시간 내 비정상적인 대용량 삭제 행위 발생 시 보안 위협 알람 발송prefix 관리 모듈Bucket Notification의 s3:ObjectRemoved 이벤트 이용3
REQ-05-04특이 이벤트 및 알람알람 방송외부 채널 연동 및 메시지 포맷팅큐브와 연동하여 가독성 높은 형태로 포맷팅 후 알람 전송prefix 관리 모듈Observability Alertmanager 이용3
REQ-06-01안정성 및 운영 고도화성능 최적화비동기 이벤트 기반 용량 증감 업데이트성능 저하가 발생할 가능성이 있어 파일 변동 시마다 전체 S3를 스캔(Scan)하지 않도록 함prefix 관리 모듈Bucket Notification 이용(kafka, http webhook 등), Bucket put/delete 이벤트 등록, prefix 단위 이벤트 라우팅 가능, object size 정보 이용3
REQ-06-02안정성 및 운영 고도화로그행위 추적을 위한 Logging사용자/권한/쿼터 임계치 변경, 수동 권한 업데이트 등 시스템 동작과 관련된 모든 관리적 요청 및 수행 결과 History 추적 가능해야 함현 제품 지원audit log에 저장됨(fluent-bit -> opensearch), api.name으로 행위 별 구분(accessKey:계정명, remotehost:출발지IP)3
REQ-06-03안정성 및 운영 고도화데이터 정합성정기 동기화 보정 배치 (Reconciliation Loop)비동기 큐의 유실이나 일시적 오류로 메타 DB의 Prefix별 용량 데이터와 MinIO S3의 실제 물리적 용량 간 정합성이 어긋날 가능성에 대비하여, 주기적(예: 매일 새벽)으로 실제 용량을 스캔해 DB를 자동 교정하는 배치 스케줄러 구현prefix 관리 모듈Inventory api (daily batch) 결과를 바탕으로 차이 보정, AIStor Table도 저장되어 SQL로 조회(or inventory 결과 parquet 파일 직접 이용)3

주: REQ-03-03의 F열(prefix 관리 모듈 (구체적) 및 REQ-04-03의 F열(현재 지원 + 추가적인 요)은 화면상 우측 셀에 가려져 잘린 부분까지만 있는 그대로 적었습니다.


2. 매핑 시트

MetaDBTableColumnColumn D/EPrefix Management System (주요 기능)Column G우선순위
MetaDBTableColumnPrefix Management System (주요 기능)우선순위
Object Table이름1. 사용자가 생성한 경로의 prefix 마다 .placeholder 생성(25)높음
생성 시간2. prefix name validation(2) (3)보통
마지막 수정 시간3. prefix 세부 정보 조회(2)보통
크기4. prefix 내 객체 리스트 및 집계 정보 제공(4) (5)보통
소속 버킷5. prefix quota 관리 및 초과 알람(6) (16) (19)높음
소속 Prefix6. 주기적으로 mc inventory 결과 비교 및 업데이트(15) (17) (22)높음
Prefix Tab이름7. prefix 사용량 예측 및 사전 알람(27)높음
경로8. Prefix 별 전일 대비 증가율, 업로드/다운로드 횟수DevOps낮음
alias9. Prefix 별 ILM 정책 적용 여부 확인(19)높음
quota(7) (8)10. 이상 징후 발생 시 알람 (대용량 삭제, 성능 저하, ...)DevOps보통
ILM 정책Grafana Dashboard권한 별 대시보드 구성(21) (23) (24)보통
관리자(20)
상태AIStor (현 제품 지원 기능)prefix 내 객체 삭제(9)
생성 시간휴먼 에러 방지를 위한 ILM 정책(10)
마지막 수정 시간prefix 접근 권한 관리(11) (12) (13) (14)
버킷별 사용량 집계(18)
Audit Log 추적(26)

0개의 댓글