# 기능 요청: 객체별 ACL 없이 S3 백엔드에서 secure-uploads 사용

**URL:** https://meta.discourse.org/t/feature-request-secure-uploads-for-s3-backends-without-per-object-acls/410069
**Category:** Feature
**Tags:** s3, secure-uploads
**Created:** [8월 14, 2026, 9:34오전 UTC](https://meta.discourse.org/t/feature-request-secure-uploads-for-s3-backends-without-per-object-acls/410069 "2026-08-14T09:34:02Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![polybos](https://avatars.discourse-cdn.com/v4/letter/p/b5a626/32.png) [@polybos](https://meta.discourse.org/u/polybos)
#### Post date: [8월 14, 2026, 9:34오전 UTC](https://meta.discourse.org/t/feature-request-secure-uploads-for-s3-backends-without-per-object-acls/410069/1 "2026-08-14T09:34:02Z")

</div>

## 문제

**개체별 ACL을 지원하지 않는** S3 호환 백엔드에서는 `secure_uploads`와 공개 제공되는 콘텐츠가 공존할 수 없습니다.

아바타 및 테마/사이트 에셋은 **직접적이고 인증되지 않은 S3 URL** 을 통해 제공되는 것으로 보이며, 이를 위해서는 개체에 대한 공개 읽기 권한이 필요합니다. 그러나 동일한 버킷에는 제가 원하는 설정에서 비공개로 유지되어야 하는 **보안 게시글 업로드 파일** 도 포함되어 있습니다. 두 유형(공개 및 비공개 파일)은 동일한 경로 접두사(`original/...`, `optimized/...`)를 공유합니다. 개체별 ACL이 없으면 공개 파일을 공개하고 다른 파일을 비공개로 설정하는 방법이 없습니다.

**현재 제 상황:** 아바타와 에셋은 깨져 있습니다(버킷이 비공개 상태 → 해당 파일에 대해 403 오류 발생), 반면 보안 게시글 업로드는 `/secure-uploads/` 프록시를 통해 정상적으로 작동합니다.

## 핵심 충돌

보안 업로드는 **인증된** 읽기 경로를 필요로 하며, 아바타/에셋은 **인증되지 않은** 읽기 경로를 필요로 합니다. 둘 다 개체별 ACL 없이는 이를 구별할 수 없는 동일한 버킷 수준 경계 뒤에 위치해 있습니다.

## 요청하는 해결책

1. 버킷이 비공개이고 ACL이 비활성화된 경우, 보안 업로드와 동일한 메커니즘을 사용하여 **프리사인드 URL을 통해 아바타/에셋을 제공** 해 주세요. 제 관점에서는 비공개 Discourse 인스턴스 시나리오의 경우 로그인한 사용자만에게 적용하도록 하는 것도 가능할 것입니다.
2. 공개 에셋과 보안 업로드를 위해 **별도의 버킷이나 접두사를 지원** 하여, 액세스 경계가 공개/비공개 경계와 일치하도록 하고 적절한 ACL을 생성할 수 있도록 해 주세요.

두 접근 방식 중 어느 것이든 실현 가능한지, 아니면 제가 놓친 이미 지원되는 경로가 있는지 알려 주실 수 있을까요?

---

<div class="post-metadata">

### Author: ![CrookedGrandma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/crookedgrandma/32/577931_2.png) [@CrookedGrandma](https://meta.discourse.org/u/CrookedGrandma)
#### Post date: [9월 16, 2026, 1:49오후 UTC](https://meta.discourse.org/t/feature-request-secure-uploads-for-s3-backends-without-per-object-acls/410069/2 "2026-09-16T13:49:00Z")

</div>

Azure에 Discourse를 구현하려고 하다가 정확히 같은 문제에 부딪혔습니다. Azure에는 S3 호환 서비스가 제공되지 않기 때문에 로컬 파일 서버를 실행해 보려 했지만, 어떤 서비스도 객체별 ACL을 지원하지 않습니다.
