앱인토스 WebView 외부 fetch POST가 토스 outbound CloudFront에서 403 차단됩니다 (다른 라이브 앱들은 정상)

이 글의 성격은 무엇인가요?

질문 / 문제 해결

내용을 설명해주세요

안녕하세요, bau-cua 앱 개발자입니다.
토스앱 WebView 안에서 외부 fetch POST 요청이 토스 outbound CloudFront에 의해 403으로 차단되는 현상을 겪고 있어서
문의드립니다.

앱 정보 - appName: bau-cua - displayName: 동물 굴리기

  • deploymentId: 019e6e96-e868-7b3b-933c-ba24f2d2e3ae
  • Vercel 도메인: bau-cua-nine.vercel.app
  • SDK: @apps-in-toss/web-framework@2.4.7

증상

토스앱 WebView 안에서 다음 호출이 CloudFront 403 응답을 받습니다.
fetch(‘https://bau-cua-nine.vercel.app/api/roll/’, {
method: ‘POST’,
headers: { ‘Content-Type’: ‘application/json’ },
body: JSON.stringify({ … }) })

진단 응답 (앱 안에서 직접 캡처)

s=403
ct=text/html via=1.1 9b7ef20eb2f2d08e70127ca5d9d82e0e.cloudfront.net (CloudFront)
srv=CloudFront xc=Error from cloudfront
Request ID: eYcjswuK2sWPjI9CFXoRvAV3rWM0Yun6cExCQuJR1G-_YEGXcNFBFQ==
본문 (HTML 4.01 Transitional + iso-8859-1):

403 ERROR — The request could not be satisfied.
This distribution is not configured to allow the HTTP request method that was used for this request. The
distribution supports only cachable requests.

Generated by cloudfront (CloudFront)

검증된 사실

  1. 외부 curl 직접 POST는 정상: 같은 Vercel 엔드포인트에 외부에서 curl POST 시 server: Vercel + 200 응답 정상 →
    Vercel 측 문제 아님
  2. 같은 SDK 버전 라이브 앱들은 정상: raising-dog(2.4.7), art-point(2.4.6), sowon-candle(2.4.6),
    spoon-forge-point(2.4.6) 등이 같은 SDK 버전에서 POST 정상 작동
  3. GET은 정상, POST만 차단: 토스앱 WebView 안에서도 GET 호출은 정상 응답
  4. sendBeacon / iframe form POST도 차단: workaround로 시도했지만 모두 같은 CloudFront 403 페이지 반환
    ## 시도한 것 (모두 동일 차단)
  • SDK 버전 2.6.12.4.7 다운그레이드 (라이브 정상 프로젝트들과 정렬)

  • 도메인 마이그레이션 bau-cuabau-cua-nine - 메타데이터 한국어화 (displayName, <html lang>) - API route CORS 헤더: Access-Control-Allow-Origin: *로 wildcard 허용 중

                                         ## 유사 사례
    

2026-03-31 커뮤니티 junghwan9954 님 사례와 응답 시그너처(srv=CloudFront + “distribution is not configured to allow
the HTTP request method”)가 100% 일치합니다. 당시 Dylan 님께서 "CORS 허용 도메인에 <appName>.apps.tossmini.com
<appName>.private-apps.tossmini.com 추가"가 해결책이라고 안내해주셨던 것으로 알고 있습니다.

질문

  1. bau-cua-nine.vercel.app 도메인이 토스 outbound CloudFront distribution behavior에 POST 메서드로 등록되어
    있나요? 미등록 상태라면 등록 절차가 어떻게 되나요?
  2. CORS 허용 Origin을 wildcard *가 아니라 bau-cua.apps.tossmini.combau-cua.private-apps.tossmini.com
    명시적으로 추가하는 게 해결책이 되나요? (저는 현재 wildcard로 모든 Origin을 허용 중인데도 차단이 발생합니다)
  3. 라이브 정상 앱들(raising-dog, art-point 등)과 bau-cua의 차이가 콘솔/플랫폼 측 설정이라면, 개발자가 콘솔에서 직접
    확인/수정할 수 있는 항목인가요?

확인 부탁드립니다. 감사합니다.

appName (선택)

bau-cua

안녕하세요 :slight_smile:
outbound post를 별도로 막고 있는 도메인은 없습니다.
CORS를 * (와일드카드)로 처리해주셨다면 문제없이 통신되어야할 것으로 보이는데, 아예 자체 서버에서 호출이 잡히지 않는 상황이신걸까요 ?