- CLAUDE.md: project context and architecture spec - docs/: system specs, DB schema, messenger integration, deployment engine - skills/: guardia-deploy, guardia-agent, guardia-messenger - .claude/settings.json: project-level permissions - .gitignore: Python/FastAPI project Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
97 lines
4.5 KiB
Markdown
97 lines
4.5 KiB
Markdown
# [Specification] GUARDiA 시스템 아키텍처 명세
|
|
|
|
## 1. 프로젝트 개요
|
|
|
|
### 1.1. 구축 배경
|
|
- 1,000개 이상의 관공서 SM 사이트, 10,000+ 운영 환경 관리
|
|
- 레거시 서버: 에이전트 설치 불가, 수동 FTP/SSH 반복 작업 만연
|
|
- 목표: 메신저 자연어 명령 → AI → 에이전트리스 자동 배포·운영
|
|
|
|
### 1.2. 핵심 가치
|
|
- **ChatOps**: 메신저가 유일한 터미널
|
|
- **Agentless**: SSH/FTP 표준 프로토콜만 사용
|
|
- **Human-in-the-loop**: PM 최종 승인 후 실행
|
|
|
|
---
|
|
|
|
## 2. 전체 아키텍처 (3-Layer)
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────┐
|
|
│ INTAKE LAYER (현장 접수) │
|
|
│ 메신저 앱/웹 → Webhook → 입력 검증 모듈 │
|
|
└───────────────────────┬─────────────────────────────────┘
|
|
│
|
|
┌───────────────────────▼─────────────────────────────────┐
|
|
│ CONTROL LAYER (지능형 제어) │
|
|
│ ① SR/Ops 작업 관리 엔진 (상태: RECEIVED→COMPLETED) │
|
|
│ ② RBAC 보안 승인 엔진 (담당자→대리→상위 에스컬레이션)│
|
|
│ ③ sLLM Parser (자연어→JSON 정형화) │
|
|
│ ④ Claude Code 에이전트 (코드수정·스크립트 생성) │
|
|
│ ⑤ HITL 모듈 (PM 최종 검증 대기) │
|
|
└───────────────────────┬─────────────────────────────────┘
|
|
│
|
|
┌───────────────────────▼─────────────────────────────────┐
|
|
│ EXECUTION LAYER (에이전트리스 실행) │
|
|
│ SSH Executor / SFTP Client → 대상 서버(1,000+) │
|
|
│ Command Sanitizer → Audit Logger (Hash Chain) │
|
|
└─────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## 3. 기술 스택
|
|
|
|
| 구분 | 기술 | 버전/비고 |
|
|
|------|------|-----------|
|
|
| Backend | Python / FastAPI | 3.11+ |
|
|
| LLM | Llama-3-8B 또는 Solar-10.7B | 온프레미스, 4-bit 양자화 |
|
|
| Infra 제어 | paramiko (SSH/SFTP) | 에이전트리스 |
|
|
| DB | PostgreSQL | CMDB + SR + Audit |
|
|
| 메신저 연동 | Webhook (REST) | 슬랙/잔디/자체앱 |
|
|
| 보안 | AES-256 (자격증명), SHA-256 (감사로그 해시체인) | |
|
|
|
|
---
|
|
|
|
## 4. 사용자 역할별 지원 기능
|
|
|
|
### 4.1. Developer (배포)
|
|
- 로컬 빌드 파일(class, html, js, img) 메신저 첨부 → 자동 배포
|
|
- 정적 파일: 카피 즉시 반영 (WAS 재기동 불필요)
|
|
- 동적 파일(class): 무중단 롤링 재기동 (WAS #1 → 헬스체크 → WAS #2)
|
|
|
|
### 4.2. SM 운영자
|
|
- 원격 로그 분석: 에러 키워드 grep, 타임라인 추출
|
|
- 인프라 점검: 디스크/CPU/메모리/포트 임계치 감시
|
|
- 자원 정비: 로그 로테이션, 오래된 아카이브 삭제
|
|
- SSL 인증서 만료일 사전 감지
|
|
|
|
### 4.3. PM 관리자
|
|
- SR 진척도 및 배포 이력 타임라인 조회
|
|
- 민감 시스템 배포 시 2차 승인 워크플로우 제어
|
|
- 배포 결과 HITL 최종 확인 후 고객 완료 통보
|
|
|
|
---
|
|
|
|
## 5. 핵심 보안 정책
|
|
|
|
| 정책 | 내용 |
|
|
|------|------|
|
|
| 자격증명 저장 | AES-256 암호화 DB 저장, 실행 시 메모리 로드 |
|
|
| SSH 접근 | 관제 전용 계정(opsagent) + sudoers 화이트리스트 |
|
|
| 명령어 필터 | Blacklist: `rm -rf /`, `mkfs`, `drop`, `truncate` |
|
|
| 감사 로그 | SHA-256 해시 체이닝 — 위변조 즉시 탐지 |
|
|
| Kill-Switch | 메신저 '정지' 명령 → 즉시 중단 + 롤백 |
|
|
| 폐쇄망 | 외부 API 호출 금지, sLLM 온프레미스만 허용 |
|
|
|
|
---
|
|
|
|
## 6. 개발 로드맵
|
|
|
|
| Phase | 내용 | 목표 |
|
|
|-------|------|------|
|
|
| P1 | 메신저 웹훅 + DB 티켓팅 시스템 | SR 접수 → DB 저장 |
|
|
| P2 | sLLM 파서 + 승인 워크플로우 | 자연어 → JSON → HITL |
|
|
| P3 | SSH/SFTP 배포 엔진 + 롤링 재기동 | 에이전트리스 실행 |
|
|
| P4 | End-to-End 자동화 루프 완성 | SR→배포→알림 전 과정 |
|