피드로 돌아가기
Building a Zero-Leak Postgres MCP Gateway in Go
Dev.toDev.to
Security

Go 기반 MCP Gateway 구축을 통한 Database Schema Leak zero 구현

Building a Zero-Leak Postgres MCP Gateway in Go

Khalid Elokiely2026년 6월 26일17intermediate

Context

LLM에 데이터 계층 접근 권한을 부여할 때 발생하는 raw data 유출 및 내부 스키마 노출 리스크 분석. 외부 오케스트레이터에 직접적인 DB 접근권을 부여하거나 전체 스키마를 제3자 인프라에 직렬화하여 전달하는 기존 방식의 보안 취약점 식별.

Technical Solution

  • Deny-by-default 전략 기반의 EXPOSED_TABLES allowlist를 적용한 스키마 가시성 제어
  • Postgres information_schema.columns 활용 및 Dynamic Schema Reflection 구현을 통한 런타임 메타데이터 최적화
  • LLM의 임의 쿼리 생성을 차단하고 사전 정의된 Aggregation 함수만 실행하는 Analytical Egress Hardening 설계
  • Go 언어의 정적 타입 시스템과 pkg/db, cmd/ 구조 분리를 통한 Schema Reflection 및 Transport Layer의 관심사 분리
  • MCP(Model Context Protocol)와 secure stdio transport layer 채택을 통한 LLM-DB 간 격리 계층 구축

- DB 접근 제어 시 필터링 방식이 아닌 명시적 allowlist 기반의 화이트리스트 설계 검토 - LLM에 raw row 접근 권한 대신 사전 정의된 집계(Aggregation) 인터페이스만 제공하는 패턴 적용 - 시스템 카탈로그(information_schema)를 활용한 동적 스키마 리플렉션으로 하드코딩 제거 - 보안 요구사항이 높은 도메인 내 AI 에이전트 도입 시 Data Plane과 Control Plane의 물리적/논리적 분리 구현

원문 읽기