내 Proxmox 클러스터를 AI에게 맡길 수 없었기에, 나를 놀라게 하지 않을 시스템을 직접 만들었습니다
요약
Proxmox 클러스터 운영을 위한 안전한 AI 에이전트 프레임워크인 Proximo를 소개합니다. AI의 실수로 인한 인프라 파괴를 방지하기 위해 계획(PLAN), 증명(PROVE), 실행 취소(UNDO), 진단(DIAGNOSE)의 4가지 핵심 구조를 통해 신뢰할 수 있는 자동화 환경을 제공합니다.
핵심 포인트
- AI의 작업 전 영향 범위(Blast Radius)를 미리 계산하여 시각화
- 해시 체인 기반의 로컬 감사 원장을 통한 변조 방지 및 추적
- 위험한 작업 수행 전 자동 스냅샷 생성 및 원클릭 롤백 지원
- 하이퍼바이저 직접 조작 대신 API 전용 방식으로 안전성 확보
저는 단순히 정보를 읽어주는 수준이 아니라, VM을 생성하고, 스토리지를 수정하며, 컨테이너 내부의 로그를 확인하는 등 실제로 제 Proxmox 클러스터를 '운영(run)'할 수 있는 AI 에이전트를 원했습니다. 하지만 AI가 스토리지 풀(storage pool)을 삭제하는 순간, 제가 확인하는 그 찰나에 어떤 VM들이 부팅 디스크를 잃게 될지 학습하는 장면이 떠올랐습니다. 그 상상 때문에 저는 결코 AI를 연결하지 않았습니다.
그래서 제가 실제로 신뢰할 수 있는 버전을 만들었습니다. 바로 Proximo입니다. 이는 오픈 소스(Apache-2.0) Proxmox MCP + A2A 서버입니다. 설계 목표는 단 한 문장으로 요약됩니다. "AI는 실행하기 전에 자신이 무엇을 할 것인지 나에게 보여주어야 하며, 나는 그 증거(receipts)를 보유해야 한다."
제공되는 두 가지 방식과 내가 원했던 세 번째 방식
오늘날 Proxmox MCP 서버를 찾아보면 두 가지 형태를 볼 수 있습니다. 하나는 **읽기 중심의 "안전한 검사기(safe inspector)"**입니다(가장 많은 별을 받은 것도 정확히 이 형태입니다. 몇 가지 읽기 도구만 제공하며, 칼(위험한 권한)을 쥐고 있지 않기 때문에 인기가 많습니다). 다른 하나는 신뢰에 의존해야 하는 **기능이 풍부한 변조기(feature-rich mutator)**입니다. 저는 세 번째 방식을 원했습니다. 즉, 문에 덧붙여진 방식이 아니라 기저 구조(substrate) 자체에 신뢰가 내장되어, 내가 아끼는 하이퍼바이저(hypervisor)를 대상으로 전체 관리가 가능한 방식 말입니다.
구조에 의한 네 가지 기둥
모든 도구는 이를 상속받습니다. 이는 설정하는 것을 잊어버릴 수 있는 도구별 플래그(flag)가 아닙니다.
- PLAN (계획) — 모든 변조(mutation)는 먼저 드라이 런(dry-run)을 거칩니다. 이는 정확한 변경 사항, 게스트(guest)의 현재 상태, 그리고 _계산된 영향 범위(computed blast radius)_를 반환합니다. 스토리지를 삭제할 때 단순히 "이것은 위험합니다"라고 경고하는 것이 아니라, 클러스터를 읽어 디스크를 잃게 될 게스트들의 이름을 명시합니다:
$ (dry-run) pve_storage_delete storage=local-zfs
PLAN — RISK_HIGH
affected (cluster-wide):
...
0.6.0 버전에서 이 영향 범위(blast-radius) 추론은 파괴적인 표면(destructive surface) 전체에 걸쳐 적용됩니다 — 스토리지, 디스크 이동(disk-move), 방화벽 규칙(접근성 + 차단), 네트워크 적용(network-apply), 게스트 삭제(guest-destroy), ACL 변경, 마이그레이션(migrations) 등이 포함됩니다.
- PROVE — 해시 체인(hash-chained) 방식의 변조 방지(tamper-evident) 감사 원장(audit ledger)입니다. 계획(plans)과 확인(confirmations)이 모두 여기에 기록됩니다. 이 기록은 사후에 검증 가능하며, SaaS 대시보드가 아닌 사용자의 로컬 장비에 저장됩니다.
- UNDO — 위험한 변경을 수행하기 전 자동 스냅샷(auto-snapshot)을 생성합니다(스토리지에서 스냅샷을 생성할 수 없는 경우 fail-closed 방식으로 작동). 단 한 번의 호출로 롤백(rollback)이 가능합니다.
- DIAGNOSE — 읽기 전용 증거 세트(evidence battery)로, 결과 목록이 비어 있다고 해서 그것이 반드시 '문제가 없음'을 의미하는 잘못된 판정으로 해석되지 않도록 설계되었습니다.
기본적으로 안전하며, 위험 요소에 대해 솔직합니다
Proximo는 **기본적으로 API 전용(API-only out of the box)**입니다. 하이퍼바이저(hypervisor) 자체에는 절대 손을 대지 않으며, 관리는 범위가 제한된 토큰(scoped token)을 통해 Proxmox REST API를 통해서만 이루어집니다. 진정으로 위험할 수 있는 유일한 지점은 LXC 내부에서 명령어를 실행하는 것입니다. REST API에는 컨테이너 실행(container-exec) 엔드포인트가 아예 없기 때문에(이는 lxc-attach에 존재함), 대부분의 API 기반 서버들은 구조적으로 이를 수행할 수 없습니다. Proximo는 기존의 SSH를 통해 이를 수행할 수 있지만, 이는 선택 사항(opt-in)(PROXIMO_ENABLE_EXEC=1)이며, fail-closed 방식의 CTID 허용 목록(allowlist)에 의해 제어됩니다. 또한, 이 기능이 루트(root)에 가까운 권한을 부여한다는 점을 명확히 밝힙니다. 토큰은 절대 읽히거나 로그에 남지 않습니다.
정직함에 대하여 (이 도구의 핵심이 신뢰이기 때문입니다)
저는 여러분이 마케팅보다는 프로젝트 자체를 신뢰하기를 바랍니다:
• 버전은 v0.6.0이며, 출시된 지 며칠밖에 되지 않았고 아직 채택률은 '제로'입니다.
• 145개의 도구와 2394개의 테스트가 있지만, 이 표면적 중 대부분은 여전히 목(mocks)을 대상으로 실행됩니다. 실제 PVE 9.2 API를 통해 살아있는 증거(Live-proven)로 검증된 부분은 다음과 같습니다: 엔드투엔드 신뢰 백본(trust spine), 거버넌스/위험 영역(roles/groups/users/ACLs, 스토리지, SDN/네트워크, realms), 오프라인 게스트 마이그레이션, HA-config — 전 과정 생성→읽기→삭제가 원장(ledger)을 통해 검증되었습니다. 아직 증명되지 않은 부분은 다음과 같습니다: HA 펜싱(하드웨어 워치독 필요), 온라인 라이브 마이그레이션(공유 스토리지 필요), 프로덕션 규모입니다.
• 위험 등급은 샌드박스가 아닌 **자문적 휴리스틱(advisory heuristic)**입니다. 'LOW'는 '안전함'을 의미하는 것이 아니라 '상태 변경 없음'을 의미합니다.
• 저는 제가 최초이거나, 가장 많은 도구를 가졌다고 주장하지 않습니다. proxxx (사전 비행 위험 게이트, HMAC 키 기반 감사 체인, 텔레그램 인간 개입 루프를 갖춘 Rust 코크핏)와 RekklesNA의 ProxmoxMCP-Plus(명령 정책 + 승인 토큰) 모두 실제 신뢰 메커니즘을 가지고 있습니다. Proximo가 특별히 베팅하는 것은 전체 제어 평면 전반에 걸친 구조적 신뢰(trust by construction), 그리고 자동 UNDO 기능과 거버넌스 평면을 에이전트에게 노출한다는 점입니다.
단순한 의견만이 아닌 트렌드는 존재합니다: OWASP MCP Top 10에는 이제 '감사 및 원격 측정 부족(Lack of Audit and Telemetry)'이 목록화되었고, 공식 MCP 보안 가이드라인은 명시적으로 '폭발 반경(blast radius)'과 '호스트에서의 복구 불가능한 데이터 손실'을 언급합니다. PROVE는 바로 그 인정된 필요성을 구현한 것이며, PLAN과 UNDO는 사양서가 성문화한 것보다 한 단계 더 나아간 — 표준에 의해 축복받은 것이 아니라 선도하는 — 지점입니다.
어떻게 만들어졌는지 (솔직한 버전)
방향성, 설계 결정, 그리고 신뢰 모델은 저의 것입니다. 하지만 제가 혼자 만든 것은 아니며, 그렇게 말하는 편이 여러분이 의아해할 여지를 줄일 것 같습니다. 이것은 열린 인간+AI 파트너십입니다: Claude (Anthropic의 모델)가 실제 구현의 대부분을 담당했고, Maude (저만의 Claude-helper 플러그인)는 작업물을 감시하는 게이트이자 두 번째 렌즈 역할을 했습니다. 모든 커밋에는 공동 저자 트레일러가 붙어 있습니다. 투명성이 핵심 판매 포인트인 도구에 대해 그것이 정확히 어떻게 만들어졌는지 알려드리는 것이 마치 거래의 일부처럼 느껴졌습니다.
사용해 보세요 / 망가뜨려 보세요
uvx proximo-proxmox
# 또는: pip install proximo-proxmox
# A2A 방식: pip install 'proximo-proxmox[a2a]' && proximo-a2a
PROXIMO_* 환경 변수 (env vars)와 함께 proximo 명령어로 당신의 MCP 클라이언트 (Claude Desktop/Code, Cursor, …)에 연결하세요.
아직 초기 단계이며, 저는 누군가가 실제 클러스터를 믿고 맡긴 이후가 아니라 지금 당장 허점들을 찾아내기를 진심으로 바랍니다. 폭발 반경 (blast-radius) 로직, 신뢰 모델 (trust model), 그리고 정직함이 유지되는지 여부 등 — 댓글이나 이슈 (issue)를 통해 마음껏 파헤쳐 주세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기