Skip to content

[INFRA] GCS Public Bucket 보안 강화 - CDN 도입 및 리스팅 차단 - 데모데이 이후 #433

@IISweetHeartII

Description

@IISweetHeartII

Task Description

현재 finders-public 버킷이 allUsers:objectViewer로 설정되어 있어 버킷 리스팅(전체 파일 목록 조회)이 외부에서 가능한 상태입니다. 개별 파일 공개 접근은 의도된 설계이나, 리스팅까지 열려있는 것은 보안상 개선이 필요합니다.

현재 상태

  • finders-public: allUsers:objectViewer (파일 접근 ✅ + 리스팅 ✅)
  • CDN 없음 — GCS가 직접 이미지 서빙 중
  • API 응답에 버킷명과 전체 경로가 노출됨: https://storage.googleapis.com/finders-public/...
  • 인증 없이 https://storage.googleapis.com/storage/v1/b/finders-public/o로 전체 파일 목록 조회 가능

목표 상태

  • 개별 파일 접근은 유지하되 리스팅은 차단
  • 버킷명 직접 노출 대신 CDN 도메인으로 서빙

Checklist

  • Cloud CDN + Load Balancer 구성 (Backend Bucket 연결)
  • CDN 도메인 설정 (예: images.finders.it.kr)
  • StorageProperties.getPublicBaseUrl() → CDN 도메인으로 변경
  • GCS 버킷 공개 접근을 CDN 경유로만 제한 검토
  • Terraform 리소스 추가: google_compute_backend_bucket, google_compute_url_map, google_compute_global_forwarding_rule
  • 기존 img-resizer Cloud Run과 CDN 연계 검토

Related Domain

  • Infra

Related Issues / PRs

  • INFRASTRUCTURE.md에 allUsers:objectViewer 설계 명시 (210번째 줄)
  • img-resizer Cloud Run 서비스 (infra/cloudrun.tf)

Additional Notes

  • 데모데이에는 현재 상태로 문제없음 — 공개 이미지 + 데모 데이터
  • GCS objectViewer 역할에 storage.objects.list가 포함되어 리스팅이 열림 (GCS IAM 구조적 한계)
  • CDN 도입 시 캐싱으로 응답 속도 개선 + 버킷명 은닉 + 리스팅 차단 동시 해결

Metadata

Metadata

Assignees

Labels

infraInfrastructure relatedtaskTask management승주

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions