Vercel WAF for Blob 공부 정리 | Blob에도 방화벽이 붙는다고?
Vercel Blob 저장소에 WAF 규칙을 적용할 수 있게 됐다. 코드 없이 스위치 하나인데, 생각보다 흥미로운 구조였다.
Vercel 공식 블로그에 “WAF for Blob” 베타 발표가 올라왔다. 제목만 보고는 Blob이랑 WAF가 무슨 상관인가 싶었다.
읽어보니 구조가 꽤 흥미로웠다. 배포 보호용으로 쓰던 WAF 규칙을 이번엔 Blob 저장소에도 그대로 붙일 수 있다는 거였다. 어떻게 동작하는 건지 좀 정리해봤다.
1️⃣ 이게 뭐냐?
Vercel WAF는 원래 배포된 앱으로 들어오는 트래픽을 엣지에서 필터링하는 역할을 했다. IP 차단, 지역 제한, 요청 한도 같은 걸 설정해두면 규칙에 맞지 않는 요청을 미리 걸러주는 방식이다.
이번 베타는 그 규칙을 Blob 저장소 트래픽에도 적용하는 거다. Blob은 이미지나 정적 파일을 저장하고 CDN을 통해 서빙하는 서비스인데, 기존에는 이 파일들에 대한 요청 트래픽에 별다른 보호 장치가 없었다.
이번에 추가된 규칙은 크게 세 가지다. Deny는 조건에 맞는 요청을 403으로 막고, Challenge는 브라우저 챌린지를 내보낸다. Rate limit는 일정 한도를 넘긴 요청에 429를 반환한다. IP, 국가, 경로 같은 조건으로 세부 설정이 가능하다.
흥미로운 부분은 기존 코드를 전혀 건드리지 않아도 된다는 거다. @vercel/blob 패키지나 Blob URL을 변경할 필요 없이, 대시보드 스위치 하나로 설정이 끝난다고 한다.
2️⃣ 내가 든 생각
처음엔 “이런 보안 설정은 백엔드 영역 아닌가” 싶었다. 그런데 Blob에 이미지나 에셋을 올려 쓰는 입장에서도 관련이 있는 기능이었다.
특정 지역에서 파일 접근을 제한해야 하거나, 스크래퍼가 이미지를 대량으로 긁어가는 걸 막아야 할 때, 코드 수정 없이 규칙만 추가해서 처리할 수 있다는 게 흥미로웠다.
👉🏻 “설정을 코드가 아닌 인프라 레이어에서 한다”는 개념이 낯설었다. 앱 코드는 그대로 두고, 트래픽이 앱에 닿기 전에 엣지에서 처리한다는 구조를 이해하는 게 이번 공부의 핵심이었다.
💡 그럼 서버 사이드에서 Blob에 접근할 때는 어떻게 될까? Challenge 규칙에 걸리면 브라우저가 없어서 챌린지를 통과 못하고 차단된다고 한다. 베타 기간 동안은 서버 측 요청에 Challenge 규칙을 적용하면 안 된다는 부분이 눈에 띄었다.
3️⃣ 공부하면서 떠오른 것
문서만 본 입장에서는 어떤 상황에서 이게 의미 있을지가 궁금해졌다. 공개 이미지를 서빙하면서 특정 지역 차단이 필요한 경우, 또는 무거운 파일을 봇이 반복 요청하는 걸 막아야 할 때 정도가 떠올랐다.
규칙 하나가 모든 Blob 저장소에 공통으로 적용된다는 부분도 눈에 들어왔다. 저장소마다 개별 설정이 안 되고 팀 전체로 공유되는 구조인데, 세밀하게 제어해야 하는 상황에서는 좀 불편할 수도 있겠다는 인상이었다.
⭐️ 마지막으로, 프론트엔드 학습자로서 공부하며 느낀 점
정리해보니 이 기능이 “새로운 보안 기능 추가”라기보다 “기존 설정 체계의 확장”에 가까운 일이었다. 새 도구를 만든 게 아니라, 배포 쪽에서 쓰던 WAF를 저장소로 확장한 구조였다. 코드 변경 없이 동작한다는 부분도 그 흐름에서 이해됐다.