Skip to content

fix: public 테이블 RLS 활성화(Supabase REST 노출 차단)#50

Merged
pkdee merged 1 commit into
mainfrom
fix/enable-rls
Jun 27, 2026
Merged

fix: public 테이블 RLS 활성화(Supabase REST 노출 차단)#50
pkdee merged 1 commit into
mainfrom
fix/enable-rls

Conversation

@pkdee

@pkdee pkdee commented Jun 27, 2026

Copy link
Copy Markdown
Member

문제

Supabase 가 public 테이블을 anon key(앱에 박힌 공개값)로 접근되는 PostgREST 로 자동 노출 → RLS 가 꺼져 있어 서버 우회 직접 접근 가능(CRITICAL). 운영 DB 는 수동 SQL 로 즉시 활성화했으나 Flyway 에 없어 새 환경 재발.

수정

V11__enable_rls.sql — public 9개 테이블 RLS 활성화(멱등). 정책 없음 = anon 전면 차단, 서버는 owner(postgres) role 로 RLS 우회라 기능 영향 없음. client 는 Auth(auth 스키마)만 Supabase 사용 + public 은 서버 API 경유라 영향 없음.

안전성

  • 테스트는 @DataJpaTest(H2)+ddl-auto, Flyway 비활성 → 이 SQL 미실행(./gradlew test 그린).
  • 멱등이라 운영 DB(이미 활성화)와 충돌 0.

결정/컨벤션

  • ADR-0027 로 결정 기록 + '새 public 테이블 → RLS 함께 활성화' 컨벤션(docs 동기화 PR 별도).

Closes #49

코드-only 감사가 놓친 플랫폼 레벨 노출. 비공개 docs 보안 노트에 기록.

- V11__enable_rls.sql 추가 — 9개 public 테이블 RLS 활성화(멱등)
- 정책 없음 = anon PostgREST 전면 차단, 서버는 owner role 로 우회
- 운영 DB 수동 활성화분과 충돌 없음(no-op), 새 환경 재현성 확보

Closes #49
@pkdee pkdee added fix 버그 수정 scope:server 서버(Spring Boot) labels Jun 27, 2026
@pkdee pkdee self-assigned this Jun 27, 2026
@pkdee pkdee merged commit 00a7109 into main Jun 27, 2026
1 check passed
@pkdee pkdee deleted the fix/enable-rls branch June 27, 2026 04:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fix 버그 수정 scope:server 서버(Spring Boot)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix: public 테이블 RLS 활성화(Supabase REST 노출 차단)

1 participant