설명
OSS 정적 웹사이트 기능은 HTML, 스크립트 등 정적 파일을 제공하는 용도로 사용합니다. 기능 자체가 취약한 것은 아니며, website 설정이나 인터넷 엔드포인트가 있다는 사실만으로 익명 읽기가 허용되지는 않습니다. 실제 공개 범위는 ACL, 정책과 공개 접근 차단 설정에 따라 달라집니다.
웹사이트로 공개할 파일과 내부 로그·백업·설정 파일을 분리하고, 운영자가 공개 목적과 범위를 명확히 관리해야 합니다.
잠재적 영향
- 공개 읽기 권한이 함께 부여되면 의도하지 않은 파일이나 설정 정보가 노출될 수 있습니다.
- OSS에 저장된 콘텐츠를 바꾸려면 별도 쓰기 권한이 필요하므로 업로드 경로의 권한도 제한해야 합니다.
해결 방법
- 정적 웹사이트가 필요한 버킷에만
website를 사용하고 내부 저장소에서는 불필요한 구성을 제거하세요. - 공개할 객체만 읽을 수 있도록 권한을 검토하고 쓰기·삭제는 승인된 배포 주체로 제한하세요.
- 객체 ACL과 정책을 함께 점검하고, 실제 웹 경로에서 공개 대상과 비공개 대상의 접근 결과를 확인하세요.
예시
웹사이트 설정의 유무를 비교하는 부분 예시입니다. 기존 버킷의 구성을 변경할 때는 이름과 Terraform 리소스 주소를 유지하세요.
웹사이트 설정
hcl
resource "alicloud_oss_bucket" "website_bucket" {
bucket = "bucket-1-website"
website {
index_document = "index.html"
error_document = "error.html"
}
}
인덱스와 오류 문서를 지정합니다. 이 설정만으로 파일이 공개되었다고 판단할 수는 없습니다.
비공개 용도 구성
hcl
resource "alicloud_oss_bucket" "private_bucket" {
bucket = "bucket-1-acl"
acl = "private"
}
웹사이트 설정 없이 비공개 ACL을 사용합니다. 별도의 정책과 객체 ACL도 내부 용도에 맞게 제한하세요.