Claw Patrol: 에이전트와 프로덕션 사이에 두는 보안 방화벽
Show HN: Claw Patrol, a security firewall for agents
TL;DR Highlight
에이전트 트래픽을 HCL 규칙으로 막거나 사람 승인을 받게 하는 방화벽
Who Should Read
코딩 에이전트에 DB·Kubernetes 접근을 주면서 위험한 명령이 실행될까 걱정하는 백엔드·DevOps 개발자
Core Mechanics
- 에이전트와 prod 사이에 끼는 프록시
- Claw Patrol은 에이전트와 prod 사이에 놓인다.
- 트래픽을 wire 수준에서 해석하고 각 액션을 HCL로 쓴 규칙에 대조한다.
- 파괴적 SQL 차단, 삭제는 승인 후 실행
- 파괴적인 SQL은 막을 수 있다.
- kubectl delete pod는 사람이 승인할 때까지 멈춰 둘 수 있다.
- 규칙은 CEL 조건식으로 쓴다
- CEL(Common Expression Language, 조건을 쓰는 간단한 식 언어)로 프로토콜별 사실값을 검사한다.
- Postgres·ClickHouse는 SQL 동사와 테이블 이름, Kubernetes는 resource·verb·namespace, HTTP는 method·path·headers·body를 쓴다.
- 규칙 하나는 endpoint, condition, verdict, reason 구성
- 예시 규칙 k8s-no-secrets는 k8s-prod에서 k8s.resource가 secrets이면 deny한다.
- 사유는 "Secret 값이 에이전트를 통해 클러스터 밖으로 나가면 안 된다"이다.
- 배포 방식은 세 가지
- clawpatrol gateway config.hcl은 프록시를 직접 띄운다.
- clawpatrol join <gateway-url>은 WireGuard 터널로 호스트 전체 트래픽을 게이트웨이로 보낸다.
- clawpatrol run claude는 감싼 프로세스 트리의 트래픽만 보낸다(Linux netns, macOS NetworkExtension).
Community Reactions
- Agent Vault와 겹치면서 다른 층이라는 의견
- 자격증명 암호화에 강한 Agent Vault와 겹치지만, 요청 내용 기반 차단·승인이 더해졌다는 의견이 있었다.
- agent → Claw Patrol → Agent Vault → 외부망 순으로 겹쳐 쓸 수 있다는 의견도 있었다.
- 액션 방화벽 앞, 자격증명 브로커 뒤라는 관점
- agent-vault-proxy 제작자가 직접 밝힌 의견으로, 에이전트에는 placeholder만 주고 프록시가 전송 중에 실제 비밀값으로 바꿔 준다고 했다.
- 두 도구가 서로 보완한다고 봤다.
- 읽기 전용 계정이면 충분하지 않냐는 반론
- SQL 쓰기를 막으려고 별도 소프트웨어를 두기보다 읽기 전용 계정을 주면 된다는 의견이 있었다.
- 서비스 계정과 권한을 재발명하는 셈이라는 지적이었다.
- 기본 허용과 운영 질문이 나왔다
- 문서를 보니 기본이 default-allow이고 규칙이 없다며 기본 규칙 세트 계획을 묻는 댓글이 있었다.
- 승인 타임아웃, 사용자별 자격증명 주입, 차단 시 에이전트가 보는 응답을 묻는 댓글도 있었다.
How to Apply
- 에이전트 접근 권한 목록부터 뽑기
- 오늘 30분 안에 에이전트가 쓰는 DB·Kubernetes·HTTP 엔드포인트를 나열하라.
- 각각 막을 동작(DROP, delete, secrets 조회)을 한 줄씩 적어라.
- 읽기 전용 계정과 병행하기
- 읽기만 필요한 DB에는 먼저 읽기 전용 계정을 줘라.
- 계정으로 표현하기 어려운 동작(kubectl delete 등)만 Claw Patrol 규칙으로 막아라.
- clawpatrol run으로 에이전트 하나만 감싸 테스트하기
- 스테이징에서 clawpatrol run claude로 한 프로세스만 게이트웨이에 태워라.
- k8s-no-secrets 같은 deny 규칙 하나를 넣고 실제로 막히는지 확인하라.
- 기본 허용이니 deny 규칙을 직접 채우기
- 댓글에 따르면 기본이 default-allow이고 규칙이 없으니 기본 상태에서는 아무것도 막히지 않는다.
- 운영 배포 전 gateway.example.hcl을 참고해 필수 deny 규칙을 먼저 넣어라.
Try It
# Claude 또는 ChatGPT에 붙여넣기 (Claw Patrol 규칙 초안 작성용)
너는 에이전트 보안 방화벽 규칙을 설계하는 보안 엔지니어다.
아래 에이전트가 접근하는 시스템에 대해, 차단(deny)할 동작과 사람 승인이 필요한 동작을 나눠 표로 정리해 줘.
각 항목마다 조건(SQL 동사·테이블, k8s resource/verb/namespace, HTTP method/path)과 차단 사유를 써 줘.
참고 형식: rule "k8s-no-secrets" { endpoint = k8s-prod, condition = "k8s.resource == 'secrets'", verdict = "deny", reason = "..." }
에이전트가 접근하는 시스템: {{시스템 목록}}
에이전트 역할: {{에이전트 역할}}Terminology
관련 논문
모델이 그렇게 좋다면 OpenAI는 왜 회사 100개를 직접 안 차릴까
HN 댓글 답: 코드는 쉬워도 뭘 만들지 아는 건 별개라 토큰을 판다
OpenShell: 자율 AI 에이전트를 가두는 NVIDIA의 안전한 샌드박스 런타임
정책 파일로 에이전트의 파일·네트워크·자격증명 접근을 커널 수준에서 통제한다
Omnara: Claude Managed Agents의 오픈소스 대안 (셀프호스팅 가능)
어떤 모델·머신에서도 에이전트를 돌리는 오픈소스 managed agent 플랫폼
Rust off Rails: 코드 없이 Markdown 60개로 만든 AI 에이전트용 웹 스택
Markdown 규칙 60개로 에이전트가 Rust 웹앱을 짜게 한다는 프레임워크
LayerFS: AI 코딩 에이전트를 위한 파일시스템
에이전트마다 임시 Workspace를 마운트하고 결과만 커밋하는 파일시스템
Launch HN: Alter (YC S25) – 멀티유저 에이전트용 접근 제어
에이전트마다 별도 신원·정책·감사로 API 키 공유 문제를 푼다
Claude로 코드의 공격 표면(attack surface) 줄이기
Claude로 25개 오픈소스를 분석해 불필요하게 열린 코드 493건을 찾았다
WhatsApp 도움말 페이지에 숨겨진 LLM 지시문: 규제기관을 추천하지 말라
WhatsApp 도움말에 화면엔 안 보이는 AI 지시문 102개가 숨어 있었다