DEV WIKI
보안 · 오류·증상

new row violates row-level security policy

Supabase Storage 업로드에서 403과 new row violates row-level security policy가 함께 표시되는지 확인하고 저장소 객체의 RLS 범위를 식별합니다.

빠른 답변

우선 확인할 원인
Supabase Storage 업로드의 403과 new row violates row-level security policy는 업로드 뒤 객체 메타데이터를 반환하는 SELECT 정책이 없거나 요청 사용자·버킷·경로 조건과 맞지 않을 때 나타날 수 있습니다. 브라우저에 service_role 키를 넣어 해결하지 않습니다.
먼저 확인할 항목
HTTP 상태가 403인지 확인합니다.
적용 범위
현재 증상과 본문에 적은 관찰 조건이 함께 확인된 경우문맥: 바이브 코딩
출처
Supabase
출처 확인일
2026-07-27
최종 검토
2026-07-29
수정일
2026-07-30
오류·수정 제보 (새 창에서 열림)

현재 증상

  • 파일 업로드가 완료되지 않음
  • 애플리케이션 오류 메시지

먼저 확인할 항목

HTTP 상태가 403인지 확인합니다.

응답 또는 로그에 `new row violates row-level security policy`가 포함되는지 확인합니다.

업로드 대상 버킷과 객체 경로, 요청 사용자의 인증 상태를 기록합니다.

`storage.objects`에 업로드와 결과 조회를 허용하는 정책이 각각 있는지 확인합니다.

피해야 할 조치

주의

  • service_role 키를 브라우저 코드나 공개 로그에 넣지 않습니다.
  • RLS를 전체 해제하거나 모든 사용자에게 쓰기를 허용하기 전에 대상 버킷과 경로를 제한합니다.

환경별 원인과 조치

확인 방법

  1. 브라우저 Network 또는 서버 로그에서 HTTP 상태가 403인지 확인합니다.
  2. 응답에 new row violates row-level security policy가 있는지 원문 그대로 기록합니다.
  3. 업로드 버킷·경로와 요청 사용자의 인증 상태를 기록합니다.
  4. Supabase의 storage.objects 정책에서 업로드를 허용하는 INSERT 조건과 업로드 결과를 조회하는 SELECT 조건을 각각 비교합니다.

Supabase Storage API가 업로드 뒤 객체 정보를 반환하는 과정에서 SELECT 정책이 요청 조건과 맞지 않으면 INSERT 정책이 있어도 전체 요청이 실패할 수 있습니다. 정책을 바꾸기 전에 대상 버킷과 사용자 조건을 확인하고, service role 키를 클라이언트에 노출하지 마십시오.

관찰값 기록

문제가 발생한 URL 또는 화면, 표시 시각, 운영 환경과 최근 변경 사항을 먼저 기록합니다. 화면이나 로그에 오류 문구가 일부만 보이면 앞뒤 문장을 보존하고 비밀번호·토큰·쿠키·개인정보는 가립니다.

다음 항목을 실제 값과 함께 확인합니다.

  1. HTTP 상태가 403인지 확인합니다.
  2. 응답 또는 로그에 new row violates row-level security policy가 포함되는지 확인합니다.
  3. 업로드 대상 버킷과 객체 경로, 요청 사용자의 인증 상태를 기록합니다.
  4. storage.objects에 업로드와 결과 조회를 허용하는 정책이 각각 있는지 확인합니다.

판정 기준

오류 문구가 일치해도 같은 원인이 확정되는 것은 아닙니다. 웹서버·런타임·운영체제·플랫폼과 최근 변경 사항을 비교하고, 기대한 관찰값이 나오지 않으면 다음 단계로 넘어가지 않습니다. 이 문서는 출처가 확인한 범위만 설명하며, 범위를 벗어난 원인과 조치는 단정하지 않습니다.

안전한 다음 확인

설정·권한·데이터를 변경하기 전에 백업과 되돌리기 방법을 기록합니다. 운영 환경의 방화벽 전체 해제, 인증서 검증 우회, 데이터 삭제, 비밀값 공개를 기본 조치로 사용하지 않습니다. 확인 결과가 문서의 조건과 다르면 관련 Platform·Component 문서와 공식 출처를 먼저 확인합니다.

참고 자료

Storage error: 403 Forbidden: new row violates row-level security policy on upload (새 창에서 열림)

Supabase · 공식 자료 · 확인 범위: storage-upload-403, select-policy-for-returned-object, storage-objects-rls · 확인일: 2026-07-27