테넌트 범위(Tenant scope)는 프롬프트 지침이 되어서는 안 됩니다
요약
AI 에이전트가 데이터베이스에 접근할 때 프롬프트 지침에 의존하여 테넌트 범위를 제한하는 방식의 위험성을 경고합니다. 모델의 실수에 대비해 인증 기반의 데이터베이스 정책과 승인된 뷰를 사용하는 설계가 필수적임을 강조합니다.
핵심 포인트
- 프롬프트 지침은 보안 경계가 아닌 선호도일 뿐임
- 인증(Auth) 시스템을 통해 테넌트 범위를 도출해야 함
- 원시 테이블 대신 승인된 뷰(Views)를 노출할 것
- 신원/범위 누락 시 폐쇄형 실패(Fail closed) 처리 필요
- 읽기 전용 범위 지정 DB 역할 및 감사 로그 활용
가장 위험한 AI 데이터베이스 버그는 구문 오류(syntax error)인 경우가 드뭅니다.
그것은 정상적으로 작동하고, 세련된 답변을 반환하며, 조용히 잘못된 테넌트(tenant)를 포함하는 쿼리입니다.
MCP 데이터베이스 서버의 경우, 테넌트 범위(tenant scope)가 프롬프트에 포함되어서는 안 됩니다:
“현재 고객에 대해서만 답변하세요.”
이것은 선호도(preference)일 뿐, 경계(boundary)가 아닙니다.
더 안전한 설계는 지루합니다:
- 사용자 텍스트가 아닌 인증(auth)으로부터 테넌트 범위를 도출할 것
- 원시 테이블(raw tables)이 아닌 승인된 뷰(views)를 노출할 것
- 도구가 실행되기 전에 범위를 요구할 것
- 신원/범위가 누락된 경우 폐쇄형 실패(fail closed) 처리할 것
- 읽기 전용 범위 지정 DB 역할(read-only scoped DB roles)을 사용할 것
- 테넌트, 역할(role), 뷰(view), 쿼리 ID 및 결과와 함께 감사 이벤트(audit event)를 기록할 것
- 교차 테넌트(cross-tenant) 보고를 위해 별도의 권한 부여된 워크플로우를 요구할 것
모델은 필터를 잊을 수 있습니다.
데이터베이스 정책은 그래서는 안 됩니다.
긴 버전: Tenant-scoped MCP database tools
도구가 애초에 잘못된 테넌트를 반환할 수 없을 때, AI 데이터베이스 액세스는 훨씬 더 안전해집니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기