pile·
보안·cloudflare-blogCloudflare Blog·

WriteGuard: MCP 서버 쓰기 동작을 제어하는 세밀한 권한 레이어

Cloudflare가 내부 MCP 서버에 에이전트 쓰기 동작을 제어하기 위해 WriteGuard를 구축했다. MCP를 통해 에이전트에게 쓰기 권한을 부여할 때 발생하는 잘못된 동작을 중앙에서 차단·추적·감사할 수 있는 레이어로, 현재 프라이빗 베타로 외부에 공개됐다.

핵심 포인트
  • WriteGuard는 MCP 서버 코드 변경 없이 각 Tool에 리스크 티어(Read Only / Minimal / Contained Write / Critical)를 부여하고 비활성화하거나 에이전트 귀속 정보를 삽입한다
  • Critical 티어 도구는 WriteGuard가 핸들러 실행 전에 차단하여 머지·프로덕션 배포 같은 고위험 동작을 에이전트가 단독으로 실행할 수 없게 한다
  • Cloudflare Access OAuth로 사용자 신원을 유지하면서 에이전트 세션 컨텍스트를 하위 시스템에 추가해 "Joe의 에이전트가 Joe를 대신해 수행" 형태로 귀속된다
  • 감사 로그는 비동기 Worker로 전송돼 응답 레이턴시에 영향 없이 서버·도구·리스크 티어·결과·사용자·에이전트·소요 시간을 기록한다
  • 27개 내부 MCP 서버에 동일 레이어를 적용하며, 서버별 재구현 없이 공유 레이어와 도구별 설정만으로 일관된 제어를 달성했다
상세 정리
  • 도입 배경: Cloudflare 내부 MCP 서버가 13개에서 27개로 증가하면서 읽기 전용 단계를 넘어 쓰기 도구 수요가 생겼다. 클라이언트 사이드 스킬이나 elicitation 프롬프트는 하네스별 동작이 달라 신뢰할 수 없었다.
  • MCP 기본 구조: MCP 서버는 도구 이름·설명·입력 스키마·핸들러로 구성된다. 에이전트가 도구를 선택하면 클라이언트가 서버로 호출을 보내고 서버가 하위 시스템을 조작한다.
  • WriteGuard 작동 방식: 각 도구의 WriteGuard 설정(riskLevel, enabled, labeling)을 확인해 통과/귀속 추가 후 처리/차단 중 하나로 처리한다. 현재 TypeScript로 설정하며 추후 포털 UI로 제공 예정이다.
  • 리스크 티어(GitLab 예시): get_merge_request(Read Only)는 통과. create_mr_note(Contained Write)는 에이전트 귀속을 노트 필드에 삽입 후 처리하고 비동기 감사 이벤트를 기록한다. merge_mr(Critical, disabled)는 핸들러 실행 전 차단하고 시도를 기록한다.
  • 에이전트 귀속: 사람의 Access 권한을 그대로 유지하면서 MCP 클라이언트·세션 컨텍스트를 추가로 삽입한다. 별도의 에이전트 계정 없이도 하위 시스템이 "Joe가 아니라 Joe의 에이전트가 한 것"임을 알 수 있다.
  • 감사 로깅: 각 호출을 성공/실패/차단으로 분류하고 민감 값을 제외한 스크러빙 이벤트를 내부 audit Worker로 비동기 전송한다. MCP 포털 요청 로그와 WriteGuard 의미론적 분류로 두 가지 뷰를 제공한다.
  • 공유 레이어 설계 이유: GitLab만을 위한 컨트롤을 구현할 수도 있었지만, Jira·내부 위키·Google Workspace 등 모든 서버에 일관된 정책이 필요해 재사용 가능한 공유 레이어로 구축했다.
  • 프라이빗 베타 계획: 리스크 모델이 고객 도구에 매핑되는지, 어떤 하위 애플리케이션에 귀속 포맷이 필요한지, 감사 로그 보장 수준을 검증 후 일반 공개 예정이다.
왜 읽나MCP 서버에 쓰기 도구를 추가하려는 조직이나, 에이전트 동작의 감사 추적·귀속·중앙 제어 아키텍처를 설계하는 엔지니어에게 실전 구현 레퍼런스.
cloudflare-blog
Cloudflare Blog 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 보안·cloudflare-blogCloudflare Blog·

    에이전트 액세스 모델 (AAM): AI 에이전트를 위한 제로 트러스트 보안 설계

    Cloudflare가 AI 에이전트를 위한 새로운 접근 제어 모델 "Agent Access Model(AAM)"을 제안했다. 인간 중심으로 설계된 기존 제로 트러스트 모델이 에이전트의 특성(단명성, 기계 속도, 프롬프트 우회 가능성, 다단계 위임)에서 조용히 실패한다는 문제 인식에서 출발한다. BeyondCorp이 네트워크 위치의 묵시적 신뢰를 제거했듯이, AAM은 태스크 실행 그래프 내부의 묵시적 신뢰를 제거하는 것이 핵심이다.

    #zero-trust#oauth#agent-security+2
  2. 보안·cloudflare-blogCloudflare Blog·

    AI Gateway의 신원 인식 분석으로 이상 AI 행동 감지하기

    Cloudflare AI Gateway에 신원 인식 분석 기능이 추가됐다. 조직 내 누가 AI를 어떻게 쓰는지 파악하기 어렵다는 문제를 해결하기 위해, 인증된 사용자 신원과 행동 베이스라인을 결합해 이상 사용을 탐지한다. Identity-aware AI Gateway는 오픈 베타, User Insights는 모든 고객에게 무료로 공개됐다.

    #anomaly-detection#ai-gateway#identity-aware-security+1
  3. 보안·cloudflare-blogCloudflare Blog·

    오리진 서버 포스트 퀀텀 인증 지원 — ML-DSA mTLS 구현기

    Cloudflare가 오리진 서버와의 TLS 연결에 포스트 퀀텀 인증(ML-DSA)을 도입했다. 2023년 이미 포스트 퀀텀 암호화(encryption)가 배포됐지만, 인증(authentication)은 여전히 양자 공격에 취약한 상태였다. Authenticated Origin Pulls(AOP)와 Custom Origin Trust Store(COTS) 두 제품을 통해 완전한 상호 인증 TLS를 구현했으며, FIPS 204(ML-DSA) 표준을 오리진 연결에 적용한 첫 번째 마일스톤이다.

    #mtls#tls#post-quantum+2